AWS CodeStar プロジェクトテンプレート - AWS CodeStar

2024 年 7 月 31 日をもって、Amazon Web Services (AWS) は AWS CodeStar プロジェクトの作成と閲覧のサポートを終了します。2024 年 7 月 31 日以降、AWS CodeStar コンソールにアクセスしたり、新しいプロジェクトを作成したりできなくなります。ただし、AWS CodeStar によって作成された AWS リソース (ソースリポジトリ、パイプライン、ビルドなど) は、この変更の影響を受けず、引き続き機能します。AWS CodeStarこの廃止による接続および AWS CodeStar 通知への影響はありません。

 

作業の追跡、コードの開発、アプリケーションのビルド、テスト、デプロイをご希望の場合、Amazon CodeCatalyst に、合理化された導入プロセスと、ソフトウェアプロジェクトを管理するための追加機能が用意されています。Amazon CodeCatalyst の機能価格について詳しくは、リンク先をご覧ください。

AWS CodeStar プロジェクトテンプレート

AWS CodeStar プロジェクトテンプレートを使用すると、サンプルアプリケーションから開始し、開発プロジェクトをサポートするために作成された AWS リソースを使用してアプリケーションをデプロイすることができます。AWS CodeStar プロジェクトテンプレートを選択すると、アプリケーションタイプ、プログラミング言語、コンピューティングプラットフォームがプロビジョニングされます。ウェブアプリケーション、ウェブサービス、Alexa スキル、および静的ウェブページを使用してプロジェクトを作成したら、サンプルアプリケーションを独自のものに置き換えることができます。

AWS CodeStar でプロジェクトを作成したら、アプリケーションの配信をサポートする AWS リソースを変更できます。AWS CodeStar は AWS CloudFormation と提携して、コードを使用し、クラウド上のサポートサービスおよびサーバー/サーバーレスプラットフォームを作成できます。AWS CloudFormation では、テキストファイルでインフラストラクチャ全体をモデリングできます。

AWS CodeStar プロジェクトファイルとリソース

AWS CodeStar プロジェクトは、コードをデプロイするために作成されたソースコードとリソースの組み合わせです。コードのビルド、リリース、デプロイに役立つリソースのコレクションは、[Toolchain resources] (ツールチェーンリソース) と呼ばれます。プロジェクト作成時、AWS CloudFormation テンプレートを使用して、継続的な統合/継続的デプロイメント (CI/CD) パイプラインのツールチェーンリソースをプロビジョンします。

プロジェクトは、AWS CodeStar を使用して、AWS のリソース作成の経験に応じて、2 種類の方法で作成できます。

  • コンソールを使用してプロジェクトを作成すると、AWS CodeStar はリポジトリを含むツールチェーンリソースを作成し、サンプルアプリケーションコードやプロジェクトファイルをリポジトリに取り込みます。コンソールを使用して、事前設定済みのプロジェクトオプションのセットに基づき、サンプルプロジェクトをすばやくセットアップできます。

  • CLI を使用してプロジェクトを作成する場合は、ツールチェーンリソースを作成する AWS CloudFormation テンプレートとアプリケーションソースコードを指定します。CLI を使用して、AWS CodeStar がテンプレートからプロジェクトを作成し、サンプルコードでリポジトリを作成できるようにします。

AWS CodeStar プロジェクトは一元管理できます。コンソールで [Create project] (プロジェクトの作成) ウィザードを使用して、サンプルプロジェクトをセットアップします。チームのアクセス許可とリソースを管理するコラボレーションプラットフォームとして使用できます。詳細については、「AWS CodeStar とは?」を参照してください。コンソールを使用してプロジェクトを作成すると、ソースコードがサンプルコードとして提供され、CI/CD ツールチェーンリソースが作成されます。

