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
210
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
89
ELB vs API Gateway vs CloudFront / 結局何を選べばいいの?
harukotanabe
1
210
エンジニア歴1年未満の初心者が3か月でAWS認定試験を全冠した話
harukotanabe
1
7.2k
クラウド未経験者が3か月でAWS認定試験を全冠した話
harukotanabe
0
230
エンジニア歴1年未満の初心者が3か月でAWS認定試験を全冠した話
harukotanabe
0
130
Featured
See All Featured
Balancing Empowerment & Direction
lara
2
580
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Raft: Consensus for Rubyists
vanstee
140
7.1k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
A better future with KSS
kneath
239
17k
Embracing the Ebb and Flow
colly
86
4.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
770
It's Worth the Effort
3n
187
28k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
560
GraphQLとの向き合い方2022年版
quramy
49
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
BBQ
matthewcrist
89
9.8k
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!