翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
GitHub Actions を使用して AWS CloudFormation テンプレートに基づいて AWS Service Catalog 製品をプロビジョニングする
Amazon Web Services、Ashish Bhatt、Ruchika Modi
概要
このパターンは、AWS Service Catalog製品とポートフォリオを使用して標準化され、チーム AWS のサービス 間で準拠したプロビジョニングを行う効率的なアプローチを組織に提供します。 は、Service Catalog 製品とポートフォリオの重要なコンポーネントを組み合わせて、ベースネットワークインフラストラクチャをプロビジョニングするAWS CloudFormationのに役立ちます AWS クラウド。このパターンは、GitHub Actions
AWS Service Catalog を使用すると、組織は で承認された IT サービスを作成および管理でき AWS、標準化、一元管理、セルフサービスプロビジョニング、コスト管理などのメリットが得られます。GitHub Actions を通じて Service Catalog ポートフォリオと製品のデプロイを自動化することで、組織は以下を実行できます。
一貫性のある反復可能なデプロイ。
IaC のバージョン管理。
クラウドリソース管理の既存の開発ワークフローとの統合。
この組み合わせにより、手動エラーを減らし、全体的な効率を向上させながら、クラウド運用を合理化し、コンプライアンスを強制し、承認されたサービスの配信を高速化できます。
前提条件と制限事項
前提条件
アクティブな AWS アカウント
GitHub リポジトリ
へのアクセス権 AWS CloudFormation と の基本的な理解 AWS Service Catalog
CloudFormation テンプレートをホストするための Amazon Simple Storage Service (Amazon S3) バケット
GitHub と 間の接続に使用される という名前
github-actionsの AWS Identity and Access Management (IAM) ロール AWS
制限事項
このパターンの再利用可能なコードは、GitHub Actions でのみテストされています。
一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「AWS のサービス (リージョン別)
」を参照してください。特定のエンドポイントについては、「Service endpoints and quotas」で、サービスのリンクを選択してご確認ください。
製品バージョン
このパターンのソリューションは、次の GitHub Marketplace
actions/checkout@v4aws-actions/configure-aws-credentials@v2aws-actions/aws-cloudformation-github-deploy@v1.2.0
アーキテクチャ
このソリューション用のアーキテクチャを次の図に示します。

管理者またはプラットフォームエンジニアは、標準化された CloudFormation テンプレートを GitHub リポジトリにプッシュし、そこでテンプレートが維持されます。GitHub リポジトリには、GitHub Actions AWS Service Catalog を使用した のプロビジョニングを自動化するワークフローも含まれています。
GitHub Actions は、OpenID Connect (OIDC) プロバイダー AWS クラウド を使用して に接続し、Service Catalog をプロビジョニングするワークフローをトリガーします。
Service Catalog には、開発者が標準化された AWS リソースのプロビジョニングに直接使用できるポートフォリオと製品が含まれています。このパターンは、仮想プライベートクラウド (VPCs)、サブネット、NAT およびインターネットゲートウェイ、ルートテーブルなどの AWS リソースをバンドルします。
デベロッパーが Service Catalog 製品を作成すると、Service Catalog はそれを事前設定および標準化された AWS リソースに変換します。その結果、開発者は個々のリソースをプロビジョニングして手動で設定する必要がなくなるため、時間を節約できます。
ツール
AWS のサービス
AWS CloudFormation は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および 全体のライフサイクルを通じてリソースを管理するのに役立ちます AWS リージョン。これは、 製品タイプの 1 つとして簡単に使用できるコードとしてのインフラストラクチャ (IaC) サービスです AWS Service Catalog。
AWS Identity and Access Management (IAM) は、誰を認証し、誰に使用を許可するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。
AWS Service Catalog では、承認された IT サービスのカタログを一元管理できます AWS。エンドユーザーは、組織によって設定された制約に従って、必要な承認済みの IT サービスのみをすばやくデプロイできます。
Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。
その他
GitHub Actions
は、GitHub リポジトリと緊密に統合された継続的インテグレーションおよび継続的デリバリー (CI/CD) プラットフォームです。GitHub アクションを使用することで、生成、テスト、デプロイのパイプラインを自動化できます。
コードリポジトリ
このパターンのコードは、GitHub 内の service-catalog-with-github-actions
github/workflows:e2e-test.yaml– このファイルは再利用可能なワークフローである workflow.yamlを呼び出します。このワークフローは、ブランチにコミットとプッシュがあるとすぐにトリガーされます。workflow.yaml– このファイルには、このソリューションの再利用可能なワークフローが含まれており、トリガーとしてworkflow_callが設定されています。再利用可能なワークフローとして、workflow.yamlは他のワークフローから呼び出すことができます。
templates:servicecatalog-portfolio.yaml– この CloudFormation テンプレートには、Service Catalog ポートフォリオと Service Catalog 製品をプロビジョニングするリソースが含まれています。テンプレートには、Service Catalog ポートフォリオと製品のプロビジョニング中に使用される一連のパラメータが含まれています。1 つのパラメータは、テンプレートのvpc.yamlがアップロードされる Amazon S3 ファイル URL を受け入れます。このパターンには AWS リソースをプロビジョニングするvpc.yamlファイルが含まれていますが、設定に パラメータ S3 ファイル URL を使用することもできます。vpc.yaml– この CloudFormation テンプレートには、Service Catalog product に追加される AWS リソースが含まれています。 AWS リソースには、VPCs、サブネット、インターネットゲートウェイ、NAT ゲートウェイ、ルートテーブルが含まれます。vpc.yamlテンプレートは、Service Catalog 製品およびポートフォリオテンプレートで CloudFormation テンプレートを使用する方法の例です。
ベストプラクティス
AWS Service Catalog ドキュメントの「 のセキュリティのベストプラクティス AWS Service Catalog」を参照してください。
GitHub ドキュメントの「Security hardening for GitHub Actions
」をご確認ください。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
ローカルワークステーションに Git をセットアップします。 | Git ドキュメントの「Getting Started – Installing Git | アプリ開発者 |
GitHub プロジェクトリポジトリのクローンを作成します。 | GitHub プロジェクトリポジトリのクローンを作成するには、以下を実行します。
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
OIDC プロバイダーを設定します。 | AWS 認証情報を存続期間の長い GitHub シークレットとして保存することなく AWS、GitHub Actions ワークフローがリソースにアクセスできるようにする OpenID Connect (OIDC) GitHub プロバイダーを作成します。手順について、詳しくは GitHub ドキュメントの「Amazon Web Services での OpenID Connect の構成 OIDC プロバイダーが設定されると、前提条件で前述した IAM ロール | AWS 管理者、AWS DevOps、AWS 全般 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
| この
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
Service Catalog リソースを検証します。 | Service Catalog リソースを検証するには、以下を実行します。
| AWS DevOps |
| タスク | 説明 | 必要なスキル |
|---|---|---|
CloudFormation スタックを削除します。 | 以下の操作を行い CloudFormation スタックを削除します。
詳細については、CloudFormation ドキュメントの「CloudFormation コンソールからスタックを削除する」をご確認ください。 | DevOps エンジニア、AWS 管理者 |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
| 正しいリポジトリ設定が有効になっていることを確認するには、以下を実行します。
|
関連リソース
AWS ドキュメント
その他のリソース
About events that trigger workflows
(GitHub ドキュメント) Reuse workflows
(GitHub ドキュメント)
追加情報
エピックに関連するスクリーンショットを表示するには、このパターンの GitHub リポジトリの [Images] フォルダに移動してください。次のスクリーンショットを使用できます。