コンソールでプロジェクトを作成すると、AWS CodeStar によって以下のリソースがプロビジョニングされます。

  • GitHub または CodeCommit のソースコードリポジトリ。

  • ファイルとディレクトリの詳細を提供する README.md ファイル (プロジェクトリポジトリ内)。

  • アプリケーションのランタイムスタックの定義を保存する template.yml ファイル (プロジェクトリポジトリ内)。このファイルを使用して、ツールチェーンリソースではないプロジェクトリソース (例:通知、データベースサポート、モニタリング、およびトレースに使用される AWS リソース) を追加または変更します。

  • パイプラインに関連して作成された AWS サービスおよびリソース (例: Amazon S3 アーティファクトバケット、Amazon CloudWatch Events、および関連するサービスロール)。

  • 完全なソースコードとパブリック HTTP エンドポイントを含む実動するサンプルアプリケーション。

  • AWS CodeStar プロジェクトテンプレートタイプに基づく AWS コンピューティングリソース:

    • Lambda 関数。

    • Amazon EC2 インスタンス。

    • AWS Elastic Beanstalk 環境。

  • 2018 年 12 月 6 日 (PDT) スタート:

    • アクセス許可の境界 (プロジェクトリソースへのアクセスを管理するための特殊な IAM ポリシー)。アクセス許可の境界は、デフォルトでサンプルプロジェクトのロールに添付されています。詳細については、「ワーカーロールの IAM アクセス許可の境界」を参照してください。

    • AWS CloudFormation を使用してプロジェクトリソースを作成するための AWS CloudFormation IAM ロール (IAM ロールなど、AWS CloudFormation でサポートされているすべてのリソースのアクセス許可を含む)。

    • ツールチェーンの IAM ロール。

    • アプリケーションスタックで定義された Lambda の実行ロール (変更可能)。

  • 2018 年 12 月 6 日 (PDT) 以前:

    • 限定された一部の AWS CloudFormation リソースをサポートする、プロジェクトリソースを作成するための AWS CloudFormation IAM ロール。

    • CodePipeline リソースを作成するための IAM ロール。

    • CodeBuild リソースを作成するための IAM ロール。

    • プロジェクトタイプで該当する場合、CodeDeploy リソースを作成するための IAM ロール。

    • プロジェクトタイプで該当する場合、Amazon EC2 ウェブアプリケーションを作成するための IAM ロール。

    • CloudWatch Events リソースを作成するための IAM ロール。

    • 動的に変更され、リソースの一部を含めるための Lambda の実行ロール。

このプロジェクトには、ステータスを示す詳細ページがあり、チーム管理へのリンク、IDE またはリポジトリの設定手順へのリンク、リポジトリ内のソースコード変更のコミット履歴が含まれています。また、Jira などの外部の課題追跡ツールに接続するためのツールを選択することもできます。

はじめに: プロジェクトテンプレートを選択する

コンソールで AWS CodeStar プロジェクトを選択すると、事前に設定されたオプションのセットからサンプルコードとリソースを選択して、すぐに始めることができます。これらのオプションは、[Project templates] (プロジェクトテンプレート) と呼ばれます。AWS CodeStar プロジェクトテンプレートはそれぞれ、プログラミング言語、アプリケーションタイプ、およびコンピューティングプラットフォームで構成されています。プロジェクトテンプレートは、選択した組み合わせによって決まります。

テンプレートコンピューティングプラットフォームを選択する

テンプレートごとに、次のコンピューティングプラットフォームタイプのいずれかを設定します。

  • AWS Elastic Beanstalk プロジェクトを選択すると、クラウド内の Amazon Elastic Compute Cloud インスタンスの AWS Elastic Beanstalk 環境にデプロイします。

  • Amazon EC2 プロジェクトを選択すると、AWS CodeStar によって、クラウド上のアプリケーションをホストするための Linux EC2 インスタンスが作成されます。プロジェクトチームメンバーはインスタンスにアクセスでき、チームは指定されたキーペアを使用して Amazon EC2 インスタンスに SSH 接続します。AWS CodeStar には、チームメンバーのアクセス許可を使用してキーペア接続を管理するマネージド SSH もあります。

  • AWS Lambda を選択すると、AWS CodeStar は、管理するためのインスタンスやサーバーなしで、Amazon API Gateway 経由でアクセスするサーバーレス環境を作成します。

テンプレートアプリケーションタイプを選択する

