Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraform で作る Amazon ECS の CI/CD パイプライン

hiyanger
January 18, 2025

Terraform で作る Amazon ECS の CI/CD パイプライン

栃木ゆる勉強会(2025/1/18)
https://tochigi-study.connpass.com/event/337526/

登壇 / 20分

hiyanger

January 18, 2025
Tweet

More Decks by hiyanger

Other Decks in Programming

Transcript

  1. 自己紹介 名前 / 檜山 準(ひやんが / hiyanger) 職種 / AWS

    エンジニア 所属 / クラウド系 SIer 出身 / 栃木県 宇都宮市 趣味 / ギター 🎸 @hiyanger
  2. 自己紹介 名前 / 檜山 準(ひやんが / hiyanger) 職種 / AWS

    エンジニア 所属 / クラウド系 SIer 出身 / 栃木県 宇都宮市 趣味 / ギター 🎸 @hiyanger
  3. はじめに ※補足 各用語の概要 Terraform コードでインフラが作れる IaC のひとつ。コードはインフラエ ンジニアにも優しい。 ECS AWS

    で使われるコンテナの代 表格。オーケストレーション的 なこともできちゃう。 CI/CD コードの変更からビルド、テス ト、デプロイまで自動化。
  4. どのような CI/CD パイプラインを作るかの検討 1. GitHub Actions のみ メリット .yml 1つで完結する

    デメリット ・AWS との複数の API 連携で処理が増える ・Blue/Green が できなさそう
  5. どのような CI/CD パイプラインを作るかの検討 3. GitHub Actions + AWS Codeシリーズ メリット

    ・単独で使う場合の 煩雑性を解消できる ・アプリとインフラの境 界を明確にできる💡 デメリット 両方の管理が必要
  6. 実際に CI/CD パイプラインを構築 1. GitHub Actions ・dockerfile から  docker image

    をビルド ・docker image を ECR に push  (💡OIDC 接続 / AWS クレデンシャル配置不要) ・migrations.sql を S3 へ配置 OIDC
  7. 実際に CI/CD パイプラインを構築 3. AWS Code シリーズ ・CodePipeline ・CodeBuild  💡RDS

    が プライベートサブネットに  あると VPC への配置と NAT GW が必要 ・CodeDeploy  💡ログがないのでエラーがでるとつらい
  8. 参考 ・より詳細な自分の Qiita 記事(GHA やTerraformのコードはこちらから) 【AWS】ECS CI/CD の作り方(GitHub Actions /

    Code シリーズ / Terraform) https://qiita.com/hiyanger/items/05d9203048d09da28288 ・ECS用のCDパイプラインに対する考察 https://zenn.dev/reireias/articles/8e987af2762eaa#3.-image-build%E3%81%AE%E3%81% BFgithub-actions%E3%81%A7%E3%82%84%E3%82%8B ・AWSとGitHubを用いたパターン別CI/CD構成解説 https://speakerdeck.com/tsukuboshi/cdgou-cheng-jie-shuo?slide=29 ・GitHub Actions から ECR に Docker イメージを push する https://zenn.dev/kou_pg_0131/articles/gh-actions-ecr-push-image#1.-github-actions-%E 7%94%A8%E3%81%AE-id-%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80 %E3%81%A8-iam-%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%9C%E6%88 %90%E3%81%99%E3%82%8B