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などからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS CodePipeline クロスアカウントアクセスパイプライン
AWS CodePipelineでクロスアカウントアクセスのパイプライン作成手順 …
-
-
AWS Secrets ManagerのローテーションでLambda関数の管理が必要なくなりました
Amazon RDS と AWS Secrets Manager の統合を発表と …
-
-
AWS Organizationsでアカウントを50作って指定したOUに移動するスクリプト
AWS Organizationsでアカウントを50個作る必要がありましたので、 …
-
-
slackのbotにWikipediaを調べてもらう(Python on AWS Lambda + API Gateway)
slackのbotに少しでも役に立ってもらおうと、Wikipediaを調べてもら …
-
-
AWS Client VPNのクライアント接続ハンドラを試してみました
AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …
-
-
AWS Lambda(Python)で生成した文字をAmazon Connectで音声を設定して発信する
Amazon Connectから発信する電話の音声を動的に設定します。 Lamb …
-
-
CodeGuru ProfilerでLambda関数(Python 3.9)のパフォーマンスを確認した
CodeGuru ProfilerでPython 3.9のLambda関数の推奨 …
-
-
Cloud9環境を共有した際の環境認証
Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行す …
-
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
-
Rocket.ChatにAPIで投稿するテスト(Postman)
トレーニング期間中で一時利用するチャットが欲しいなあと思い、Rocket.Cha …




























