ヤマムギ

growing hard days.

*

AWS Protonの管理者ガイドとユーザーガイドのチュートリアル

   

AWS Proton管理者ガイドのAWS Management Console の開始方法を見ながら試してみました。
途中からAWS ProtonユーザーガイドのAWS Management Console の開始方法も参照する必要がありました。

ちなみに私は、初めて触るサービスはマネジメントコンソールで触ると概要を理解しやすい派です。

環境テンプレートを作成する

Protonのテンプレートメニューには、環境テンプレートとサービステンプレートがあります。

まず、環境テンプレートを作成します。

デフォルトのサンプルテンプレートバンドルソースで、Fargateを選択しました。
VPC、ECSクラスターなども含むようです。
Lambdaを選択したらDynamoDBテーブル、S3バケットが含まれるようです。

テンプレート名、表示名、タグで任意の設定をして、[環境テンプレートを作成]ボタンを押下しました。

作成されたテンプレートのバージョン1.0を選択して、[公開]ボタンを押下しました。

ステータスがPublishedになりました。

サービステンプレートを作成する

次にサービステンプレートを選択して、[サービステンプレートを作成]ボタンを押下しました。

デフォルトのサンプルテンプレートバンドルで、Fargateを選択しました。

テンプレート名、表示名、タグに任意の名前を設定して、互換性のある環境テンプレートに先に作成しておいた、My Fargate Environmentを選択しました。

パイプラインオプションにはチェックが入っている状態でした。
[サービステンプレートを作成]ボタンを押下しました。

作成されたテンプレートのバージョン1.0を選択して、[公開]ボタンを押下しました。

ステータスがPublishedになりました。

ここまでの手順で環境テンプレートとサービステンプレートが作成されて、発行された状態になりました。

環境を作成する

環境メニューで、[環境を作成する]ボタンを押下しました。

作成して発行した環境テンプレートを選択して、[設定]ボタンを押下しました。

AWSマネージド型プロビジョニング、このAWSアカウントを選択して、環境名を任意に入力しました。

環境ロールは、新しいサービスロールを作成しました。

カスタム設定では、VPCとサブネットのCIDRが入力できます。
デフォルトのままにしました。

以上の設定で環境を作成しました。

環境のデプロイがIn progressになっています。
CloudFormationを見に行くと、VPCとECSを含むスタックが作成中になっていました。

少しすると、スタックが作成完了し、環境のステータスはSucceededになりました。

リポジトリ接続を作成する

Githubリポジトリのaws-samples/aws-proton-sample-fargate-serviceをフォークしました。

デベロッパー用ツール(Codeサービスのコンソール)の[設定]-[接続]で[接続を作成]ボタンを押下しました。

Githubを選択して[Githubに接続する]ボタンを押下しました。

GithubにリダイレクトされるのでGithubにサインインして接続を作成しました。

Githubアプリは[新しいアプリをインストールする]ボタンを押下してインストールしました。
最後に[接続]ボタンを押下しました。

Protonアカウント設定

アカウント設定で、CI/CDパイプラインリポジトリにリポジトリ接続で作成した接続で、
任意のリポジトリを指定しました。

CI/CDパイプラインロールは新たに作成しました。

このアカウント設定のCI/CDパイプラインの設定をしておかないと、サービス作成時に、
「Validation exception
Operation cannot be run until pipeline roles have been configured.」
というエラーとなります。

サービスを作成してアプリケーションをデプロイする

このあたりからはドキュメントもユーザーガイドに変わりますので、開発者が操作する想定で進めてみます。

メニューから[サービス]を選択して、[サービスを選択]ボタンを押下しました。

先に作成済み、発行済みのサービステンプレートを選択して[設定]ボタンを押下しました。

任意のサービス名を入力して、サービスリポジトリのCodeStar接続で、先ほど作成したGithubへの接続を選択して、フォークしておいたサンプルリポジトリ、ブランチはmainを選択しました。
[次へ]を押下しました。

カスタム設定では、サービスインスタンスの名前とenvironmentに作成済みの環境を指定しました。
他はパイプライン入力セクションもすべてデフォルトのままにしました。

サービスが作成されてデプロイ中になりました。

ProtonからCloudFormationスタックが作成されて、必要なCodeサービスのリソースが順次作成されていました。

CodePipelineが実行されて、指定したGithubリポジトリをソースにして、CodeBuildが実行されてCodeDeployによってデプロイされていました。

デプロイが完了すると、サービスインスタンスの出力にServiceEndpoint URLが表示されてブラウザからアクセスするとProtonのアイコンが表示されました。

index.htmlを更新する

Githubでフォークしたmainブランチのindex.htmlを変更して保存してみました。

Protonのサービスのパイプラインの実行ステータスがIn progressになりました。
CodePipelineが再実行されています。

テキストを追加しただけなのでわかり辛いですが、デプロイされて反映されていました。

開発者はAWSのネットワーク環境やECSなどのリソース構成を気にすることなく、管理者によって予め用意された環境とサービステンプレートを使用して、コンテナサービスやサーバーレスアーキテクチャのサービスをCI/CDパイプラインでデプロイすることができるサービスがProtonなんですね。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

ad

ad

  関連記事

boto3(Python SDK) s3 get_object でバイト範囲を指定する

S3のGetObjectアクションでバイト範囲を指定することができます。 それに …

RDSインスタンスのストレージをgp2からgp3に変更しました

2022/11/9にRDSでgp3ボリュームが使用できるようになりました。 Am …

Backlogの実績工数をAmazon QuickSightで可視化してわかったこと

今年に入ってから、Backlogで個人タスクを登録しだして、予定工数、実績工数を …

php-fpm で Out of memoryが発生した際にメール通知する(AWS CloudWatch , Amazon SNS)

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …

Amazon LinuxにAlfresco Community Editionをインストールする

ダウンロード準備 Alfresco公式サイトで、「エンタープライズコンテンツ管理 …

AWS OrganizationsでAWSアカウントを25作りたいのでPythonで作った

AWSアカウントを25作る必要があったので、Lambda Python 3.7で …

AWS Storage Gateway File Gateway on EC2インスタンスにmacOSからNFS接続

S3バケットの作成 S3バケットはあらかじめ作成しておきました。 マネジメントコ …

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …

Systems Manager セッションマネージャアクセスのCloud9(SSHなし)

作成画面 いつからできるようになっていたのか気づいてなかったのですが、Cloud …

Amazon Location Service入門ワークショップ-マップの操作

関連記事 Amazon Location Service入門ワークショップの前提 …