継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

AWS での Terraform とコンテナの開発・デプロイを体感する『コンテナ時代のWebサービスの作り方』を読んだ

タダです.

コンテナでアプリを動したり,その環境を Terraform で構成する経験を積んでいきたいと思い「コンテナ時代のWebサービスの作り方」を購入しました.本書を読了したので,学べることと所感をまとめていきます.

Booth booth.pm

目次

本書の章立ては次の通りです.本編として123Pの内容です.

  • 第1章 めざすゴール
  • 第2章 Terraform と ECS について
  • 第3章 Web アプリケーションの作成及び CI でのコンテナビルド
  • 第4章 AWS ECS 関連のリソース作成
  • 第5章 ドメイン取得と SSL
  • 第6章 デプロイ
  • 第7章 RDS の接続
  • Appendix A CircleCI の設定
  • Appendix B GitHub Actions でデプロイをする

1,2章で本書で作る環境のこと,Terraform と ECS の知識を拡充しつつ,3~7章で実践するパート構成となっています.本書を通じて以下の AWS 環境を作り,Sinatra アプリケーションをデプロイします.

f:id:sadayoshi_tada:20200618034417p:plain

引用元:コンテナ時代のWebサービスの作り方 図1.1 目指すシステム構成より

本書で学べること

本書を通じて学べることを以下に列挙します.なお,Terraform は以下の環境で実行しています.

» terraform version
Terraform v0.12.26
+ provider.aws v2.39.0
  • VPC,EC2,IAM,ECR,ECS,ALB,Route53,ACM を作るTerraform の記法,ドライラン,デプロイの実践(RDS と System Manager は手動構築)
  • CircleCI を使ったコンテナイメージのビルド,ECR へ格納する CI の実践
  • CircleCI での ECS on EC2 にタスクとサービスのコンテナをデプロイ
  • CircleCI の処理を GitHub Actions に置き換え

読了後の所感

全体を通して Terraform でインフラを作りつつ,Circle CI による CI/CD を回してアプリケーションをリリースしていきます.なので,次の勉強目的があればとても勉強になる内容でした.

1, AWS のコンテナサービスを使いたい

2, Terraform を使ってみたい

3, CircleCI や GitHub Action での CI/CD を使ってみたい

なお,アプリケーションの開発は最小の要件で作っているためがっつりとした開発を求めている場合は本書だけでは不十分ではありますが,本書で作ったアプリを追加開発してみると良いと感じました.

また,Terraform のコード,CircleCI のコンテナビルドや AWS CLI パートでそのまま写経すると誤記により処理がコケる部分がありました.ただ,エラーが発生した時こそ本書に載っている内容以外の知識もつけられるチャンスで自分もちょっと回り道しましたが正しい記法を学べて良かったです.

関連記事

sadayoshi-tada.hatenablog.com

まとめ

コンテナ時代のWebサービスの作り方」で学べること,所感を整理しました.ハンズオン中心の内容になっていて実際に動作する環境を段階的に作り上げるのが勉強になりました.特にコンテナへの CI/CD を机上や記事で見ていただけでしたが本書を通して実践できてよかったです.Terraform と AWS でのコンテナ活用をテーマにした勉強をされたい方にオススメの一冊です!