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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効期限は短くできるのでしょうか
「EC2インスタンスプロファイルによってAssumeRoleされた認証情報の有効 …
-
-
[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました
Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …
-
-
CloudFrontのVPCオリジンを使用してApplication Load Balancerをプライベートサブネットで起動する
このブログのApplication Load Balancerはパブリックサブネ …
-
-
スポットインスタンスの削減額情報を見ました
なんだこれ?と思って、検索してみたら、2018年11月からあったのですね。 Am …
-
-
CloudFormationスタックポリシーでスタック更新を防止する
CloudFormationのスタックにスタックポリシーを設定することによって、 …
-
-
AWS Service CatalogポートフォリオをOrganizations組織で共有する
AWS Service Catalogチュートリアルで作成したポートフォリオのO …
-
-
AWS LambdaでS3 Select
RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …
-
-
AWS Organizationsのルートユーザー管理(Root user management)でメンバーアカウントのルートユーザー認証を無効にしました
2024年11月発表のAWS Organizations を使用するお客様のため …
-
-
Amazon Glacierでボールトロックポリシーの作成開始をしてみました
Glacierを単体で使用することもそうそうないので、確認しました。 まずボール …
-
-
AWSアカウントでルートユーザーが使用されたときにTeamsへ投稿する
Organizations組織内のアカウントのいずれかでルートユーザーが使用され …




























