ヤマムギ

growing hard days.

*

Amazon ECS Workshop for AWS Summit Online

      2021/10/06

INTRODUCTION TO AMAZON ECSに手順や必要なリンクがあります。

完成時の全体像です。

CloudFormationスタックの作成

VPC、NAT Gateway、RDS、ALB、Cloud9をCloudFormationスタックで一気に作成します。

リンク先のテンプレートをローカルにダウンロードして、スタック作成時にアップロードしました。
リージョンはバージニア北部でIAMユーザーはAdministratorAccessポリシーをアタッチしています。

スタック名は任意に設定しました。
データベースのユーザーとパスワードをパラメータで入力しました。
これも任意に設定しました。

ECRにDockerイメージを登録

ECRにリポジトリをsimplechatという名前で作成しました。

Cloud9がCFnスタックでできていたので、接続して、Cloud9のターミナルで操作しました。

ECRリポジトリのプッシュコマンドどおりにCloud9で実行していきました。

コンテナイメージの登録が完了しました。

ECSクラスターの作成

手順どおりFargateを選択しました。
クラスター名をsimplechatとして作成しました。

タスク定義の作成

079700436326.dkr.ecr.us-east-1.amazonaws.com/simplechat
simplechat-ecs-db.c3gngubysyz7.us-east-1.rds.amazonaws.com

ECRのURIとRDSのエンドポイントをコピーしておきました。

起動タイプ互換性でFARGATEを選択しました。
タスク実行ロールのecsTaskExecutionRoleは別のハンズオンで作っていたのでそれを再利用しました。

タスクサイズは、メモリ0.5GB、CPU 0.25vCPUにしました。

[コンテナの追加]ボタンから、コンテナ名をsimplechat_container、イメージにECRのURI、ポートマッピングを80にしました。

環境変数を設定しました。
DB_HOSTにデータベースエンドポイント、DB_USERとDB_PASSにCloudFormationスタックのパラメータで指定したデータベースマスターユーザー名とパスワードを設定しました。

サービスの作成

起動タイプはFARGATE、クラスターを選択して、サービス名にsimplechatを入力、タスクの数を1にして次のステップに進みました。

ワークショップ用のVPCとプライベートサブネット1,2を選択しました。
セキュリティグループはロードバランサーから80ポートに対してインバウンド許可されているWeb用のセキュリティグループを選択しました。
パブリックIPはDISABLEDにしました。

Application Load Balancerを選択して、リスナー設定をしました。

RUNNINGになりました。

アプリケーションの更新

タイトルをYamamugiChatに変えてみました。

ECRのプッシュコマンドをもう一度ターミナルで4つとも実行してイメージを更新しました。

手順とちょっと変えて新しいリビジョンを作成してみました。

内容は変えずに作成しました。

サービスを選択して、[更新]ボタンを押下しました。

リビジョン2を選択して、[新しいデプロイの強制]をチェックしまして、更新しました。

デプロイが始まりました。

デプロイが完了して更新されたことが確認できました。

ECRイメージ、クラスター、タスク定義、サービスと、ECSの各コンポーネントがさくっと確認できるすごくいいワークショップでした。


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

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

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

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS ,

  関連記事

Backlogの実績工数をAmazon QuickSightでの可視化 – 仕組み編

Backlogの実績工数をAmazon QuickSightで可視化してわかった …

AWS Systems Manager Run CommandでEC2 Linuxのユーザーとカレントディレクトリを確認

AWS Systems Manager Run CommandからEC2 Lin …

S3インベントリ設定でインベントリファイルの作成を設定

インベントリレポートファイルはオブジェクトの一覧情報です。 日次、週次で定期作成 …

「Getting started with AWS Glue DataBrew」をやってみました

AWS Glue DataBrewを体験してみたくて、開発者ガイドのチュートリア …

Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する

Microsoft Teamsの検証を始めましたので、Slackで自動化している …

ECR(Amazon Elastic Container Registry)にコンテナイメージをアップロードする

「Pandocサーバーのコンテナイメージを作成する」で作成したイメージをAWS …

S3オブジェクトへのリクエストをCloudTrail, Athenaで識別する(パーティショニング)

Amazon S3オブエジェクトへのリクエストをCloudTrail, Athe …

AWS Systems Manager AutomationでEC2の自動停止

Systems Manager Automationがない時代に、Lambdaを …

T2.microからT3.nanoに変更(メモリエラーも対応)

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nan …

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

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