タダです.
「AWS Proton」が GA したので,使ってみたいと思いサンプルプロジェクトを使ってみてこの記事に所感などまとめていきます.
AWS announces the general availability of AWS Proton
— What’s New on AWS (@awswhatsnew) 2021年6月9日
Today, AWS announces the general availability of AWS Proton, the first fully managed delivery service for container and serverless applications. It is designed to provide platform teams the manag... https://t.co/tSCcSyOa4i
AWS Proton とは
「AWS Proton」はコンテナやサーバーレスアプリケーションのためのフルマネージド型アプリケーションデプロイサービスです.特徴としてインフラを管理するチーム(プラットフォーム)と開発チームとの協調のために効きそうなサービスなのかと想像します.プラットフォームを管理するチームは Environment Template
で共有リソースを作りと Service Template
でインフラ,監視,CI/CD を定義するテンプレートを作ります.開発チームは Service Template
を使ってデプロイ をするような形です.
プラットフォームチームは AWS Proton を使用して、コンピューティング、ネットワーキング、コードパイプライン、セキュリティ、監視などのサービスをプロビジョン、デプロイ、監視に必要となるすべてを定義する「スタック」を作成します。デベロッパーは AWS Proton コンソールにログインし、発行済みの AWS Proton スタックを使用してインフラストラクチャのプロビジョニングを自動化し、アプリケーションコードをすばやくデプロイします。
AWS Proton のサービスページより引用
料金
「AWS Proton」を使う時は料金かかりません.
利用リージョン
記事執筆時点(2021/06/13)の利用可能なリージョンとしては,バージニア/オハイオ/オレゴン/東京/アイルランドで利用できる状況です.
AWS Proton のサンプルを動かしてみる
ドキュメントに沿ってマネジメントコンソールからサンプルを試してみます.
1. Environment Template を作る
まず,Environment Template
を作ります.ECS Fargate のテンプレートが用意されているので選択し,テンプレート名とテンプレートの表示名を設定し,他はデフォルト設定で進みます.
テンプレートができたらテンプレートを公開する必要があるので,公開します.公開できると Published
になります.
2. Service Template を作る
次に,Service Template
を作ります.Environment Template
同様に ECS Fargate のテンプレートがあるので選んで,テンプレート名とテンプレートの表示名を設定し, 互換性のあるテンプレートして項番1で作ったEnvironment Template
の表示名を選び,他はデフォルト設定で進みます.
テンプレートができたらテンプレートを公開する必要があるので,公開します.公開できると Published
になります.
3. Environment を作る
Environment Template
ができたので,Environment
を作っていきます.ドキュメントの記載に沿って設定していきます.
Environment
の設定が完了すると CloudFormation が走り,VPC/Subnet/Internet Gateway/Security Group/ECS Cluster/ECS Task Execution Role が出来上がります.
4. Service を作る
次はService Template
を使ってService
を作っていきます.ドキュメントの記載に沿って設定していきます.リポジトリへの接続部分はサンプルリポジトリを fork して設定しています.
Service
の設定が完了すると,ECS のサービスや ALB リソースの他に CodePipeline/CodeBuild といった CI/CD リソースが作られていきました.
ALB の DNS 名にアクセスすると Nginx のページが出るところまで確認できました.
一通りの確認が終わったら,全てのリソースを削除しておきましょう.
まとめ
「AWS Proton」のサンプルを触ってみることでどんなサービスなのかを理解してみることをやってみました.正直まだまだわからないところが多いのでサンプルプロジェクトを読み解いて少しずつ理解していければと思うのとマルチアカウントのサポートも入っているため理解して業務でも組み込める場所があったら検討していきたいです.
今回のリリースの一環として、このサービスに追加される 2 つの新機能をお知らせします。1 つ目として、AWS Proton は、マルチアカウントインフラストラクチャをサポートするようになりました。この新機能により、プラットフォームオペレーターは AWS Proton を使用して、複数の AWS アカウント間でアーキテクチャを安全に設定および管理できます。2 つ目の機能リリースは、AWS Proton API の IAM 条件コンテキストキーのサポートです。この追加の管理レイヤーにより、オペレーターは、テンプレートの特性に基づいてサービスを作成できるデベロッパーを指定できます。