AWSのYouTube動画など見てるとよくNathan Peckという人が出てるので、GitHubのリポジトリとか探したらあるかなと思って探してみました。 そしたらすぐ見つかって、その中のピン止めされてるリポジトリがすごい勉強になりそうな感じでした。
ピン止めされていたのがこちらのリポジトリ。
Slack風のチャットアプリケーションで、Node.jsとVue.jsで書かれているとのこと。
以下の特徴があるとREADMEに記載がありました。
・EC2インスタンスは無し。管理したりアップデートする必要のない状態にするのがこのアプリケーションのアーキテクチャの目標のひとつ。
・全てinfrastructure as codeで定義されていて、AWS Cloud Formationで全リソースを作成している。
・AWS CodePipelineを使ってCI/CDをしているのでGithubにプッシュすれば自動でデプロイされる。
・AWS CodeBuildで自動でDockerコンテナがビルドされる。
上記の特徴見る限り、完全に自分が今身に付けたいスキルセットの要素が詰まってるリポジトリだなと思って感動しました。
今すぐに優先順位上げて取り組むわけではないですが、長い目で見てゆっくりこのリポジトリのソース読んで技術を学びたいと思います。
AWSのエンジニアのコードが読めるって素晴らしいな。
しかも丁寧にデプロイ用のドキュメントも用意してくれているので、実践しやすそうです。ありがたい。
時間作ってドキュメントに書かれていることそのまま手を動かそうと思います。
ちなみに試しにこのリポジトリgit cloneしてdocker-compose upしてみたらコンテナ作成できないものがあったりしてチャットアプリケーションを動作させることはできていないんですが、なんでコンテナ作成失敗するのかの原因を調べるのも勉強になりそう。
とりあえず今の時点での新しい発見は以下。 ・DynamoDBをローカルでテストするためのdynamodb-localというものがあるらしい。
・socket.io-chat-fargate/deps/dynamodb-tables/tables.shでAWS CLIのコマンドらしきものを書いている。こんな感じでスクリプトにAWS CLIの操作書いておいて、呼び出した時にリソースの操作ができるっぽい。(今までターミナルからひとつずつコマンド実行する方法しか試したことなかった)
ちょっとずつコード読んでいきます~。