0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「App Mesh」「Cloud Map」備忘録

Last updated at Posted at 2024-08-31

はじめに

AppMesh、CloudMapをよく聞きますがあまり実態を理解していなかったので簡単にまとめました。何かの参考になれば幸いです。

サービスディスカバリとは?

  • マイクロサービスアーキテクチャにおけるサービスディスカバリとは、「宛先マイクロサービスを検出し、送信元マイクロサービスが宛先と通信できるようにする」
  • ※サービスディスカバリ = SD

image.png

  • 実装例
    • ELB利用
    • ECSのサービスディスカバリを利用
    • CloudMapを利用
    • AppMeshのサービスメッシュのサービスディスカバリ

AWSにおけるサービスディスカバリサービス「Cloud Map」

  • 概要
    • クラウドリソースに任意の名前をつけて、簡単かつ迅速にみつけるための仕組み
    • 多種多様なインフラを前提に構成されるマイクロサービスにおいて、それぞれのサービス間連携を簡単にする仕組みとして誕生したのが「AWS Cloud Map」
    • 例えばロードバランサーを作成した時はそのDNS名がAWSから払い出され、そのDNS名を利用してアクセス。これが、Cloud Mapを利用すると、IPアドレスがないAWSリソース(LambdaとかSQSとか)へのアクセスも管理できる
  • 問い合わせ方式は2種類ある
    • DNSクエリ
      • IPアドレスでアクセスできるリソースに対して付与
    • APIコール
      • AWSのARN(Amazon Resource Name)などでアクセスするリソースに対して付与
  • 用語
    • 名前空間
    • サービス
    • サービスインスタンス

サービスメッシュとは?

  • 概要
    • サービス間通信の信頼性とか可観測性を確保する一貫性のある手段の一つ
    • マイクロサービスアーキテクチャの中で複数のマイクロサービス間の通信をインフラストラクチャ側で制御するための技術
    • アプリケーションから通信処理を分離する方法
      • HTTP通信のリトライやタイムアウト
      • 通信のトレーシングやログ、メトリクスの取得
      • TLSを使用した暗号化通信
    • プロキシコンテナと言われるもので、マイクロサービス間の通信を制御するのに特化したプロキシ
  • 機能
    • コントロールプレーン:サービスメッシュの管理を担当し、サービスディスカバリなどの管理に必要な情報を保管したり、構成変更などの管理の命令を発行したりする
    • データプレーン:コントロールプレーンからの指示を受けてサービスの通信をコントロールしたり、管理に必要な情報をコントロールプレーンに送信したりする
  • 有名なソフトウェア
    • Istio
      • Istioは、Google、IBM、Lyftの3社によって開発され、2017年5月に最初のパブリックリリースであるバージョン0.1が公開されました。現在も、オープンソースプロジェクトとして開発が進められています
      • Istioでは、コントロールプレーンとしてistiodが、データプレーンとしてEnvoyが稼働
      • コントロールプレーンのistiodは、大きくPilot、Citadel、Galleyの3つから構成

image.png

  • 有名なプロキシに、envoy というオープンソースのソフトウェアがあります

App Meshとは?

image.png

image.png

image.png

  • Mesh
    • サービス間の通信制御を行う論理的な境界
    • Meshの中にVirtual NodeやVirtual Serviceを組み合わせてネットワークモデルを構築
  • Vitual Node
    • 実際のアプリケーションへの論理的なポインタ
      • (例)ECSサービス、k8sデプロイメント
    • Envoyの実行時パラメータ(環境変数など)でVirtual Node名を設定し、アプリ(Envoy)とVirtual Nodeを関連付ける
  • Virtual Service
    • アプリケーションの通信先を表す
    • リクエストはVirtuak Routerまたは、Virtual Nodeにルーティングされ、実際のアプリケーションに通達される
  • Virtual Router
    • リクエストのルーティングを管理するLB
    • 単一または複数のVirtual Nodeにルーティングされる

AWSの監視サービス群

image.png

終わりに

マイクロサービスでシステムアーキを組むのであれば必要になってくる技術だと感じましたが、マイクロサービスに触れる機会があるのか。そもそもマイクロサービスはテストが大変やらなんやら導入の障壁が高いイメージですが今後どうなるのかウォッチはしていきたいです。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?