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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Lambda(Python3.7)でPandocを実行する際にCSSもLayerから読み込む
Pandocで必要そうなオプションを確認しておく 先日の「AWS Lambda( …
-
-
AWS Organizations組織の移動
AWS Organizations組織の移動 やりたいことは、Organizat …
-
-
AWS CloudFormationデプロイタイムラインビューを確認しました
2024/11/11にタイムラインビューを使用して AWS CloudForma …
-
-
T3.nanoで仮想メモリ割当をユーザーデータで実行する
T3.nanoはメモリがだいたい500MBです。 実行する処理によってはメモリエ …
-
-
ParquetフォーマットのデータにS3 Select SQLを実行する
RDSスナップショットのS3エクスポート結果確認で出力したデータが、S3にPar …
-
-
AWS LambdaでS3 Select
RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …
-
-
AWSアカウント内のLambda関数を削除するLambda(Python)
やりたいこと 特定のAWSアカウントの特定リージョンのAWS Lambda関数を …
-
-
「JAWS-UG DE&I AWS re:Invent 2024 recap サーバーレス ハンズオン」でサポーターしてきました
JAWS-UG DE&I開催の「AWS re:Invent 2024 r …
-
-
IAMアクセス許可の境界でIAMロールの権限を制御する
IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …
-
-
AWS Lambda(Python)からAmazon Connectで電話を発信する
自動で電話を発信する必要がありまして、電話発信APIを開発することになりましたの …




























