[レポート] App Meshを用いたアプリケーションレベルでのネットワーク管理と監視 CON406-R #reinvent

AWS re:Invent 2019 CON406-R1 - [REPEAT 1] Deep dive into application-level network management & observability with App Meshのセッションレポートです。
2019.12.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS re:Invent 2019 CON406-R1 - [REPEAT 1] Deep dive into application-level network management & observability with App Meshのセッションレポートです。App Meshの紹介とユーザー事例の紹介でした。App Meshを用いたカナリアリリースについて説明していました。

セッション情報

登壇者

  • Brian Celenza - Sr. Software Engineer, Amazon Web Services
  • Christopher Lane - Enterprise Architect, Chick-fil-A

概要

AWS App Mesh provides enterprise-ready features beyond what is available through open-source solutions for application-level networks. In this session, we do a deep dive on best ways to onboard your applications to App Mesh, including how to configure your application, layer in different capabilities, tune your route settings, and configure dashboards needed to observe apps. You also learn what your teams should know to maximize value from App Mesh.

動画

スライド

https://d1.awsstatic.com/events/reinvent/2019/REPEAT_1_Deep_dive_into_application-level_network_management_&_observability_with_App_Mesh_CON406-R1.pdf

レポート

アジェンダ

  • 簡単なApp Meshの紹介
  • App Meshの設計意図
  • App Meshへの道のり
  • Chick-fil-aにおけるApp MeshとEKS

簡単なApp Meshの紹介

  • App Meshとは何か
    • 通信管理
    • 可視性
    • フォールト隔離と防御
    • きめ細かいデプロイ操作
  • App Meshはどのように動作するのか
    • サービス間のプロキシとなりトラフィックの管理する
    • コントロールパネルとしてプロキシ設定を管理する

App Meshの設計意図

  • 宣言的なAPI
  • 明瞭なオーナーシップ境界
  • 制約のあるリソースと柔軟なネットワーク構成
  • スケーラビリティ
  • 実際のサービス間の通信を仮想のノード、サービス、ルーターに置き換えることができる
  • CloudFormationとKubernetes custom resourceとして宣言的に記述できる

App Meshへの道のり

  • ネットワーク構成
    • 単一のノードで提供していたサービスを仮想サービスに分割し、サービス毎にノードに分割できる。例えばCheckoutサービスを別のノードに分離する場合、ルーターでカナリアリリースができる。最終的に同じ手順を繰り返し、全サービスを分割できる
  • 実際に何が起こっているのか
    • envoyが仮想ノードであり、envoy間の通信をApp Meshで提供している
  • App Mesh in action
    • X-Rayで可視化できる
    • CloudWatchでメトリクス参照できる

Chick-fil-aにおけるApp MeshとEKS

適宜デモを交えつつのアーキテクチャ紹介でした。

  • ピーク時に45Kリクエスト
  • アーキテクチャ
    • Kubernetes Common Platform (KCP)
      • CLIを自作している。オープンソースにするかも
    • なぜEKS
      • 設定を宣言的にできる
      • 自己修復、オートスケーリング
      • オペレーション作業を減らせる
    • なぜApp Mesh
      • シンプルなデプロイ
      • 複数のAWSを横断して機能する
      • デプロイとモニタリング
  • デプロイの全体像
  • カナリアデプロイはFlaggerを利用している

感想

App MeshはEnvoyを利用しているらしいぐらいの知識しかなかったのでどんなものか知りたくて参加しました。内容的にはApp MeshとEnvoyをある程度知っている前提のようでしたが具体的なユースケースについて理解できてよかったです。ブログを書くためにApp Meshのドキュメントも参照しましたが、かなりシンプルな印象だったので興味がある方はドキュメントを一度参照してもよいかと考えます。