Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ELB vs API Gateway vs CloudFront / 結局何を選べばいいの?
Search
haruko_tanabe
April 13, 2025
1
160
ELB vs API Gateway vs CloudFront / 結局何を選べばいいの?
haruko_tanabe
April 13, 2025
Tweet
Share
More Decks by haruko_tanabe
See All by haruko_tanabe
TerraformでS3バケット削除後、再作成するとApplyが終わらない!
harukotanabe
0
81
ELB vs API Gateway vs CloudFront / 結局何を選べばいいの?
harukotanabe
1
200
エンジニア歴1年未満の初心者が3か月でAWS認定試験を全冠した話
harukotanabe
1
7.1k
クラウド未経験者が3か月でAWS認定試験を全冠した話
harukotanabe
0
210
エンジニア歴1年未満の初心者が3か月でAWS認定試験を全冠した話
harukotanabe
0
110
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
480
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Six Lessons from altMBA
skipperchong
28
3.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Transcript
ELB vs API Gateway vs CloudFront 結局何を選べばいいの? 2025/4/14 tanabe haruko
• 外資コンサルファームのエンジニア • 2024 Japan AWS All Certifications Engineers •
Google Cloud認定資格 12種保有 tanabe haruko https://zenn.dev/haruko_tanabe @hrsaaaam
アジェンダ 1. はじめに 2. 各サービスの利用目的 3. 各構成パターンとユースケース 4. 実際、スピードってどれだけ変わるの? 5.
まとめ
1 はじめに
はじめに • エンジニア経験が浅いと、インフラアーキテクチャの検討は難易度が高い。 • Elastic Load BalancingやAmazon API Gateway、Amazon CloudFrontは、「アプリケーションのフロントに置き、ユーザーからのアクセ
スを受け付ける」という点は共通しているが、それぞれ本質的な目的は異な る。 ➢どのようなケースで、どのサービスを採用すればよいのか判断するための 指針がほしい! • レスポンス速度の違いについても調査。
2 各サービスの利用目的
各サービスの利用目的(1/5) 1. Elastic Load Balancing(ELB) ➢ 1つまたは複数のAZ内の複数のターゲット の ヘルスチェックを行い、受信したトラフィックを 正常なターゲットにのみ自動的に分散させる
ことが目的。 https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html
各サービスの利用目的(2/5) Application Load Balancer(ALB) ➢ レイヤー7のロードバランサー ✓ URLに基づいたパスベースのリクエスト転送 ✓ HTTPヘッダーに基づいたホストベースのリクエスト転送
✓ リクエスト内のフィールドに基づいたリクエスト転送
各サービスの利用目的(3/5) Network Load Balancer(NLB) ➢ レイヤー4のロードバランサー ✓ 低いレイテンシーを維持したリクエスト処理 ✓ 静的IPアドレスのサポート
✓ IPアドレスによるターゲットの登録
各サービスの利用目的(4/5) 2. Amazon API Gateway ➢ あらゆる規模のREST、HTTP、およびWebSocket APIを作成、公開、維持、 モニタリング、およびセキュア化することが目的。 https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/getting-started.html
各サービスの利用目的(5/5) 3. Amazon CloudFront ➢ エッジロケーションを経由し、コンテンツを キャッシュ・圧縮することによって、世界中の ユーザーへ低レイテンシーなコンテンツの配 信を実現することが目的。 https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Introduction.html
3 各構成パターンとユースケース
• ユーザーからのアクセスのターゲットリソース (EC2インスタンス、コンテナ、IPアドレス、等)が 単一であり、スケーリング設定も行わない場合。 ① ELBもCloudFrontもAPI Gatewayもいらない!
• ユーザーからのアクセスのターゲットが、複数、 またはオートスケーリングが設定されたリソー スの場合。 • ALBは、WAFの設置やSecurityGroupの設 定が可能な点から、NLBと比較してセキュリ ティ面を重視する場合。 • また、レイヤー7で機能するため、パスベースや
ホストベース、クエリ文字ベース等、コンテンツ に従ったリダイレクトを設定したい場合。 ② ALBのみ
• ユーザーからのアクセスのターゲットが、複数、 またはオートスケーリングが設定されたリソー スの場合。(ALB同様) • スケーリング性能の高さやレイテンシーの低さ が特徴なため、高パフォーマンスが求められる 場合。 ③ NLBのみ
• 前述のALBのユースケースに加え、世界中の ユーザーに対してより低レイテンシーなコンテ ンツ配信を行いたい場合。 • キャッシュの設定を細かく行いたい場合。 ④ ALB + CloudFront
• モニタリングや変換、バージョニング等の機能 と併せてAPIを構築・統合管理したい場合。 • さらに、アクセスの上限数のコントロールやア クセス数に基づくAPI課金の仕組みなどを実 装したい場合 • AWS Cognitoやカスタム認証基盤と統合し、
認証/認可の仕組みを取り入れたい場合。 ⑤ NLB + API Gateway
• ⑤NLB + API Gatewayのユースケースに 加え、世界中のユーザーに対して低レイテン シーなコンテンツ配信を行いたい場合 • キャッシュの設定を細かく行いたい場合にこの パターンを採用します。
• エッジロケーションでのキャッシング効果を活 用することによりAPIコール数を減らし、API Gateway利用料の削減を図ることが可能。ア クセス数が多いほど、コスト削減につながりや すい。 ⑥ NLB + API Gateway + CloudFront
4 実際、スピードってどれだけ変わるの?
• 「hello,AWS!」の文字列を返すシンプルなウェブサイトをus-east-1の EC2に各パターンでデプロイ。 • 日本からブラウザでアクセスし、開発者ツールでコンテンツ取得速度を比 較。 検証方法
検証結果:レスポンス速度の違い
考察① アプリの前段にサービスを置かなくても初 回アクセス時とリロード後アクセス時にレス ポンス速度に違いあり。これは、今回の検証 範囲であるELB、API Gateway、 CloudFrontの外側(DNSキャッシュ等)に 要因あり。
考察② NLBは「1秒間に数百万件もの大量なリク エストや、突発的で不安定なトラフィックを 処理すること」を得意としているため、今回 のような1回のアクセスで検証してもNLBの メリットが十分に発揮されていない。
考察③ 初回アクセス時はAPI Gateway利用時の 方がレイテンシーが高い。これは、まだキャッ シュが作成されていない状況で、API Gatewayの経由に時間が掛かるため。
考察④ CloudFrontを利用する場合も、まだキャッ シュが作成されていない初回アクセス時 は他パターンと比較するとレイテンシーが 大きくなる。2回目以降のアクセスでレスポ ンス速度が大幅に向上する。
考察⑤ API GatewayとCloudFrontは同様 にキャッシュ機能があるが、 CloudFrontはユーザーに近いエッジ ロケーションでコンテンツがキャッシュ されているため、リロード後アクセス時 のレスポンス速度はCloudFront利用 時の方が圧倒的に低くなる。
5 まとめ
全体のまとめ • アプリケーションに求められる要件(ルーティング、セ キュリティレベル、レスポンス速度、等)によって、適し たサービスが存在する。 • その他詳細は以下記事参照。 https://zenn.dev/acntechjp/articles/8bde90d02ff2ef
宣伝 • 埼玉県を拠点とした地方支部「JAWS-UG 彩の国埼玉支部」が発足しま した! イベント参加登録(connpass)
Thank you!