【Slalom1周年】新卒一年目の振り返り(AWSの学習についても書いてるよ)
こんにちは!😊
Slalomでエンジニアをしている@new_marty7です!
Slalomで働き始めてから1年が経っていたので1年を振り返っていこうと思います。
入社の経緯
Slalomに入社したのはLinkedInでリクルーターさんに声をかけてもらったからで、最初はコンサルの会社って聞いてメッセージを無視しようと思っていました笑。でも話を聞いてみたら面白そうな会社だし、給料良さそうだし、面接してみたら、話してるうちにみんないい人だしここええやん!ってなって入社を決意しました。メッセージ無視してなくて本当に良かったです笑。Slalomに入る人って大体リクルーターと話すまで会社の存在自体知らなかったっていう人が多いです笑。
1年前はオンラインでASUに通いながら24卒として正社員の仕事を探していましたが、Slalomからオファーをもらい、ASUに通いながらでもいいよとのことだったのでなら今すぐ入ってやれ!と思い、23年4月に1年繰り越しで正社員として働き始めました。当時の最年少で入社して今でも新卒は唯一だと思います✌️
自分が入ったのがCloud Residency Programという、いわばクラウドの研修プログラムの一環です。これはどんな研修かというと、今クラウドを扱えるエンジニアが人手不足なので転職マーケットでもクラウドの人材を確保するのが難しい状況です。なのでソフトウェアエンジニアとして経験のあるエンジニアにAWSの経験を積ませてクラウドにも強いエンジニアになってもらおう!という会社の投資的なプログラムです。自分含めて6人のエンジニアが日本初のCloud Residencyとして研修を受けるために入社しました。Googleとかでもやってますね。
そもそもSlalomってなんの会社?
ほとんどの方はSlalomがなんの会社か知らないと思います。自分も入社して3ヶ月くらいはなんの会社か分かってなかったです笑。同じくらいの時期に入社した同僚の方も記事を書いているので気になる方は読んでみてください!(普通に去年レイオフしてましたけどね笑)
一応ITコンサルの会社ですが、エンジニア部隊は簡単にいうとSIerみたいなことをしています。ただ、ほかのITコンサルやSIerと違うのは、アジャイルに重きを置いていること、作れば終わりではなくてそのプロセスにもこだわっていることだと感じています。一緒に仕事をしたクライアントさんからの満足度はかなり高いと聞いています。
Big Techともパートナーを結んでいたり、かなりテクノロジーにおいては信頼を得ている会社だと思います。2023年にはAWSのGlobal SI Partner of the Yearにも選ばれていました。
Cloud Residencyとしてやったこと
じゃあCloud Residencyって何するん?って話です。簡単にいうと、メンターさんから課題が与えられるので2週間のスプリントでWebアプリを開発したり、AWSでインフラを構築したりというのを5スプリント行います。なので合計で10週間ひたすらAWSを触りまくるという研修ですね。それに加えて資格も取ったりするので約4ヶ月はずっとAWSを叩き込まれるという感じでした。今思うと4ヶ月もやったっけ?っと思うくらい楽しくて充実した期間でした☺️今回はそれぞれのスプリントで何をしたかを紹介しようと思います。AWS初心者で触ってみたい方は参考にしてみてください!
※Sprint 1はCloud Practitionerの資格を取るスプリントだったのでsprint 2からになります。
※Sprint 7でSolutions Architect Associateの資格を取ることを目標にしています。なので勉強のために別にいらんだろっていうサービスも触ってたりします。
※6人を2チームに分けて3人1チームで開発しました。
Sprint 2
このスプリントで作るものは次のとおりです。(Route53は実際にはやってません。)
簡単なバックエンドアプリケーションを作り(Hello World!を返すだけのAPI)、それをEC2に置いてアクセスできるようにするといったものです。さらに踏み台サーバーから管理できるようにして、AWSのセキュリティ系のサービスで監視できるようにするというところまでやりました。さらに最後にはクライアントに提案することを想定してAWS Pricing Calculatorでコストの見積もりまでをしました。
勉強したサービスや概念は次のとおりです
VPC
Subnet
Private subnetとPublic subnetの違い
NAT gateway
Internet gateway
EC2
Bastion server
Security group
Auto scaling group
Application load balancer
ALBとNLBの違い
Region/Availability zone
CloudWatch
CloudTrail
GuardDuty
Inspector
SecurityHub
Route53
Shield
WAF
Apache
最初のスプリントでVPCなど基礎的なサービスも勉強しなきゃいけないこともあってかなり盛り沢山なスプリントになりました。ただ、スタートとしてはちょうどいい内容でした。初心者はとりあえずVPCの中が自分で構築できるようになればいいスタートが切れるんじゃないでしょうか!
Sprint 3
このスプリントではアプリケーションがフルスタックに進化します。前のスプリントでは簡単なAPIだったのに対してフロントエンドはReactで、バックエンドはNode.jsでちゃんと動くアプリケーションを構築します。作るものは次のとおりです。
前のスプリントから変わったこととしては
踏み台サーバーをやめてVPC endpointを設定してSession managerからサーバーを管理している
フロントエンドをホストするためのCloudFrontとS3バケットが追加されている
データベース用のRDSが増えている
くらいです。このスプリントはアプリケーションの開発に時間をかけたのでAWSはそこまで変化はないです。(実際にはElastic Beanstalkを使いましたが、今後Beanstalkはあんまり使われないと思うので省略しています。)
学んだこととしては
Session manager
VPC endpoint
CloudFront
S3
RDS
です。特に2週間という期限がなければ最初からこっちを構築しちゃってみてもいいかもしれませんね。
ちなみにこのスプリントで作ったアプリは保険会社の社内向けの請求提出プロセスを管理するためのアプリという想定です。
簡単にいうとUIがあってCRUD処理のあるアプリです笑。
Sprint 4
このスプリントから作るアプリが変わります。そしてSprint 6まで使います。作るWebアプリはInstagramみたいに画像をシェアできるSNSです。
S3を使うために画像を扱うようになった、Cognito使うためにSNSになったっていう感じですね。
インフラはというとサーバーレスになります。
EC2からLambda+API gatewayに変更になります。そして、データベースがRDSからDynamo DBになっています。あとは先述したとおりS3とCognitoが追加されましたがそれくらいです。学んだこととしては次のとおりです。
Lambda
サーバーレス
Dynamo DB
NoSQL
S3
Presigned URL
Cognito
AWS Amplify(フロントエンド)
API gateway
Lambdaとの連携
Cognitoを使った認証
このスプリントもアプリ開発がメインだったので新しいサービスは少なめです。ただ、サーバーレスという概念を新しく取り入れたのでかなり新鮮なスプリントでした。API gatewayの設定が難しくて一生CORSのエラーが出てチームで発狂しそうになったのを覚えています、、笑。
Sprint 5
Sprint 5は前回のコードを引き継いでコンテナ化します。さらにこれまでは手動でサービスを立ち上げていたのをTerraformを使ってIaC化します。
新しく学んだことは次のとおりです。
Terraform
Docker
コンテナ
ECS
Fargate
ECR
このスプリントのメインはTerraformだったのでコンテナ化は正直あんまりまだわかっていません。ECSの設定とかもDokcerに詳しいチームメイトに教えてもらいながらやりました。なので初心者の方はECSではなくて、EC2かLambdaをIaC化するところから始めてみた方がいいかもしれません!
Sprint 6
Sprint 6ので学ぶことはCI/CDです。
sprint 4の時のサーバーレスのアーキテクチャに戻ります。このアーキテクチャのCI/CDを実装します(Terraformも含めてです!)。今回はAWSのCode兄弟ではなく、GithubのWebhookとJenkinsを使って実装しました。Githubのmainブランチにpushがあったら自動でデプロイされるという仕組みを作ります。
学んだこととしては
CI/CD
フロントエンド、バックエンドのビルドブロセス
Terraform
Jenkins
EC2のMaster nodeとWorker Node
Pipeline Syntax
このスプリントはAWSのサービスというより、CI/CDとJenkinsがメインでした。簡単なCI/CDパイプラインなら2週間もあれば作れるのでまだ作ったことないという方は一度作ってみるといいと思います。思ったより簡単ですよ!
初めてのプロジェクト!
さて、ここまでは研修の内容を話してきました。研修が終わるとクライアントプロジェクトに配属されることになります。自分は運良くすぐにプロジェクトに配属されました。そのプロジェクトがどんな感じだったか簡単にシェアできればと思います。
配属されたのはReact+Node.js(Express)で画像をシェアするWebアプリケーションを作るというプロジェクトでした。Google Photoをイメージしてもらえればそんな感じのアプリです。Lambdaを使ったサーバーレスアーキテクチャで、画像を扱うし、Cognitoでユーザーを管理するというまさにCloud Residencyで勉強した内容そのままでした。
チームはSolution Owner(PMみたいなポジション)1人、Solution Architect 1人、Designer 1人、Quality Engineer 1人、Software Engineer 2人、でした。自分はSoftware Engineerのうちの1人です。新卒で初めてのプロジェクトでエンジニア2人で大丈夫か?と思われるかもしれませんが、全然大丈夫でした!足を引っ張るどころかチームをリードできたと胸を張って言えます。インターン時代から経験のある得意なスタックだったのもありますが、これまでのアジャイル開発の経験も活きて、チームもとてもいい雰囲気で開発できました。管理者用のページをゼロから作ることになったのですが、インターン時代に開発していた経験があることから自分に開発を一任してもらえました。チームをリードして開発するのはプレッシャーもありましたが、無事に期限内に完成まで行けたどころか、間に合わなそうだなと思っていた機能まで終わらせることができ、初めてのプロジェクトは大成功に終わりました。(クライアントさんもとても喜んでくれていました☺️)こんな大役を自分を信じて任せてくれて好きなようにやらせてくれたチームには感謝しかありません!
達成したこと
これまでに紹介したこと以外でこの一年で達成できたことを紹介します。
この一年で自分は4つのクラウドの資格を取りました。
Azure AZ 900
AWS Cloud Practitioner
AWS SAA
AWS DVA
資格を持っていればクラウドが使える!という証明にはなりませんが、自分がCloud Residencyで学んだことがちゃんと身についていたということになるので自信にはつながりました!
またこうしてNoteでも発信をはじめれました。まだ記事は3本目ですが、これからもっと発信していければと思います。そんなん誰でも知ってるわ!っていう記事じゃなくて読んで何か学びのある記事を書くことを心がけているので頻度は多くはないかもですが、自分のペースでmeaningfulな記事を発信できればと思います。
社内ではこいつにフロントエンドを任せても大丈夫という信頼を得れたと思います。Cloud Residencyの時もプロジェクトに入った時も積極的にフロントエンドについてチームに貢献していたのでそこを評価してもらえました。
振り返り・今後の目標
今年一年はとても学びの多い一年になり、新卒1年目とは思えないほどいろんなことも任されたりして、とても充実した1年になりました。
ただ悔いが残るのが、AWS Jr.Championになれなかったことです。
今後やりたいことの一覧です。
AWSの資格をもっと取りたい
Securityの分野をもっと勉強したい。SSCPを取りたい。
AWSの技術的なことをもっと発信したい
キャリアについてももっと発信したい
AWS Jr.Championリベンジ
自分でアプリをリリース
新しい言語の勉強(Java or Go)
ASU卒業
ここまでよんくれてありがとうございました!参考になれば幸いです。質問あればいつでもDMで受け付けてます👌
ぜひTwitterとNoteのフォローお願いします!😊
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?