AWSは最近、AWS Protonに対する2つの新たな追加を発表した。AWS Protonはフルマネージドのアプリケーション配信サービスである。1つ目の機能では、AWS Protonを介したインフラストラクチャの定義とプロビジョニングが可能になる。2つ目の機能では、Gitリポジトリを使ってProtonテンプレートを管理できる。
AWS Protonは、コンテナとサーバレスアプリケーション向けのマネージドデリバリーサービスである。これにより、インフラストラクチャチームは、環境とサービステンプレートを視覚化して管理できる。そして、開発者はそれらのテンプレートを選択して、デプロイをセルフサービスできる。
このリリースでは、CloudFormationとTerraformの両方を、AWS Protonの裏にあるインフラストラクチャ・アズ・コードエンジンとして使用できるようになった。サービスと環境のテンプレートは、Terraformを使って定義されたインフラストラクチャをベースとすることができる。プルリクエストアプローチを通して、インフラストラクチャをプロビジョニングおよび更新するためにTerraformを使うことができる。
Terraform言語のHCLで記述されたIaCテンプレートを使うと、Terraformオープンソースを使ってインフラストラクチャをプロビジョニングできる。次に、AWS ProtonはTerraformモジュールをレンダリングし、変更を計画して適用できるようにインフラストラクチャリポジトリにプルリクエストを返す。
AWS Protonはインフラストラクチャのプロビジョニングを管理していないため、Protonにデプロイステータスを通知するステップが必要である。現在サポートされている唯一の手段は、GitHubにリンクされたCodeStar接続を通すことである。現時点では、プルリクエストによるプロビジョニングは機能プレビュー版として考えられており、TerraformベースのProtonテンプレートでのみ使用できる。
CloudFormationは、標準プロビジョニングを使ってAWS Protonをプロビジョニングするために引き続き使うことができる。2つのプロビジョニング方法を組み合わせることはできないことに注意してください。たとえば、プルリクエストでプロビジョニングされた環境に標準のプロビジョニングされたサービスをデプロイすることは許可されない。
2番目の機能では、AWS ProtonテンプレートをGitリポジトリから直接プッシュ、更新、公開できる。サービスあるいは環境のテンプレートを作成するときに、テンプレートを含むリモートGitリポジトリを指定できるようになった。
標準プロビジョニングを通してCloudFormationテンプレートを使う場合、AWS Protonにより、それらのテンプレートは自動的に同期され、コンソールを介して利用できるようになる。Gitのテンプレートファイルに変更が加えられると、AWS Protonが必要な更新を行う。
AWS Protonテンプレートバンドルは、CloudFormationまたはTerraformのいずれかで記述できる。ただし、両方で記述することはできない。このバンドルには、IaCファイルを一覧化するマニフェストYAMLファイルなどのIaCファイルが含まれる。Terraformを使う場合、現在、プルリクエストによるプロビジョニングが上に記載する通り、唯一のオプションである。
CloudFormationを使うと、以下に示すように、環境テンプレートのマニフェストに1つのファイルのみが一覧化される。
infrastructure:
templates:
- file: "cloudformation.yaml"
rendering_engine: jinja
template_language: cloudformation
サービステンプレートバンドルを定義する場合、1つのファイルでサービスインスタンス定義を定義し、2番目のオプションファイルでパイプライン定義を記述できる。
Terraformを使うと、単一のファイルに名前を付けるか、ワイルドカード*.tfを使って、ディレクトリ内の各ファイルを一覧化できる。
infrastructure:
templates:
- file: "*.tf"
rendering_engine: hcl
template_language: terraform
この新機能により、既存のワークフローを活用して、GitHubで利用できるような、変更の承認や追跡ができる。
AWS Protonは、米国東部(バージニア州北部)、米国東部(オハイオ州)、米国西部(オレゴン)、ヨーロッパ(アイルランド)、アジア太平洋(東京)の各リージョンで利用できる。AWS Protonを使うための追加料金はない。アプリケーションを保存し、実行するために作成されたリソースに対して発生した料金のみが発生する。詳細については、製品のランディングページをご覧ください。