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のターミナルで操作しました。
1 2 3 4 |
$ wget https://ecs-for-aws-summit-online.workshop.aws/simplechat_app.tar.gz $ tar zxvf simplechat_app.tar.gz $ cd simplechat_ecs_app/ |
ECRリポジトリのプッシュコマンドどおりにCloud9で実行していきました。
1 2 3 4 5 |
$ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com $ docker build -t simplechat . $ docker tag simplechat:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest $ docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest |
コンテナイメージの登録が完了しました。
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つとも実行してイメージを更新しました。
1 2 3 4 5 |
$ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com $ docker build -t simplechat . $ docker tag simplechat:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest $ docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/simplechat:latest |
手順とちょっと変えて新しいリビジョンを作成してみました。
内容は変えずに作成しました。
サービスを選択して、[更新]ボタンを押下しました。
リビジョン2を選択して、[新しいデプロイの強制]をチェックしまして、更新しました。
デプロイが始まりました。
デプロイが完了して更新されたことが確認できました。
ECRイメージ、クラスター、タスク定義、サービスと、ECSの各コンポーネントがさくっと確認できるすごくいいワークショップでした。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

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

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

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

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


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
ブログのアーキテクチャをコストベースで見直しました
当ブログはAWSで構築しています。 アーキテクチャをコストを最重視して見直しまし …
-
-
AWS Transit GatewayのVPN接続
上記のような構成で、オンプレミス側は東京リージョンのVPCでVyOSを起動して接 …
-
-
AWSアカウント ルートユーザーのMFAが使えなくなったので復旧
AWSのルートユーザーどころか、MFAが使えるログインすべてが使えなくなって焦り …
-
-
WordPress W3 Total Cache のDatabaseCacheをAmazon ElastiCacheのmemcachedに格納する
このブログのアーキテクチャは現在こちらです。 データベースは、Amazon Au …
-
-
AWS CloudFormationでAmazon DynamoDBテーブルを作ってアイテムを追加する
デモ用にDynamoDBテーブルを作って消して、ということをたまにするので、Cl …
-
-
「Getting started with AWS Glue DataBrew」をやってみました
AWS Glue DataBrewを体験してみたくて、開発者ガイドのチュートリア …
-
-
AWSのアカウントを新規作成と、最低限やっておいた方がいいMFAの設定
AWSのアカウントを新規作成する手順を書き出しておきます。 ※2017年8月6日 …
-
-
JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE + 絶対圧センサーで遊ぼう!」ワークショップにいってきた
JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE …
-
-
Going Serverless with AWS(AWS Summit Tokyo 2017)を聞いてきました
AWS Summit Tokyo 2017でセッション「Going Server …
-
-
サイトのHTTPステータスを5分おきにチェックして200以外ならSlackに通知する
すいません。ここ最近出費が重なりまして、某監視サービスのプランを有料プランからF …