Amazon ECSサービスでAWS App Meshを使用
2023/02/12
AWS App MeshユーザーガイドのAWS App Mesh とAmazon ECS の開始方法をやりました。
目次
メッシュと仮想サービスを作成
[今すぐはじめる]ウィザードからメッシュと仮想サービスを作成しました。
仮想ノードの作成
仮想ノード名、DNSホスト名を入力しました。
リスナーでhttp(画像はhttp2ですが)を選択して80を入力しました。
仮想ルーターとルートの作成
仮想ルーター名とリスナーを設定しました。
ルート設定、ターゲット設定をユーザーガイドの指定通りにしました。
追加リソースの作成
仮想ノードServiceBv2を追加しました。
リスナーはServiceB同様にhttp(画像はhttp2ですが) 80です。
仮想ノードServiceAを追加しました。
サービスバックエンドにserviceb.apps.localを選択しました。
リスナーはほかの仮想ノード同様にhttp(画像はhttp2ですが) 80です。
仮想ルーターserviceBのルートserviceBを編集し、ターゲット設定にserviceBv2を重み25で追加しました。
仮想サービスservicea.apps.localを追加しました。
対象サービス環境の構築
サービスディスカバリを使用してECSサービスの作成の方法で3つのECSサービスを作成しました。
サービスをApp Meshに統合
タスクの新しいリビジョンの作成操作は旧UIのほうがわかりやすかったので旧UIで設定しています。
新UIでもEnvoy用のコンテナを追加すればいいようです。
[App Mesh統合の有効化]を選択しました。
メッシュ名、仮想ノード名などを選択して[適用]を押下しました。
デフォルト設定が提供されたので[確認]を押下して反映しました。
Envoy用のコンテナができたので、一応トラブルシューティング用にCloudWatch Logsを有効にしておきました。
ECSのタスク実行ロールにはAmazonECSTaskExecutionRolePolicyポリシーをアタッチしました。
ECSのタスクロールには各仮想ノードに対してのappmesh:StreamAggregatedResourcesアクションを許可しました。
確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ curl -v http://serviceb.apps.local * Trying 10.0.10.249:80... * Connected to serviceb.apps.local (10.0.10.249) port 80 (#0) > GET / HTTP/1.1 > Host: serviceb.apps.local > User-Agent: curl/7.87.0 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 200 OK < date: Sat, 11 Feb 2023 06:59:57 GMT < server: envoy < last-modified: Fri, 10 Feb 2023 07:53:28 GMT < etag: "132-5f453cafc6007" < accept-ranges: bytes < content-length: 306 < content-type: text/html < x-envoy-upstream-service-time: 0 < <html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>ServiceB</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html> * Connection #0 to host serviceb.apps.local left intact |
同じVPCで起動したEC2インスタンスからserviceb.apps.localなどサービスに対してアクセスすると、server: envoyが表示されて適用されていることが確認できました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

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

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

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

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


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
boto3(Python SDK) s3 get_object でバイト範囲を指定する
S3のGetObjectアクションでバイト範囲を指定することができます。 それに …
-
-
S3バケットにWebフォントをアップロードしてCORSを設定する
Webフォントファイルは、モジワク研究さんのマメロンを使用させていただきました。 …
-
-
AWSアカウント内のCloudWatchアラームを削除する
やりたいこと 特定アカウント特定リージョン内のCloudWatdchアラームを全 …
-
-
AWS Cloud9で環境を共有する
(特にリモート環境では)画面共有をしたり、リポジトリを共有したり、コーディング環 …
-
-
AtomエディタでEC2のファイルを直接編集する
Webページを編集していてEC2のファイルをvimエディタでさわったりしています …
-
-
kintone webhookからAWS API Gateway – Lambdaを実行しレコードの値を渡す
2017年2月のアップデートでkintoneにWebhook機能がリリースされま …
-
-
EC2 プレイスメントグループを試してみました
やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …
-
-
DynamoDB IAMポリシーで特定項目だけを許可する
検証記録です。 対象テーブル 書籍のサンプルで作ったこちらです。 所属バンドの楽 …
-
-
Developers Summit 2018 「AWSのフルマネージドな環境でCI/CDをやってみよう!AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介」を聞きました
※写真は展示のAmazon Echoです。 以下は、思ったことや気になったことを …
-
-
IAMアクセス許可の境界でIAMロールの権限を制御する
IAMユーザー自身の権限はIAMポリシーで制御できますが、IAMユーザーにIAM …