CI/CDパイプラインの構築

GitHub Actionsを使用して、APIのテスト・ビルド・デプロイを自動化するCI/CDパイプラインを構築します。コードをプッシュするだけでAWS環境に自動デプロイされる状態を目指します。

  • GitHub Actionsで静的解析・自動テストを自動実行する
  • DockerイメージのビルドとECRへのプッシュを自動化する
  • ECSサービスを自動更新し、デプロイを完全自動化する

1. 必須要件

GitHub Actionsを使用して、以下のCI/CDパイプラインを構築してください。

1.1 CIパイプライン(プルリクエスト時に自動実行)

  • API構築で導入した静的解析(Flake8、Black、mypy など)が自動実行されること
  • API構築で作成したPytestによる自動テストが実行されること
  • 静的解析またはテストが失敗した場合、プルリクエストのマージをブロックすること
    • GitHubのブランチ保護ルールを設定し、CIの成功をマージの必須条件にすること

1.2 CDパイプライン(mainブランチへのマージ時に自動実行)

  • API構築のDockerfileを使ってDockerイメージをビルドすること
  • ビルドしたイメージに適切なタグ(コミットハッシュなど)を付けてECRにプッシュすること
  • ECSサービスを更新し、新しいイメージでタスクが起動されること(ローリングアップデート)
  • デプロイ後、ALB経由でAPIが正常にレスポンスを返すことをヘルスチェックで確認すること

1.3 セキュリティ

  • AWSの認証情報はGitHubのSecretsに登録し、ワークフローファイルにハードコードしないこと
  • シークレットとして管理する値の例:AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGIONECR_REPOSITORY など

1.4 ワークフローの品質

  • ワークフローファイル(.github/workflows/)に各ステップの目的がわかるコメントを記載すること
  • CIとCDのワークフローは別ファイルに分けて管理すること

2. 提出物

  • GitHubリポジトリのURL
  • mainブランチに最新のコードがマージされている状態にすること
  • README.mdに以下を記載すること
    • CI/CDパイプラインの概要(どのタイミングで何が実行されるか)
    • GitHub Secretsに設定が必要な値の一覧
    • パイプラインの動作確認手順

3. パイプライン構築の進め方

CIとCDを分けて段階的に構築することをおすすめします。

  1. CIパイプラインの作成 … プルリクエスト時にPytestを実行するワークフローを作成する
  2. CIの動作確認 … テストが成功するプルリクエストと、失敗するプルリクエストをそれぞれ作成し、パイプラインの動作を確認する
  3. ブランチ保護ルールの設定 … mainブランチへのマージにCIの成功を必須とする
  4. CDパイプラインの作成 … mainマージ時にDockerビルド → ECRプッシュ → ECSデプロイを実行するワークフローを作成する
  5. CDの動作確認 … コードを変更してmainにマージし、自動デプロイが正しく行われることを確認する
💡 ポイント
CI/CDパイプラインが完成すると、コードの変更からデプロイまでが自動化されます。これにより、手動でのデプロイ作業がなくなり、ヒューマンエラーのリスクも軽減されます。DevOpsの実践として非常に重要なスキルです。

4. 参考講座

5. 目安期間

2週間

6. おわりに

CI/CDパイプラインまで完成したら、コースAの必須ステップは完了です。設計からAPI構築、インフラ構築、コード化、CI/CDパイプラインまで、一連の流れを自分の手で構築できたことは大きな成果です。

さらに実務で求められる応用スキルを身につけたい方は、発展課題に挑戦してみてください。セキュリティテスト、Blue/Greenデプロイメント、AWSセキュリティサービス、オブザーバビリティ、E2Eテスト、性能テスト、ChatOpsなど、現場で重宝されるテーマを扱っています。

ポートフォリオ制作のフィードバックはスタンダードプラン以上でご利用いただけます。

プランのアップグレード