テンプレートごとに、次のアプリケーションタイプのいずれかを設定します:

  • ウェブサービス

    ウェブサービスは、API を呼び出すなど、バックグラウンドで実行されるタスクに使用されます。AWS CodeStar がサンプルウェブサービスプロジェクトを作成したら、エンドポイント URL を選択して Hello World 出力を表示できますが、このアプリケーションタイプの主な用途はユーザーインターフェイス (UI) ではありません。このカテゴリの AWS CodeStar プロジェクトテンプレートは、Ruby、Java、ASP.NET、PHP、Node.js などの開発をサポートしています。

  • ウェブアプリケーション

    ウェブアプリケーションには、UI が搭載されています。AWS CodeStar がサンプルウェブアプリケーションプロジェクトを作成したら、エンドポイント URL を選択してインタラクティブウェブアプリケーションを表示できます。このカテゴリの AWS CodeStar プロジェクトテンプレートは、Ruby、Java、ASP.NET、PHP、Node.js などの開発をサポートしています。

  • 静的ウェブページ

    HTML ウェブサイトのプロジェクトが必要な場合はこのテンプレートを選択します。このカテゴリの AWS CodeStar プロジェクトテンプレートは、HTML5 の開発をサポートします。

  • Alexa スキル

    このテンプレートを選択するのは、Alexa スキルのプロジェクトで AWS Lambda 関数を使用する場合のみです。スキルプロジェクトを作成すると、AWS CodeStar によってサービスエンドポイントとして使用できる Amazon リソースネーム (ARN) が返されます。詳細については、「カスタムスキルを AWS Lambda 関数としてホストする」 を参照してください。

    注記

    Alexa スキルの Lambda 関数は、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)、およびアジアパシフィック (東京) の各リージョンでのみサポートされています。

  • Config ルール

    アカウントの AWS リソース全体でルールを自動化する AWS Config ルールのプロジェクトが必要な場合は、このテンプレートを選択します。この関数は、ルールのサービスエンドポイントとして使用できる ARN を返します。

テンプレートのプログラミング言語の選択

プロジェクトテンプレートを選択する際、Ruby、Java、ASP.NET、PHP、Node.js などのプログラミング言語を選択します。

AWS CodeStar プロジェクトを変更する方法

プロジェクトを更新するには、以下を更新します:

  • アプリケーションのサンプルコードおよびプログラミング言語リソース。

  • アプリケーションが保存およびデプロイされるインフラストラクチャを構成するリソース (オペレーティングシステム、サポートアプリケーションとサービス、デプロイパラメータ、クラウドコンピューティングプラットフォーム)。アプリケーションリソースは、template.yml ファイルで変更します。これは、アプリケーションのランタイム環境をモデリングする AWS CloudFormation ファイルです。

注記

Alexa スキル AWS CodeStar プロジェクトを使用する場合は、AWS CodeStar ソースリポジトリ (CodeCommit または GitHub) の外部でスキルに変更を加えることはできません。Alexa デベロッパーポータルでスキルを編集すると、その変更がソースリポジトリに表示されない場合があり、2 つのバージョンは同期しません。

アプリケーションソースコードの変更と変更のプッシュ

サンプルソースコード、スクリプト、および他のアプリケーションソースファイルを変更するには、ソースリポジトリのファイルを次のように編集します:

  • CodeCommit または GitHub の編集モードを使用する。

  • IDE で、プロジェクトを開く (例:AWS Cloud9)。

  • リポジトリのクローンをローカルに作成後、変更をコミットおよびプッシュします。詳細については、ステップ 4: 変更をコミットするを参照してください。

Template.yml ファイルを使用してアプリケーションリソースを変更する

インフラストラクチャリソースを手動で変更するのではなく、AWS CloudFormation を使用して、アプリケーションのランタイムリソースをモデリングおよびデプロイします。

ランタイムスタックのアプリケーションリソース (例: Lambda 関数) を変更または追加するには、プロジェクトリポジトリの template.yml ファイルを編集します。AWS CloudFormation リソースとして利用可能なリソースを追加することができます。

AWS Lambda 関数のコードまたは設定を変更するには、「リソースをプロジェクトに追加する」を参照してください。

アプリケーションリソースである AWS CloudFormation リソースのタイプを追加するには、プロジェクトのリポジトリの template.yml ファイルを変更します。アプリケーションリソースを template.yml ファイルの Resources セクションに追加すると、AWS CloudFormation および AWS CodeStar によってリソースが作成されます。AWS CloudFormation リソースとその必須プロパティのリストについては、「AWS リソースタイプのリファレンス」を参照してください。詳細については、「ステップ 1: IAM で CloudFormation ワーカーロールを編集する」のこの例を参照してください。

AWS CodeStar では、アプリケーションのランタイム環境を構成およびモデリングすることによって、ベストプラクティスを実装できます。

アプリケーションリソースを変更するアクセス許可を管理する方法

AWS CloudFormation を使用してランタイムアプリケーションリソース (例: Lambda 関数) を追加すると、すでに付与されているアクセス許可を AWS CloudFormation ワーカーロールで使用できます。一部のランタイムアプリケーションリソースでは、template.yml ファイルを編集する前に、AWS CloudFormation ワーカーロールのアクセス許可を手動で調整する必要があります。

AWS CloudFormation ワーカーロールのアクセス許可の変更例については、「ステップ 5: インラインポリシーでリソースのアクセス許可を追加する」を参照してください。