$30 off During Our Annual Pro Sale. View Details »

ECS Service Connectによるサービスの新しいつなぎ方 / A new way to connect services with ECS Service Connect

iselegant
December 05, 2022

ECS Service Connectによるサービスの新しいつなぎ方 / A new way to connect services with ECS Service Connect

iselegant

December 05, 2022
Tweet

More Decks by iselegant

Other Decks in Technology

Transcript

  1. ECS Service Connect によるサービスの新しいつなぎ方
    2022-12-05
    株式会社野村総合研究所 新井雅也

    View Slide

  2. 新井 雅也
    M a s a y a A R A I
    msy78
    野村総合研究所に所属。
    金融業界のお客様に向けたビジネス提案やシステム設計、開発、運用を担当。
    好きな技術・サービスは、ECS、Fargate、App Runner、Kubernetes、Golang、Pulumi
    テックリード / インフラチームリーダー

    View Slide

  3. 本日のゴール
    uAWS re:Invent 2022期間中に発表されたECS Service Connectの概要を知る
    uサービス間接続として、ALB、Service Discovery、AWS App Meshと
    比較したときの優位性を理解する
    uECS Service Connect活用時の注意事項を押さえる

    View Slide

  4. ECS Service Connect とは

    View Slide

  5. これまでの ECS サービス間接続における選択肢
    ECS Service
    (Client)
    ECS Service

    View Slide

  6. これまでの ECS サービス間接続における選択肢
    ECS Service
    (Client)
    ECS Service

    1. ELB によるサービス間接続
    2. ECS Service Discovery によるサービス間接続
    3. AWS App Mesh によるサービス間接続

    View Slide

  7. ELB によるサービス間接続
    Container
    ECS Service
    Container
    ALB
    Container
    ECS Service
    Container
    Pros:
    Blue/Green デプロイメントやトラフィック関連メトリクスの取得が可能
    Cons:
    追加のインフラ管理とコストが発生

    View Slide

  8. ECS Service Discovery によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    Pros:
    シンプルな構成(サービスに対する直接接続が可能な構成)
    Cons:
    トラフィック関連メトリクスが自動で取得されない
    Cloud Map
    Route 53
    1. サービス登録
    2. レコード登録
    3. 名前解決

    View Slide

  9. App Mesh によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    Pros:
    優れたトラフィック制御、mTLS による暗号化
    Cons:
    ECS とは別の外部コンポーネント管理、トラフィック関連の柔軟な構成に伴う複雑性
    Cloud Map
    2. サービス登録
    1. 設定
    App Mesh
    1. 設定
    3. サービス
    ディスカバリ

    View Slide

  10. App Mesh によるサービス間接続
    Container
    Container
    Container
    Container
    2. サービス登録
    1. 設定 1. 設定
    3. サービス
    ディスカバリ
    ECS Service ECS Service
    Pros:
    優れたトラフィック制御、mTLSによる暗号化
    Cons:
    ECS とは別の外部コンポーネント管理、トラフィック関連の柔軟な構成に伴う複雑性
    Cloud Map
    App Mesh
    Virtual
    gateway
    Virtual
    service
    Virtual
    router
    Virtual
    node
    ECSサービスが追加されるとECS側の管理とは別に、
    App Mesh 側の Virtual node の追加や Virtual router の変更が発生

    View Slide

  11. これまでの ECS サービス間接続における選択肢
    1. ALB 2. ECS Service Discovery 3. AWS App Mesh
    追加のインフラ管理と
    コストが発生
    トラフィック関連メトリクスが
    自動で取得されない
    ECS とは別の
    外部コンポーネント管理

    View Slide

  12. これまでの ECS サービス間接続における選択肢
    1. ALB 2. ECS Service Discovery 3. AWS App Mesh
    このペインポイントに応えるのが
    ECS Service Connect
    追加のインフラ管理と
    コストが発生
    トラフィック関連メトリクスが
    自動で取得されない
    ECS とは別の
    外部コンポーネント管理

    View Slide

  13. ECS Service Connect の概要

    View Slide

  14. ECS Service Connect によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container

    View Slide

  15. ECS Service Connect によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    jawsug.local
    Cloud Map
    名前空間(namespace)を作成

    View Slide

  16. ECS Service Connect によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    jawsug.local
    Cloud Map
    svc-a svc-b
    ECS Service Connect として
    サービス名を登録

    View Slide

  17. ECS Service Connect によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    jawsug.local
    Cloud Map
    svc-a svc-b
    svc-b.jawsug.local
    CloudWatch
    Metrics
    ロードバランサ相当の機能
    (透過的に存在)

    View Slide

  18. ECS Service Connect によるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    jawsug.local
    Cloud Map
    svc-a svc-b
    ロードバランサ相当の機能
    (透過的に存在)
    svc-b.jawsug.local
    CloudWatch
    Metrics
    ELB の構築不要・コスト発生なし。
    ヘルスチェック、コネクションドレイニング、
    503エラー時の自動再試行をサポート
    ECS と Cloud Map が
    シームレスに連携
    トラフィック関連の
    メトリクスが自動取得される
    代表的なメトリクス例:
    ・アクティブコネクション数
    ・新規コネクション数
    ・処理データサイズ (Bytes)
    ・リクエスト数
    ・gRPCリクエスト数
    ・HTTPレスポンスコード数 (2XX, 3XX, 4XX, 5XX)

    View Slide

  19. ECS Service Connectによるサービス間接続
    Container
    ECS Service
    Container
    Container
    ECS Service
    Container
    jawsug.local
    Cloud Map
    svc-a svc-b
    ロードバランサ機能
    (透過的に存在)
    svc-b.jawsug.local
    ELBの構築不要・コスト発生なし。
    ヘルスチェック、コネクションドレイニング、
    エラー自動試行をサポート
    ECSとCloud Mapが
    シームレスに連携
    CloudWatch
    Metrics
    代表的なメトリクス例:
    ・アクティブコネクション数
    ・新規コネクション数
    ・処理データサイズ (Bytes)
    ・リクエスト数
    ・gRPCリクエスト数
    ・HTTPレスポンスコード数 (2XX, 3XX, 4XX, 5XX)

    View Slide

  20. ECS Service Connect 利用時における制約と考慮ポイント

    View Slide

  21. ECS Service Connect 利用時における主要な制約と考慮ポイント
    uデプロイはローリングアップデートのみ
    uFargate 64bit ARM アーキテクチャの Linux コンテナは未サポート
    u同一 AWS アカウント・同一リージョンのみ名前空間に所属可能
    uスタンドアロンの ECSタスクは構成不可
    uECS Service Connect Proxy のリソース考慮

    View Slide

  22. デプロイはローリングアップデートのみ
    ・現時点においては、Blue/Green デプロイメントや外部デプロイが未サポート
    ・ECS で Blue/Green デプロイメントをマネージドでサポートするのは、
    現時点で ELB(ALB/NLB) のみ

    View Slide

  23. Fargate 64bit ARM アーキテクチャの Linux コンテナは未サポート
    ・言い換えれば、Graviton2 対応の Fargate は利用できない
    ・一方、Dr. Werner Vogels 氏によると、カスタムシリコンチップの利用が
    今後増加すると予測しており、何らか対応されるのではないか (と予想している)
    Tech predictions for 2023 and beyond
    Usage of purpose-built chips will rapidly increase in 2023. As a result, the pace of innovation will
    accelerate as workloads take advantage of hardware optimizations that maximize performance,
    while lowering energy consumption and reducing cost.
    https://www.allthingsdistributed.com/2022/12/tech-predictions-for-2023-and-beyond.htmlより一部引用

    View Slide

  24. 同一 AWS アカウント・同一リージョンのみの名前空間に所属可能
    VPC
    ECS Cluster
    ECS Service
    VPC
    ECS Service
    ECS Service
    ECS Cluster
    ECS Service
    Tokyo Region
    ECS Service
    Tokyo Region
    ECS Service
    AWS Account A AWS Account A
    ECS Service ECS Service
    VPC を跨いだ名前空間の所属は OK
    (同一 AWS アカウント・同一リージョンの VP C間)
    ECS クラスターを跨いだ名前空間の所属は OK
    (同一 AWS アカウント・同一リージョンの ECS クラスター間)
    リージョンを跨いだ名前空間の所属は NG AWSアカウントを跨いだ名前空間の所属は NG

    View Slide

  25. スタンドアロンの ECS タスクは構成不可
    その名前の通り、 ECS Service Connect は “ECS Service” に設定されるものであり、
    単一の ECS タスクはサポートされない
    Container
    ECS Service
    Container
    ECS Cluster
    ECS Task ECS Task
    ECS Service Connect は未サポート

    View Slide

  26. ECS Service Connect Proxy のリソース考慮
    ・ECS Service Connect 利用する場合、“ECS Task” が開始されるたびに、
    新しいコンテナ(ECS Service Connect Proxy)が自動で追加
    ・ECS Service Connect Proxy に対する CPU ユニットとメモリのリソース考慮が必要
    App
    ECS Task
    App割り当て分
    App割り当て分
    未割り当て分
    CPUユニット:
    メモリ:
    未割り当て分
    ・自動追加されるコンテナはカスタマイズ不可
    ・コンソール上からも見えない
    ※内部的には Envoy が利用
    ・ECS Service Connect Proxy は未割り当て分リソースを利用
    ・AWS の推奨は256CPUユニット、64MiBメモリ
    ※ピーク時リクエスト量や ECS Service Connect サービス数により、推奨リソースは変わる

    View Slide

  27. まとめ

    View Slide

  28. まとめ
    u ECS Service Connect は、これまでの ECS サービス間接続のペインポイントを解消する
    新しい通信管理の機能であり、 ECS の設定として提供されるもの
    u ELB のコスト削減やトラフィック関連メトリクスが取得が可能
    u 利用時には Blue/Green デプロイメントや ARM アーキテクチャ Linux コンテナ未対応、
    Proxy 分のリソース割当など、デザインにおける制約事項に注意

    View Slide

  29. 最後に余談
    近々、ブログ更新予定なので読んでいただけると嬉しいです🙏
    https://iselegant.hatenablog.com/

    View Slide