【レポート】 Amazon CloudFront と AWS Global Accelerator を使った AWS Global Network の活用方法 #AWSSummit

2020.09.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうも、もこ@札幌オフィスです。

今年はAWS Summit Onlineという事で、2020/9/8〜9/9の間のライブセッションと、09/30まで視聴可能なAWS認定セッション、お客様事例セッション、セルフペースハンズオン、Partner Discovery Session (パートナーセッション) などなど、場所を選ばずにオンラインで、好きな時に好きなだけ学べるような環境になっています。

本記事ではライブセッション Day2 Track2 15:30〜16:15の「Amazon CloudFront と AWS Global Accelerator を使った AWS Global Network の活用方法」のセッションレポートとなります。

セッション情報

Amazon CloudFront と AWS Global Accelerator を使った AWS Global Network の活用方法

アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト 中谷 喜久

Amazon CloudFront と AWS Global Accelerator はインターネットを利用したシステムの高速化、安定化などを実現するためのサービスですがキャッシュができる、できない以外にも違いがあります。このセッションではこれらの違いと使い分けについて解説するとともに、Amazon Route 53 や AWS Lambda@Edge、AWS WAF/Shield を組み合わせた堅牢なシステムを作るためのポイントについて説明します。

レポート

Internet Weather

  • InternetはISPの集合体
  • 専用線では無いInternetは可用性、安定性、性能は保証されていない
  • Internetをデザインのスコープに入れることが重要
  • https://infrastructure.aws/ でAWSのネットワークを確認出来る
  • AWS全体では20を超えるリージョンがある、さらに拡張予定
  • CloudFrontのEdge Locationは216PoPsある

AWS Edge Services

  • 一般的なWebインターネットアクセス
    • まずはDNSにアクセスして、その後HTTP/Sでオリジンサーバーからコンテンツを返却する
  • CloudFront / Route53を使うことで、エンドユーザーからより近い所から返却
  • より遅延を低減、キャッシュでオリジンの負荷をオフロード
  • AWS global networkを利用する事により非キャッシュコンテンツの高速化
  • Lambda@Edgeで、Edge LocationでLambdaを実行可能

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-17.png

  • Global Acceleratorはキャッシュを行わないので、AWS Global Networkを経由してリージョンのあるオリジンにアクセスする
  • CloudFrontを利用する事で、エンドユーザーが一番近いEdge LocationからAWS Global Networkに入れる
    • CloudFrontとオリジン間はAWS global networkを利用

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-1-3.png

  • Slackの事例
    • レスポンスは動的コンテンツなのでキャッシュできないが、CloudFrontを利用してAPIアクセラレーションを実現
    • 導入前は488msだったが200ms以下に

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-2-4.png

  • Tinderの事例
    • TLSハンドシェイクレイテンシが大幅に低減

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-3-4.png

  • CloudFront Cache Layer
    • L1 - ホットコンテンツ
    • L2 - サーバー間キャッシュレイヤー
    • L3 - HTTP Keep Alive(Persistence Connection)
  • Regional Edge Cache
    • 多段でキャッシュをする事が可能
    • エンドユーザーに近いEdge Locationにキャッシュが存在していなくても、一番近いRegional Edge Cacheからレスポンスを返却する事が可能に

AWS Global Accelerator

  • IP Anycast を利用する事でシングルエンドポイントをグローバルで使える
  • CloudFrontはHTTP/HTTPSのみの対応だが、Global AcceleratorはTCP/UDPのトラフィック/ルーティングに対応
  • EC2やALB/NLBに対応、30秒以下でフェイルオーバー可能
  • グローバル展開の際に利用するとパフォーマンス向上

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-4-5.png

  • これまでは複数リージョンで展開する場合、リージョンごとにオリジンは違うIPになっていた
  • Global Acceleratorを使うと、同じIPアドレスで複数リージョン展開が可能
  • 一番近いリージョンに接続しにいく
  • オリジンが落ちても~30sで他リージョンへフェイルオーバーが出来る

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-5-5.png

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-6-5.png

  • Global Acceleratorの効果
    • 下記図参照、安定かつ低レイテンシーを実現

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-7-5.png

CloudFrontとGlobal Acceleratorの違い

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-8-4.png

  • クライアント証明書に対応したい場合はGlobal Acceleratorを利用
  • 非常に少ないIPでサービスを利用したい場合
    • FirewallなどでIPアドレスが変更されると不都合な場合
  • クライアントIPが変更されずにALB/EC2に到達される

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-9-3.png

  • Global Acceleratorを使うとプライベートVPCにあるALB/EC2のインスタンスに接続可能
    • Global Acceleratorをインターネットに対する唯一のエンドポイントとする事が可能
  • AWS Shield Advancedと組み合わせたDDos対応も実現
    • 2.3TBpsのDDos対応、90日間で31万件のDDos対応

https://devio2023-media.developers.io/wp-content/uploads/2020/09/Untitled-10-2.png

まとめ

  • AWS Edge Servicesはインターネットの課題を解決するためにAWS global networkを有効活用したサービス
    • 国内のみでも利用可能
  • CloudFront とGlobal Acceleratorを適切に組み合わせることで様々なサイト、サービス、APIなどに適用可能
  • AWS global Infrastructureは拡大を続けてきており、今後も拡大予定
  • AWS ShieldなどのAWSサービスと組み合わせて利用する事で高いセキュリティも実現