ビルド出力を S3 バケットでホストする静的ウェブサイトの作成 - AWS CodeBuild

ビルド出力を S3 バケットでホストする静的ウェブサイトの作成

ビルドのアーティファクトの暗号化を無効にすることができます。これにより、ウェブサイトをホストするように設定した場所にアーティファクトを発行できます。(暗号化されたアーティファクトを発行することはできません。) このサンプルは、ウェブフックを使用してビルドをトリガーし、ウェブサイトとして設定した S3 バケットにそのアーティファクトを発行する方法を示しています。

  1. 静的ウェブサイトのセットアップ」の手順に従って、S3 バケットをウェブサイトとして動作するように設定します。

  2. AWS CodeBuild コンソール (https://console.aws.amazon.com/codesuite/codebuild/home) を開きます。

  3. CodeBuild の情報ページが表示された場合、ビルドプロジェクトを作成するを選択します。それ以外の場合は、ナビゲーションペインでビルドを展開し、[ビルドプロジェクト] を選択し、次に [Create build project (ビルドプロジェクトの作成)] を選択します。

  4. [プロジェクト名] に、このビルドプロジェクトの名前を入力します。ビルドプロジェクトの名前は、各 AWS アカウントで一意である必要があります。また、他のユーザーがこのプロジェクトの使用目的を理解できるように、ビルドプロジェクトの説明を任意で指定することもできます。

  5. [ソース] で、[ソースプロバイダ] として [GitHub] を選択します。手順に従って GitHub に接続 (または再接続) し、[Authorize (承認)] を選択します。

    [ウェブフック] で、[Rebuild every time a code change is pushed to this repository (コードの変更がこのレポジトリにプッシュされるたびに再構築する)] を選択します。このチェックボックスは、[Use a repository in my account (自分のアカウントでリポジトリを使用する)] を選択した場合のみオンにできます。

    ウェブフック設定。
  6. [環境] で以下の操作を行います。

    [Environment image (環境イメージ)] で、次のいずれかの操作を行います。

    • が管理する Docker イメージを使用するにはAWS CodeBuild、[Managed image (マネージドイメージ)] を選択し、次に [オペレーティングシステム]、[ランタイム]、[イメージ]、および [ランタイムバージョン] で適切な選択を行います。利用可能な場合は、[環境タイプ] から選択します。

    • 別の Docker イメージを使用するには、[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Other registry (その他のレジストリ)] を選択した場合は、[External registry URL (外部のレジストリ URL)] に docker repository/docker image name の形式に従って Docker Hub の Docker イメージの名前とタグを入力します。[Amazon ECR] を選択した場合は、[Amazon ECR repository] (Amazon ECR レポジトリ) および [Amazon ECR image] (Amazon ECR イメージ) を使用して AWS アカウントの Docker イメージを選択します。

    • プライベート Docker イメージを使用するには、[カスタムイメージ] を選択します。[Environment type (環境タイプ)] で、 [ARM]、[Linux]、[Linux GPU] または [Windows] を選択します。[Image registry (イメージレジストリ)] に [Other registry (その他のレジストリ)] を選択して、その後プライベート Docker イメージの認証情報の ARN を入力します。認証情報は、Secrets Manager で作成する必要があります。詳細については、AWS Secrets Managerユーザーガイドの「AWS Secrets Manager とは」を参照してください。

  7. [Service role (サービスロール)] で、次のいずれかの操作を行います。

    • CodeBuild サービスロールがない場合は、[新しいサービスロール] を選択します。[Role name] に、新しいロールの名前を入力します。

    • CodeBuild サービスロールがある場合は、[Existing service role (既存のサービスロール)] を選択します。[Role ARN] で、サービスロールを選択します。

    注記

    コンソールでは、ビルドプロジェクトの作成時や更新時に CodeBuild サービスロールも作成できます。デフォルトでは、ロールはそのビルドプロジェクトでのみ使用できます。コンソールでは、このサービスロールを別のビルドプロジェクトと関連付けると、この別のビルドプロジェクトで使用できるようにロールが更新されます。サービスロールは最大 10 個のビルドプロジェクトで使用できます。

  8. [Buildspec] で、次のいずれかを行います。

    • [Use a buildspec file] (ビルド仕様ファイルの使用) を選択して、ソースコードのルートディレクトリの buildspec.yml を使用します。

    • [ビルドコマンドの挿入] を選択して、コンソールを使用してビルドコマンドを挿入します。

    詳細については、「ビルド仕様 (buildspec) に関するリファレンス」を参照してください。

  9. [アーティファクト] で、[タイプ] として Amazon S3 を選択し、S3 バケットにビルド出力を保存します。

  10. [バケット名] で、ステップ 1 でウェブサイトとして動作するよう設定した S3 バケットの名前を選択します。

  11. [環境] で [ビルドコマンドの挿入] を選択した場合は、[出力ファイル] に、出力バケットに入れるビルドのファイルの場所を入力します。複数の場所がある場合は、カンマを使用して場所ごとに区切ります (例: appspec.yml, target/my-app.jar)。詳細については、「Artifacts reference-key in the buildspec file」を参照してください。

  12. [Disable artifacts encryption (アーティファクトの暗号化を無効化)] を選択します。

  13. [Additional configuration (追加設定)] オプションを展開し、必要に応じてオプションを選択します。

  14. [Create build project (ビルドプロジェクトの作成)] を選択します。ビルドプロジェクトページの [ビルド履歴] で、[ビルドの開始] を選択してビルドを実行します。

  15. (オプション) Amazon S3 デベロッパーガイドの「例: Amazon CloudFront でウェブサイトを高速化」の手順に従います。