ヤマムギ

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

  関連記事

AMIをOrganizations組織で共有しました

よく使うAMIをOrganizations組織内のリソースパブリッシュ用のアカウ …

共有AMIのコピー時にエラー「You do not have permission to access the storage of this ami」

他アカウントから共有されたAMIをコピーする際に、「You do not hav …

Amazon VPCにオンプレミス検証環境想定プライベートDNSサーバー(BIND)をEC2で起動する

オンプレミス想定の検証で使うために、Amazon VPCにプライベート向けDNS …

Kinesis Data Analyticsの検索結果をKinesis Data FirehoseからS3バケットに保存する

Kinesis Data AnalyticsをKinesis Data Stre …

よくあるサーバーレスアーキテクチャで質問フォーム

この記事はServerless2 Advent Calendar 2018に参加 …

AWSのアカウントを新規作成と、最低限やっておいた方がいいMFAの設定

AWSのアカウントを新規作成する手順を書き出しておきます。 ※2017年8月6日 …

ALBにWAFを関連付けて特定のヘッダー以外はブロックする

おかげさまで、ブログのアクセスも増えてきて、t3.nano EC2インスタンス単 …

Amazon CloudWatch クロスリージョンクロスアカウントダッシュボードを作成

本ブログのCloudFrontとWAFのアカウントと、EC2、RDS、S3などオ …

GoogleForm,GASからAPI Gateway, Lambdaで入力情報をDynamoDBに格納する

vol.26 AWS認定試験テキスト認定クラウドプラクティショナーのデモ(Dyn …

Well-Architected Tool レンズヴァージョンアップ

当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …