ヤマムギ

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なんですね。


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

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

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

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

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

 - AWS ,

ad

ad

  関連記事

ブログ画像のシンガポールリージョンへのレプリケーションはじめました

このブログの画像はS3バケットに保存して、CloudFront経由で配信していま …

ブラウザからJavaScript SDKを使ってAmazon S3 への写真のアップロードチュートリアルをやってみました

ブラウザから Amazon S3 への写真のアップロードをやってみました。 HT …

AWS CloudFormationでAmazon DynamoDBテーブルを作ってアイテムを追加する

デモ用にDynamoDBテーブルを作って消して、ということをたまにするので、Cl …

RDSのポイントインタイムリカバリをしました

WordPressで画像アップロードができなくなった(AWS WAFでブロックし …

Amazon Linux 2023からAWS CLIをアンインストールする

AWS CLIのない検証用EC2 Linuxが欲しかったのでアンインストールしま …

Rocket.ChatからOut Going Webhookを設定してみる

API GatewayとLambda とりあえず、どんなデータが飛んでくるのか見 …

Rocket.ChatにAWS Lambda(Python)から投稿する

Rocket.ChatにAPIで投稿するテスト(Postman)をやってみて、使 …

Cloud9初回アクセス時にCodeCommitのリポジトリを自動でクローンする

CloudFormationからCloud9環境を作成する際に、Reposito …

API GatewayをトリガーにしたときのLambdaリソースベースポリシー

先日、SwaggerからAPI Gatewayを作ったときに、API Gatew …

ヤマムギvol.27 Amazon Route 53プライベートホストゾーンとリゾルバーのデモをしました

今日は『AWS認定資格試験テキスト&問題集AWS認定ソリューションアーキ …