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
Claude起点の仕様駆動開発
tanakaseiya
0
300
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
210
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
judau
1
200
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
280
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
390
「とりあえず動く」の先へ。 AI時代のチーム開発と内部設計/2026-slsdays
slsops
0
110
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
720
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
850
自主式軟體工廠
philipz
0
120
形式手法を使って仕様をコーディングしよう
mikanichinose
0
170
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
740
IR Today: Theory, Practice, and Agents
dtunkelang
0
330
Featured
See All Featured
Practical Orchestrator
shlominoach
192
12k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Automating Front-end Workflow
addyosmani
1369
210k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
550
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Curious Case for Waylosing
cassininazir
1
550
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
Prompt Engineering for Job Search
mfonobong
0
470
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
310
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
GitHub's CSS Performance
jonrohan
1033
470k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
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