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認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。
「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Control TowerにOUを追加する
AWS Control TowerにOUを追加する 管理アカウントでAWS Co …
-
-
特定のIAMロールをLambda(Python)で削除する
やりたいこと 特定アカウントの特定の名前が含まれるIAMロールをまとめて削除した …
-
-
Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot
Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …
-
-
[JapanTaxi] Athena 指向アナリティクス 〜真面目に手を抜き価値を得よ〜(AWS Summit Tokyo 2017)を聞いてきました
Athenaのユースケースとして聞きにいきましたが、最近触ってるRe:dashも …
-
-
AWS CodeStarのプロジェクトテンプレートLambda+Pythonによって生成されるもの
勉強会のデモで、AWS CodeStarのプロジェクトテンプレートLambda+ …
-
-
GoogleフォームからAPI Gatewayで作成したREST APIにPOSTリクエストする
「API GatewayからLambdaを介さずにSNSトピックへ送信」の続きで …
-
-
百聞は一見にしかず!AWSセルフペースラボの無料ラボ!
※2019年5月12日現在に試してみた記録です。 AWSセルフペースラボとは A …
-
-
slackのbotにWikipediaを調べてもらう(Python on AWS Lambda + API Gateway)
slackのbotに少しでも役に立ってもらおうと、Wikipediaを調べてもら …
-
-
「最小限のコードで機械学習のためのトレーニングデータを準備する」チュートリアル記録
Amazon SageMaker Data Wranglerのチュートリアルをや …
-
-
S3イベントのAWS Lambdaのテスト設定
S3イベントのLambda関数でよく使うのはこんなテスト設定です。 なので覚書で …















