ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS ,

ad

ad

  関連記事

Amazon Location Service入門ワークショップ-ジオコーディング

ジオコーディングにより住所を緯度経度に変換したり、逆に緯度経度から住所を求めたり …

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

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

このブログをAWS大阪リージョンへ移行しました

大阪リージョン爆誕!! 朝起きて寝ぼけながらリージョンを見てると。 「大阪リージ …

EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました

EC2 Global Viewという機能がリリースされました。 EC2コンソール …

AWS Lambda(Python)からAmazon Connectで電話を発信する

自動で電話を発信する必要がありまして、電話発信APIを開発することになりましたの …

AWS CloudWatch LogsエージェントでAmazon EC2上のNginxのaccess.log , error.log , php-fpm error.log , Linuxのmessages , secureログを収集する

参考ページ クイックスタート: 実行中の EC2 インスタンスに CloudWa …

DynamoDBテーブル項目をS3にエクスポート

DynamoDBテーブルを一時テーブルとして使っていて、毎回使い捨てしてます。 …

AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night

AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …

EC2スポットインスタンスの中断通知を受ける

オートスケーリンググループでEC2インスタンスをスポットインスタンスで使用してい …

WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する

このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …