omuronの備忘録

個人的な備忘録

「AWSの基礎を学ぼう 第四十八回 App Mesh + Cloud Map」 #awsbasics 受講メモ

awsbasics.connpass.com

サービス名を聞いたことぐらいはあるけど、それ以上のことは何もしらなかった App Mesh + Cloud Map です。

セッション

App Mesh + Cloud Map

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

App Mesh

  • アプリケーションレベルの通信制御を統一する
    • サービスメッシュ基盤で行える
    • アプリに組み込み不要
    • トレーシングやログ、メトリクスの取得ができるようにする
    • オブザーバービリティを上げる
      • すべてのヘッダーにIDを埋め込むなど
    • すべてのアプリケーションに信頼性を高める実装が必要
  • ネットワークサービスになる
    • 流動性の高い大規模な環境は App Mesh が適切
      • ほとんどは ALB でまかなえるケースが多い
  • サイドカープロキシで実現される
  • マイクロサービスアーキテクチャに対応できる
    • 言語依存で動かさず、通信プロトコル依存で実装できる
    • コントロールプレーンにいい感じでネットワークサービスを配置してくれる
  • Envoy Proxy
    • OSS の Envoy Proxy のマネージドサービス
  • 利用できるリソース
    • ECS, Fargate, EKS, EC2, k8s on EC2
  • 利用できる機能
    • ALB とほぼ同じ機能が使える

Cloud Map Service Discovery

  • 依存リソースへの一貫したアクセス
  • 環境に寄らず同じ論理名でリソースにアクセスできる
  • ディスカバリ可能なリソース
    • DNS ベース
      • A,AAAA レコード
      • SRV
      • CNAME
      • ...
    • カスタム属性に指定する任意の値
      • ARN
      • SNS トピック
      • SQS キュー
      • DynamoDB テーブル名
      • ...
  • Cloud Map 側で切り替える
    • aws servicediscovery discover-instansec ... にて --query-parameters Env=Test のように切替可能

ハンズオン

github.com

コンテナ環境を作った後、通信のコンテナを作っていくのでやりがいはあるとのこと。

所感

流動性の高い大規模な環境は App Mesh が適切」と言ってたとおり、使うケースは早々なさそうなサービスでした。
nginx のサイドカープロキシすら使いこなせてないのに、App Mesh を使いこなせる気がしない。

Cloud Map は便利そうですね。
App Mesh と組み合わせないと利用できないのでしょうか?
単独で使えるなら、複数環境デプロイ時の事故を減らせる気がしました。