Nuxt.js + AWS ECS Fargate その4(まとめ)

f:id:jotaki:20210321165648p:plain

GitHub

https://github.com/yuheijotaki/nuxt-fargate_app

これまでの記事

構成

f:id:jotaki:20210325162129p:plain

  1. Nuxt.js(SSR)のコードを GitHub にプッシュするとCodePipelineが走る。
  2. CodeBuild でイメージをビルド。ECRへイメージを登録
  3. CodeBuild の成功を受けてタスク・サービスの更新。
  4. ECS(Fargate)が ECR からイメージ取得。
  5. CodeDeploy が ECS(Fargate)へデプロイ。

f:id:jotaki:20210325161454p:plain

VPC内はコンテナタスクを各サブネットに配置しALBで分散する。

感想

当初AWSサービスを使ってアプリを公開するところまでしてみたいなという気持ちから、 Nuxt.js + Ruby on Rails + AWS Fargate の開発・デプロイチュートリアル を本の内容通りに構築することを検討していました。
ただ最初のRubyのDB設定のところでつまづきまくり、バックエンド構築を理解したいわけでもないしなぁ..と考え直し、今回の Nuxt.js + ECS + CodePipeline という構成でやってみる形になりました。

大枠の感想としては、資格勉強はあまり役には立っていないかもなというのという気持ち半分、意外と何日か触れば一通りはできるものだなという気持ち半分と言った所です。

実際には考慮するべき点が多くあると思っています。

  • サービスのスケール面
    • ALBのターゲットグループの設定内容
    • DockerのCPU,メモリ等の設定内容
  • アプリケーション設定
    • DNS設定
    • nuxt.config.js
  • ビルド&デプロイ設定
    • テスト
    • ステージングや本番環境などステージごとのデプロイ
  • セキュリティ
    • ググりながらやってみたものの、特にタスク定義ロールなどの理解が乏しい

このようなことをやってみると、インフラエンジニアや開発エンジニアの方はこれらの考慮点なども含め構築されていると思うので、改めてすごいなということでした。
特にCodeDeployの権限周りをかなりググりながら進めましたが、AWSのドキュメントで日本語訳が追いついていないものやエラー内容が引っかからないなどあり検索能力や基礎知識が足りていないなと実感もしました。

ただほんわりとしか分かっていなかったコンテナというそのものであったり、CodePipelineの設定などを実際にやってみて、多少は理解は進んだという感触もあるので次回また何かしらに生かしていきたいと思います。