AWS認定資格 WEB問題集&徹底解説

クラウドプラクティショナー

AWS CodePipeline の概要と試験出題ポイントは?

AWSサービスの一つであるAWS CodePipelineはどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS CodePipeline 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS CodePipelineは、ソフトウェアのリリースプロセスを自動化するフルマネージドのCI/CD(継続的インテグレーション・継続的デリバリー)サービスです。コードの変更を検出してからビルド・テスト・デプロイまでの一連のワークフローを自動実行します。

CodePipeline単体はオーケストレーターであり、実際のビルドはCodeBuild・デプロイはCodeDeploy/CloudFormation/ECS等と連携して実行します。

2. 主な特徴と機能

2.1 パイプラインのステージ構成

パイプラインは複数のステージで構成され、各ステージに1つ以上のアクションを定義します。

  • Source(ソース)ステージ: コード変更を検出(CodeCommit・GitHub/GitLab/Bitbucket・S3・ECR)。
  • Build(ビルド)ステージ: コードをビルド・テスト(CodeBuild・Jenkins等)。
  • Test(テスト)ステージ: 統合テスト・受け入れテストを実行(CodeBuild・AWS Device Farm等)。
  • Deploy(デプロイ)ステージ: 成果物をデプロイ(CodeDeploy・CloudFormation・ECS・Elastic Beanstalk・Lambda・S3等)。

2.2 承認アクション(Manual Approval)

パイプラインの途中に手動承認ステップを挿入可能。本番デプロイ前に担当者の承認(SNS通知→メール/Slack等)を必須化できます。

2.3 並列アクション・条件分岐

同一ステージ内で複数のアクションを並列実行(並列テスト等)。条件(Conditions)で特定の条件を満たした場合のみ次ステージに進む設定が可能(V2パイプライン)。

2.4 アーティファクト

ステージ間でS3バケット経由でアーティファクト(ビルド成果物・設定ファイル等)を受け渡します。

2.5 EventBridge統合

パイプラインのステージ変化・失敗をEventBridgeで検知してSNS通知・Lambda処理・CloudWatch Alarmと連携。

3. アーキテクチャおよび技術要素

  1. 開発者がコードをCodeCommit/GitHubにプッシュ → CodePipelineのSourceステージがトリガー。
  2. BuildステージでCodeBuildがビルド・ユニットテストを実行 → アーティファクトをS3に保存。
  3. (オプション)Manual Approvalで承認者がデプロイを許可。
  4. DeployステージでCodeDeploy/CloudFormation/ECS等に自動デプロイ。

4. セキュリティと認証・認可

  • IAMロール: CodePipelineはサービスロールを使用して各ステージのアクションを実行(S3・CodeBuild・CodeDeploy等へのアクセス権限)。
  • アーティファクトの暗号化: S3上のアーティファクトをKMSで暗号化。
  • Cross-accountデプロイ: 別アカウントへのデプロイはIAMクロスアカウントロール + S3バケットポリシーで実現。

5. 料金形態

  • アクティブなパイプライン: 月あたりのアクティブパイプライン数で課金(最初の1パイプライン/月は無料)。
  • パイプラインの実行回数ではなく、アクティブなパイプライン数に基づく課金(V1)。V2はアクション実行分単位で課金。

6. よくあるアーキテクチャ・設計パターン

  • フルCI/CDパイプライン: GitHub → CodePipeline → CodeBuild(ビルド・テスト)→ Manual Approval → CodeDeploy(本番デプロイ)。
  • インフラCI/CD(IaC): CloudFormationテンプレートの変更 → CodePipeline → CloudFormationスタック更新(インフラの自動プロビジョニング)。
  • マルチ環境デプロイ: dev→staging→prod の順に自動デプロイ。各環境間にManual Approvalまたは自動テストを挿入。

7. 設定・デプロイ手順(ハンズオン例)

  1. CodePipelineコンソール→「パイプラインを作成」→名前・サービスロールを設定。
  2. Sourceステージ: プロバイダー(CodeCommit/GitHub等)・リポジトリ・ブランチを設定。
  3. Buildステージ: CodeBuildプロジェクトを選択/作成。
  4. Deployステージ: デプロイプロバイダー(CodeDeploy/ECS/CloudFormation等)を設定。
  5. パイプラインを作成してコードプッシュによる自動実行を確認。

8. 試験で問われやすいポイント

8.1 CodePipelineの役割

  • Q: AWSでCI/CDパイプラインを自動化するサービスは?
    A: AWS CodePipeline(ソース→ビルド→テスト→デプロイの一連のワークフローを自動実行するオーケストレーター)。

8.2 ステージ構成

  • Q: CodePipelineのパイプラインを構成するステージの種類は?
    A: Source(コード変更検出)・Build(ビルド/テスト)・Test(統合テスト)・Deploy(デプロイ)・Approval(手動承認)等。各ステージに複数のアクションを並列実行可能。

8.3 Manual Approval

  • Q: 本番デプロイ前に人による承認を必須にするには?
    A: CodePipelineにManual Approvalアクションを追加(SNS経由でメール通知→承認者がコンソール/APIで承認/拒否)。

8.4 アーティファクト

  • Q: CodePipelineのステージ間でビルド成果物を受け渡す仕組みは?
    A: S3バケットをアーティファクトストアとして使用。ビルド成果物・設定ファイルをS3経由で次のステージに渡す(KMSで暗号化可能)。