どーも!
たかぽんです...!
今回は先日参加してきたAWSの研修についてです...!
AWSの研修ははじめてだったんですが、めちゃくちゃ楽しかったので、忘れないうちにメモしておこうと思います...!
目次
AWS Jumpstart for NewGradsとは?
AWS Jumpstart for NewGradsとは、AWSが主催してくれている新卒向けの研修になっています。
どうやら数ヶ月に一回程度の頻度で開催されているようで、詳細の内容は回によって変わってくるようです。(本blogだけでなく、他のblogで過去に開催されているようで, 内容は筆者の研修と少し異なるようでした。)
ただ、詳細の内容が変わるとはいっても、基本的にはシステムアーキテクチャ設計の基本を学べるような研修になっています。
そもそも、システム構成を考えるとき、サーバーが落ちた時の対策ってどうすればいいんだっけ?といった一般的なシステム構築の基本に加え、例えばこういった要件のサービスをAWSを使って構築して行きたいんだけど、その場合、AWSのどのサービスを組み合わせて使えばいいんだろうか・・・?
といったことを3日間かけて学ぶプログラムになっています。
一点だけ気をつけていただきたいのが、参加に関しては基本的に会社経由での参加になると思われます。
(というのも、筆者の場合は上司からAWSの研修あるけどいく?といった感じで参加するに至ったため、裏側でどんなやり取りが行われていたのかはわからないです...日頃お世話になっているAWSの担当者さんから話が来たのかな...?)
いま働いている会社でAWSを使用している場合、いつか機会が来るかもなので、是非機会があった方は受けてみるのをお勧めします...!
では、次節からもう少し詳しく筆者の回の研修で行った内容をご説明していこうと思います...!
(ちなみに、筆者は新卒ではないですが、参加できました...!)
研修内容
さて、それでは次に研修内容についてご説明して行きます...!
雑ですが、筆者の回は以下のような流れでした。
- 初日: スケーラブルなシステム構築のハンズオン & チャットシステムの設計(グループワーク一日目)
- 二日目: サーバーレスなシステム構築のハンズオン& チャットシステムの設計(グループワーク二日目)
- 三日目: チャットシステムの設計(グループワーク三日目) & 発表
それぞれ簡単に説明して行きます...!
スケーラブルなシステム構築のハンズオン
まず初日ですが、簡単にシステム構築の座学をして、スケーラブルなTodoアプリの構築を実際のAWSコンソールを用いて行いました。
さすがAWS公式の研修で、研修用のアカウントも用意されており、コストなどは気にせず触ることができました...!
研修用のアカウントで、VPCを構築し、そのVPC上でECSのtaskを動かします。
RDSも併せて用意して、AWS側で用意してくれている最低限のコードがあるので、それによってTodoアプリを動かしてみよう...!といった具合です。
完成したらとりあえず動かしてみて、さらにAWS Clud ShellというCUIを用いて定期的にアクセスされる想定で準備をしました。
そしてその状態でDBを止めたりタスクを落としたり....といった障害発生時の挙動の確認などを行いました。
筆者的にはAWS Cloud Shellの存在を初めてしれたのも大きかったです...w
サーバーレスなシステム構築のハンズオン& チャットシステムの設計
二日目はサーバーレスなシステム構築をしました。
具体的にはlambdaとdynamoDB、API Gatewayを用いて適当な文字列でリクエストを飛ばすと英語に翻訳をして返してくれるAPIを作成しました。
UIは最低限だったんですが、翻訳をしてその翻訳履歴をdynamoDBに保存、後から確認できるように...といった形です。
以前似たものでLINEにチャットすると翻訳して返す...みたいなものを試しにつくったことがあるのですが、DynamoDBでサーバーレスに動かしたものをDBに保存することを知れました...!
サーバーレスに手近な便利ツールとか作ってみるのも面白そうだなぁと思いました...!
チャットシステムの設計 & 発表
さて、そしてこの研修のメインがチャットシステムの設計でした。
詳述は控えますが、割と雑な感じ(例えばアクセスは毎秒n件、リアルタイムで更新...などなど)で要件が出されているので、それについて、基本的な設計を考えて行きます。
どんな画面が必要になる?どんなデータが必要になる?といったところを考えると、インフラ側でサーバーが何台必要?そもそもサーバーレスの方が適切?スケーリングは?可用性は担保できている・・・?
といったことを3日間チームでがっつり話し合って検討し合います。
ほんとに最初に渡される情報は上記の雑な要件のみで、あとは各チームで進め方は自由に〜といった感じです。
一日1 ~ 2回、AWSのSA(ソリューションアーキテクト)の方に相談する時間が設けられており、検討を進めていて悩んだことについて意見をいただけます。
成果物としてはインフラ構成図+αです。
インフラ構成図はよくみるAWSサービスの関連などを図示化したもので、あとはチームごとに画面遷移のワイヤーフレーム・詳細の仕様を描いているチームもあれば、他にはなにもないチームもあったり....といった感じでした。
最後にAWSのSA含め、他のチームの前で発表をします。
そして、最終発表を終えたら評論をいただいて一連の研修の終わりです。
チームの方が優秀すぎて学びが多かったです...!
例えば筆者はWebsocketなどを触ったことがなく、LINEなどの一般的なチャットを考えてみると、Aがチャットを送信したらBに即座にメッセージが表示されると思います。
あれを実際に実現するにはどうする・・・?となった際にWebsocketというものを用いれば実現できるようで、以前似たことをした方にお話をきけました。
筆者がWebサービスを運用していてそういったケースに出会ったことがなかったので、学びになりました...!
まとめ
さて、今回はAWSの研修についてお話ししました...!
なかなか機会はないかも知れませんが、やはりハンズオンはちゃんと読み進めるとさまざまな経験を積めるので、積極的に参加して行きたいですね...!
最近compassなどでもいろんなとこにお邪魔するようになったので、もし良さそうなものがあったら都度ご紹介できればと思います...!
それでわ!