Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ECS/FargateとAWS App Meshでサービスメッシュにしたお話 / Buildi...
Search
nobunagayasuda
March 01, 2022
Technology
3.1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ECS/FargateとAWS App Meshでサービスメッシュにしたお話 / Building service mesh on AppMesh and ECS on Fargate
JAWS-UG朝会2022/2/5発表内容です。
ECS/FargateとAWS App Meshでサービスメッシュにした際に理解したり調べたりした内容をすごく簡単に発表しました。
nobunagayasuda
March 01, 2022
More Decks by nobunagayasuda
See All by nobunagayasuda
Atlassianツールチェーン活用事例 / Example of Atlassian toolchain
nobunagayasuda
1
800
Other Decks in Technology
See All in Technology
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
110
Reactの設計論
uhyo
14
7.9k
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
120
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
220
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
340
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
150
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.8k
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
310
GoにおけるFFIのこれまでとこれから
goccy
5
2.4k
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
310
AIで仕事のやり方を変える
matsu7874
3
1k
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
4 Signs Your Business is Dying
shpigford
187
23k
Building the Perfect Custom Keyboard
takai
2
870
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Unsuck your backbone
ammeep
672
58k
Evolving SEO for Evolving Search Engines
ryanjones
0
280
Building an army of robots
kneath
306
46k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
Copyright © SCSK Corporation ECS/FargateとAWS App Meshで サービスメッシュにしたお話 JAWS-UG朝会 2022/2/25
1 Copyright © SCSK Corporation 今日お話しすること Part.1 AppMeshを使うにあたって Part.2 AppMeshでできること
2 Copyright © SCSK Corporation 川本 遼 / Ryo Kawamoto
3年目(25歳) SCSK株式会社 金融事業グループ 金融システム第二事業本部 総合金融システム第二部 第二課 ANGEL Dojo Season.1 ANGEL賞 好きなAWSサービス AppMesh、Lambda 今日お話をする人 保田 信長 / Nobunaga Yasuda 18年目(42歳) SCSK株式会社 金融事業グループ 金融システム第二事業本部 総合金融システム第二部 第二課 シニアプロフェッショナル ITスペシャリスト 好きなAWSサービス ECS/Fargate、AppMesh、X-Ray、CDK
3 Copyright © SCSK Corporation おことわり 本日お話する内容ならびに資料に記載の内容(以下、本内容)は発表者自身の理解によるものであり、所属組織を代表す るものではございません。また、コミュニティでの情報共有を目的としたものであり、本内容により発生する如何なる事項 についても、発表者ならびに所属組織は一切の責任を負わないものとします。 本内容は発表者が2021年7月から10月頃に調査、検証した情報に基づいています。
極力正確にお伝えする所存ですが、情報のアップデートも含め、より正確には公式ドキュメントの参照ならびにテクニカル サポートをご利用ください。
4 Copyright © SCSK Corporation Part.1 AppMeshを使うにあたって
5 Copyright © SCSK Corporation AppMeshとは? --参照: https://aws.amazon.com/jp/app-mesh/
6 Copyright © SCSK Corporation AppMeshとは? なるほど、完全に理解した! ・・・
7 Copyright © SCSK Corporation AppMeshとは? ざっくり言うと サービスメッシュを構成するために Envoyを制御するサービス ※Istioのマネージドサービスではない
8 Copyright © SCSK Corporation サービスメッシュとは? 複数のサービスをメッシュ状につないだ状態 GW ハブ&スポーク サービスはゲートウェイ(GW)を介してやり取り。
サービス間通信の制御をGWで一括管理できる。 反面、GWがボトルネックになるリスクあり。 サービスメッシュ サービス同士が直接やり取りする。 GWがボトルネックになることがない。 反面、サービス間通信の管理が大変。 これだけを見ると嫌な予感しかしない... ALBにぶら下げるパターンはコチラ
9 Copyright © SCSK Corporation Envoyとは? サービス間の通信を行う軽量なプロキシ アプリケーション Envoy request
response request response request response アプリケーション Envoy request response request response サービス サービス クライアント Envoyの主な役割 ルーティング制御 サービスディスカバリ ヘルスチェック サーキットブレーカー タイムアウト リトライ サービスはHTTP以外にもgRPC やTCPでの定義も可
10 Copyright © SCSK Corporation AppMeshとは? サービスメッシュを構成するために Envoyを制御するサービス Envoy Envoy
Envoy Envoy これならいけそうな予感!
11 Copyright © SCSK Corporation AppMeshの構成要素 概念の理解が最初のハードル 『呼び出す側の振る舞いを、 呼び出される側が定義』 アプリケーション
Envoy アプリケーション Envoy サービスA サービスB クライアント Envoy ゲートウェイ サービスAに紐づくタスク を呼出すための定義 メッシュ外からサービス を呼出すための定義 仮想ゲートウェイ 非Envoy環境からのプロキシ 仮想サービス サービスの名前 仮想ルータ リクエストのルーティング 仮想ノード サービスの実体との紐付 サービスBに紐づくタスク を呼出すための定義
12 Copyright © SCSK Corporation 問い サービスメッシュは必要なのか? 参考 サービスメッシュは本当に必要なのか、何を解決するのか AWS
Summit Tokyo 2019 https://www.youtube.com/watch?v=ZwfdLAClzsc
13 Copyright © SCSK Corporation 将来への備え的理由 マイクロサービスアーキテクチャを目指す、という方向性 小規模で採用してノウハウを得ていく
14 Copyright © SCSK Corporation 技術的な理由 ❶ELBの性能や運用管理面のリスク A B C
クライアント ELB 例)サービスA→B→Cの順で呼び出す場合 A B C 呼出し順序 ELB構成 A B C クライアント GW A B C 「長い/短い」ではなく、1リクエストで同じ場所を何度も通ることをリスクと捉えるか、 Envoy層が加わることによる障害ポイントの追加をリスクと捉えるか。 今後サービスが追加されていく構想においては前者をリスクとし、後者を許容。 メッシュ構成 ELB 呼出し順序
15 Copyright © SCSK Corporation 技術的な理由 ❷ライブラリ依存のリスク アプリケーション Envoy アプリケーション
Envoy サービス サービス Envoy構成 アプリケーション アプリケーション サービス サービス ライブラリ構成(Javaの場合) SpringCloud サービスディスカバリやクライアントロードバランサなど、どちらの構成でも実現可。 アプリケーション開発の立場からは、ライブラリ依存は極力少ない方が嬉しい。
ビジネス要求、将来の技術戦略、 チームのスキル、現状の課題、 などなど アーキテクチャの決定には様々な要素が関連します 調査・検証・議論を通じてより合ったものをご選択ください
AppMeshの情報源 2021年度版 設定方法や構築方法は上記でおおよそ把握できます。 振る舞いに関する仕様は確たる情報がないので地道な検証とサポート問合せで把握しました。 AWS公式ドキュメント https://docs.aws.amazon.com/app- mesh/latest/userguide/what-is-app-mesh.html AWS Black Belt
Online Seminar https://aws.amazon.com/jp/aws-jp-introduction/aws-jp- webinar-service-cut/ サンプルソース https://github.com/aws/aws-app-mesh-examples Envoy公式ドキュメント https://www.envoyproxy.io/docs.html AWSサポート ご契約により
Part.2 AppMeshでできること
本構成を用いて下記5つの観点で検証を実施。 ❶ ルーティング制御 ❸ ヘルスチェック ❺ リトライ ❷ サーキットブレイカー(流量制御) ❹
タイムアウト ❻ 外れ値検知 AppMesh 仮想サービス AppMeshでできること 仮想ノード DB Envoy 仮想ルーター 仮想ゲートウェイ アプリ 今回未使用
ルーティング制御 サービス間の呼出を柔軟に制御する。Blue/Greenデプロイメントやカナリアリリースを実現できる。 DB ECSタスク ECSタスク ECSタスク 仮想ルーターは、仮想サービス用のハンドラーとなっており、 ヘッダー等を用いてルーティングを行う。 また、仮想ノードは紐づくECSタスクの中で正常なタスクに対してトラフィックを伝播させる。
サーキットブレーカー(接続プール) アプリケーションへの流量を制御し、過負荷から保護する。 DB ECSタスク CP CP 主な設定項目は「最大接続数・最大保留数」の2つ。 最大接続数を超過した場合は、タイムアウトまで待機する。 最大接続数+最大保留数を超過した場合は、503 Service
Unavailable が発生する。
ヘルスチェック アプリケーションの正常性を監視しトラフィックの制御を行う。 DB ECSタスク HC ECSタスク HC HC ECSタスク ECSタスク
ECSのHCではコンテナのリカバリを、EnvoyのHCではEnvoyの通信制御を行う。 仮想ゲートウェイのECSタスクにおけるHCはALBのHCで代用する。 ※EnvoyのHC サービス検出方法によってはヘルスチェックが実施されない。 CloudMapもしくはDNS(ENDPOINTS)に設定する必要がある。
タイムアウト サービス間の呼出のタイムアウトを制御する。 DB ECSタスク TO TO 主な設定項目は「アイドルタイムアウト・リクエストタイムアウト」の2つ。 アイドルタイムアウトを超過した場合は、504 Gateway Timeout
が発生する。 リクエストタイムアウトを超過した場合は、408 Request Timeout が発生する。
リトライ アプリケーションへの通信がエラーになった場合の再試行を行う。 デフォルトの再試行ポリシーを設定。 503エラー発生時には2回リトライされる。 なお、リトライ中にタイムアウトに引っかかった場合は504 Gateway Timeoutとして返却される。 DB ECSタスク TA
25 Copyright © SCSK Corporation EnvoyProxyを用いて以下のような機能を実現。 ❶ ルーティング制御 ❸ ヘルスチェック
❺ リトライ ❷ サーキットブレイカー(流量制御) ❹ タイムアウト ❻ 外れ値検知 AppMesh 仮想サービス AppMeshでできること 仮想ノード DB Envoy 仮想ルーター 仮想ゲートウェイ アプリ 今回未使用
None