ヤマムギ

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 S3アクセスポイント経由からアクション可能なポリシー

S3アクセスポイントを使うことで、複雑で長いバケットポリシーを避け、アクセスポイ …

S3バケットのリクエスタ支払い

S3バケットのリクエスタ支払いを試しました。 バケットの設定 検証用のS3バケッ …

[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました

Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …

Amazon Linux2のCloud9でPython CDKのモジュールインストール

AMIがCloud9AmazonLinux2-2021-02-02T16-48の …

AWS CLIを使用せずにCodeCommitへSSHユーザーで接続する

AWS CLIやアクセスキーID、シークレットアクセスキーなどを開発環境にセット …

AWS Systems Managerパラメータストアで「Parameter name must be a fully qualified name.」

パラメータストアでパラメータ階層を作成しようとして、パラメータ名に例えば「wor …

EC2 Linux ユーザーデータ実行ユーザーとカレントディレクトリの確認

きっと、rootなんだろうなあと認識してたのですが、自分の目で確認したことはなか …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

AWS Client VPNのクライアント接続ハンドラを試してみました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …

PyCharmにAWS Tool kitをインストールしてサンプルのLambda関数をデプロイして実行しました

この記事はJetBrainsIDE Advent Calendar 2018に参 …