AWS認定資格 WEB問題集&徹底解説
クラウドプラクティショナー
AWSサービスの一つであるAWS CodeStarはどんな内容なのでしょうか?また、AWS認定資格のクラウドプラクティショナー(CLF)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS CodeStarは、ソースリポジトリ、ビルド、デプロイ、パイプライン、チーム権限をまとめて作成し、AWS上のアプリケーション開発プロジェクトを素早く開始するための統合サービスとして提供されてきました。 実体としては、CodeCommit、CodeBuild、CodePipeline、CodeDeploy、CloudFormation、IAM、CloudWatchなどを組み合わせた開発プロジェクトのひな型です。
現在の試験対策では、CodeStar単体よりも、背後で使われる各Code系サービスの役割を分解して理解することが重要です。 新規設計では、CodePipeline、CodeBuild、CodeDeploy、CloudFormation/CDK、GitHub連携、CodeCatalystなどを要件に応じて選択する観点を押さえます。
2. 主な特徴と機能
2.1 プロジェクトテンプレート
CodeStarは、Webアプリケーション、サーバーレスアプリケーション、コンテナアプリケーションなどのテンプレートから、ソースコード、ビルド、デプロイ設定を作成します。 試験では「プロジェクト一式を素早く作る統合サービス」として理解します。
2.2 CI/CDパイプライン作成
CodePipelineで変更検知とステージ管理を行い、CodeBuildでビルド/テストし、CodeDeployやCloudFormationでデプロイする構成を作成します。 どのサービスが何を担当するかを分けて覚えるのがポイントです。
2.3 ソースコード管理
CodeStarプロジェクトはCodeCommitやGitHubなどのリポジトリをソースとして扱います。 ただし、ソース管理そのものはCodeStarではなくGitリポジトリサービスの役割です。
2.4 チーム権限管理
プロジェクトメンバーにロールを割り当て、開発者、閲覧者、所有者などの権限を管理します。 実際のアクセス制御はIAMロール、IAMポリシー、各サービスの権限で実現されます。
2.5 ダッシュボード
プロジェクトのビルド状況、デプロイ状況、アプリケーションメトリクスなどを一元的に見られるダッシュボードを提供します。 監視やログの詳細確認はCloudWatch、CodeBuildログ、CodePipeline実行履歴で行います。
2.6 現在の設計での注意
試験の新しい設計問題では、CodeStarだけで解くよりも、個別のCode系サービスやIaCを組み合わせる選択肢が自然です。 既存CodeStarプロジェクトの保守では、構成要素を把握し、各サービスの権限、料金、障害点を確認します。
3. アーキテクチャおよび技術要素
- テンプレートを選択し、アプリケーション種別、言語、デプロイ先を決める。
- CodeStarがソースリポジトリ、CloudFormationテンプレート、CodeBuild設定、CodePipelineを作成する。
- 開発者がGitリポジトリへコードをpushする。
- CodePipelineが変更を検知し、CodeBuildでビルドとテストを実行する。
- CodeDeploy、CloudFormation、Elastic Beanstalk、Lambda、ECSなどへデプロイする。
- CloudWatch、CodePipeline、CodeBuild、CloudTrailで実行状況と監査ログを確認する。
CodeStarを理解するコツは、統合サービス名ではなく、生成されたリポジトリ、ビルドプロジェクト、パイプライン、デプロイ先、IAMロールを追うことです。
4. セキュリティと認証・認可
- IAMロール: CodeStarプロジェクト、CodeBuild、CodePipeline、CodeDeployが使うロールを最小権限にする。
- チーム権限: 所有者、開発者、閲覧者のように職務分掌を分け、不要な管理権限を付けない。
- ソース保護: Gitリポジトリのブランチ保護、レビュー、署名、シークレット混入防止を導入する。
- ビルド環境: CodeBuildの環境変数、Secrets Manager/Parameter Store、KMS、VPC接続を適切に設定する。
- 監査: CloudTrail、CodePipeline実行履歴、CodeBuildログ、CloudWatch Logsで変更と実行を追跡する。
- 生成リソース確認: テンプレートが作るIAMポリシー、S3バケット、デプロイ先をレビューする。
5. 料金形態
CodeStar自体の管理機能に追加料金はありませんが、プロジェクトで作成・利用されるAWSサービスには料金が発生します。
- CI/CD: CodeBuildのビルド時間、CodePipelineのパイプライン利用、CodeDeployのデプロイ対象に関する料金。
- デプロイ先: EC2、Lambda、Elastic Beanstalk、ECS/Fargate、API Gatewayなどの実行料金。
- 保存/ログ: S3アーティファクト、CloudWatch Logs、ECR、CodeArtifactなどの料金。
- ネットワーク: データ転送、NAT Gateway、VPCエンドポイントなどの料金。
- 最適化: 不要なプロジェクト、ビルド、スタック、ログ、デプロイ環境を削除する。
6. よくあるアーキテクチャ・設計パターン
- サーバーレスWeb API: リポジトリ、CodeBuild、CodePipeline、Lambda/API Gatewayをテンプレートで作成する。
- EC2/Elastic Beanstalkアプリ: Webアプリをビルドし、CodeDeployやElastic Beanstalkへデプロイする。
- コンテナアプリ: CodeBuildでコンテナをビルドし、ECR/ECS/Fargateへデプロイする。
- チーム開発の標準化: プロジェクトテンプレートでCI/CDと権限を標準化する。
- 既存CodeStar移行: 生成済みのCodePipeline、CodeBuild、CloudFormation、IAMを個別管理へ移す。
- 新規設計の分解: CodeStarを使わず、CodePipeline + CodeBuild + CodeDeploy/CDKで明示的に構成する。
7. 設定・デプロイ手順(ハンズオン例)
- 要件に合うアプリケーションテンプレート、言語、デプロイ先を選択する。
- ソースリポジトリ、ビルド仕様、デプロイ先、IAMロールを確認する。
- CodeStarが作成したCodePipeline、CodeBuild、CloudFormation、CodeDeploy設定を確認する。
- 開発者を追加し、ロールとリポジトリアクセス権限を最小権限で付与する。
- コードをpushしてパイプラインを実行し、ビルドログとデプロイ結果を確認する。
- CloudWatch Logs、CloudTrail、アプリケーションメトリクス、料金を確認する。
- 新規運用では、必要に応じて各Code系サービスやCDK/CloudFormationで明示的に再構成する。
8. 試験で問われやすいポイント
8.1 サービス選択
- Q: AWS CodeStarの主な用途は?
A: ソース、ビルド、デプロイ、パイプライン、チーム権限を含む開発プロジェクト一式を素早く作成すること。 - Q: パイプラインのステージを管理する中心サービスはCodeStar?
A: いいえ。ステージ管理の中心はCodePipelineで、CodeStarは統合プロジェクト作成サービス。 - Q: 新規CI/CD設計で個別に選ぶ代表サービスは?
A: CodePipeline、CodeBuild、CodeDeploy、CloudFormation/CDK、必要に応じてGitHub連携など。
8.2 構成要素
- Q: CodeStarプロジェクトでビルドを担当するサービスは?
A: AWS CodeBuild。 - Q: EC2やLambdaへのアプリケーションデプロイを担当する代表サービスは?
A: AWS CodeDeploy。構成によってCloudFormationやElastic Beanstalkも使われる。 - Q: ソースコード管理そのものを担当するサービスは?
A: CodeCommitやGitHubなどのGitリポジトリ。
8.3 権限と料金
- Q: CodeStarプロジェクトの権限管理で重要なものは?
A: IAMロール、IAMポリシー、チームメンバーのロール、各Code系サービスのサービスロール。 - Q: CodeStar自体に追加料金はかかる?
A: CodeStar自体は追加料金なしだが、CodeBuild、CodePipeline、EC2、Lambda、S3、CloudWatchなどには料金が発生する。 - Q: CodeStarの理解で最も重要な試験対策は?
A: CodeStar名だけで覚えず、生成されるCodePipeline、CodeBuild、CodeDeploy、CloudFormation、IAMの役割へ分解すること。