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
関連記事
-
WordPressで画像アップロードができなくなった(AWS WAFでブロックしていた)
WordPressで画像がアップロードできなくなりました。 こんなメッセージです …
-
Amazon Pollyを使って覚えたい資料を耳から身体に染み込ませる
Amazon Pollyを使うとソースコードを一切かかなくても、テキストを音声に …
-
Amazon Location Service入門ワークショップ-ジオフェンス
関連記事 Amazon Location Service入門ワークショップの前提 …
-
VPC内のLambdaからVPCエンドポイント経由でSecrets Managerを使う
InternetGatewayのないVPCでMySQLに対して一日数回のレポーテ …
-
AWSのサービス数を数えてみました(2020/5/23)
何をもってサービスという単位にするかというのはあるかもしれませんが、とりあえず情 …
-
ヤマムギ vol.24 API GatewayでREST API作成と直接DynamoDB登録のデモをしました
2週間ぶりのヤマムギ勉強会デモなのでなんだか久しぶりな気がしました。 今日はポケ …
-
AWS Cloud9で環境を共有する
(特にリモート環境では)画面共有をしたり、リポジトリを共有したり、コーディング環 …
-
AWS Lambda Layersのアーカイブファイルをダウンロードする
Cloud9にLambda Layersをダウンロードしたかったので検索してみた …
-
Cloud9 Python3でpipも3にする
このブログは、2019/10/20に書いた、 Cloud9のAMIがCloud9 …
-
VPC環境でLambdaを100同時実行してプライベートIPアドレスを確認した
2019年9月発表のLambda 関数が VPC 環境で改善されます以降に、VP …