🌵

詳説 AWS ネットワーキング3 Global Accelerator(ANS-C01試験対策)

2024/03/05に公開

📌サービス概要

AWS Global Acceleratorは、Amazon CloudFrontと同様にリージョンデータセンターよりもユーザーに近いAWSエッジロケーションを経由して通信することで低遅延を実現する仕組みです。

re:Post Sites on EC2 hosted in Africa(CT) region are much slower than the same copy of Sites in Europe region より引用

上図の左側では、ジグザグとインターネットの中を進んでいます。これはインターネットでは、様々なISPが存在しお互いに接続し合うことで、バケツリレーのように通信を届かせているためで、遅延が大きくなる要因です。
上図の右側では、まずAWSのエッジロケーションに通信が届き、その後はAWS ネットワーク内を直進することで、低遅延を実現しています。

詳説 AWS ネットワーキング2 CloudFront(ANS-C01試験対策)で解説したCloudFrontとの相違点は以下の通りです。

CloudFront Global Accelerator
プロトコル HTTP / HTTPS TCP / UDP
コンテンツキャッシュ ○ あり × なし
固定IP × なし ○ あり

CloudFontはHTTP/HTTPSに対応しておりWebコンテンツをキャシュ出来ますが、Global AcceleratorではTCP/UDPに対しての最適化のためキャッシュ機能はありません。また、Global Acceleratorでは固定IPを利用することができるため、ALBの固定IP化に使われることも多いです。

📌1.低遅延

前述のようにGlobal Acceleratorを様々なサービスの前段に配置することで、AWSネットワークを経由し低遅延な通信を実現できます。この"低遅延"がGlobal Acceleratorのほぼ全てです。
CloudFrontでも低遅延を提供することができますが、HTTP/HTTPSプロトコル以外には対応しておりません。アプリケーション層で独自のプロトコルを採用している場合、低遅延を実現するためにはGlobal Acceleratorが有力になります。

📌問題1ー1

あり企業で地震の瞬時警報システムを構築している。同社は、全国の地震計測用IoTデバイスが収集したデータを瞬時に、AWS上に構築された警報システムにできるだけ早く届かなければならない。

IoTデバイスでは低遅延を実現をするためにUDPプロトコルを利用している。警報システムは複数のAWSリージョン(東京・大阪)に展開されていおり、IoTデバイスからの通信の名前解決には、Amazon Route 53を使用している。なお、同社は特殊用途用プロバイダ非依存アドレスを持っている。

ネットワークエンジニアは、IoTデバイスとAWS上の警報システムの接続方式を設計する必要がある。
高可用性と低遅延を最も満たすソリューションはどれか。

  1. Amazon CloudFrontディストリビューションをセットアップする。オリジンフェイルオーバー機能を利用して、東京と大阪のフェールオーバーを実現する。
  2. Route 53のレイテンシーベースのルーティングを設定する。登録したレコードでターゲットのヘルスチェックを行う。
  3. AWS Global Acceleratorを設定する。東京・大阪のエンドポイントグループとヘルスチェックを設定する。
  4. BYOIP(Bring Your Own IP)アドレスを設定する。IoTデバイスで固定のIPに通信を行う。

📌解答1ー1

解答

3

複数選択のため選択肢ごとに正誤を判定します。

  1. Amazon CloudFrontディストリビューションをセットアップする。オリジンフェイルオーバー機能を利用して、東京と大阪のフェールオーバーを実現する。
    →不適切。UDPプロトコルを利用すると記載があるため、CloudFrontでは対応できない。
  2. Route 53のレイテンシーベースのルーティングを設定する。登録したレコードでターゲットのヘルスチェックを行う。
    →保留。Route 53のレイテンシベースルーティングで低遅延、ターゲットのヘルスチェックで可用性を実現できるが、他の選択肢により良いソリューションがないか確認する。
  3. AWS Global Acceleratorを設定する。東京・大阪のエンドポイントグループとヘルスチェックを設定する。
    →適切。Global Acceleratorを利用することで、AWSネットワークを通ることになり、2の選択肢よりも低遅延を実現できる。(Route 53はエッジロケーションに転送してくれるわけではない)また、ヘルスチェック機能を利用しており、可用性の要件も満たしている。
  4. BYOIP(Bring Your Own IP)アドレスを設定する。IoTデバイスで固定のIPに通信を行う。
    →不適切。自社で所有しているIPをAWSに持ち込むことはできるが、高可用性・低遅延の要件を満たすことはできない。

📌2.アプリケーションの保護

前述の通り「Global Acceleratorは様々なサービスの前段に配置する」サービスですが、以下のエンドポイントをサポートしています。Global Acceleratorコンテンツを提供する元を「エンドポイント」を言い、エンドポイントをまとめたものを「エンドポイントグループ」を言います。

  • Network Load Balancer
  • Application Load Balancer
  • Elastic IP address
  • Amazon EC2 instances

https://docs.aws.amazon.com/ja_jp/global-accelerator/latest/api/API_EndpointConfiguration.html#globalaccelerator-Type-EndpointConfiguration-EndpointId

これらのサービスの前段にGlobal Acceleratorを配置することで、低遅延だけではなく様々な攻撃をAWSマネージドサービスであるGlobal Acceleratorが引き受けて攻撃による侵入リスク低減することができます。

AWS Global Acceleratorのカスタムルーティングアクセラレータのご紹介 より引用

例えば、EC2インスタンスをパブリックサブネットに配置してサービスを提供している場合を考えてみましょう。上図ではEC2インスタンスが直接ユーザーのリクエストを受け付ける形で配置されています。この状態では、ポート開放のミス/Linuxの脆弱性をついた攻撃等をダイレクトに受けることになりセキュリティリスクが高い状態です。そのため、一般的には下図のようにGlobal Acceleratorを前段に配置することを検討します。

AWS Global Acceleratorのカスタムルーティングアクセラレータのご紹介 より引用

このようなアーキテクトに変更することで、EC2インスタンスをプライベートサブネットに移動させることができ、Global AcceleratorはEC2インスタンスへの接続をプライベートに確立できます。

📌問題2ー1

ある企業は、全世界の事務所の入退出管理システムをApplication Load Balancer(ALB)の背後にあるAmazon Elastic Container Service(Amazon ECS)で構築しています。入退出ゲートとアプリケーションへの通信はHTTPS経由で行われます。また、AWS Global Acceleratorを使用し、アプリケーションとの通信用に固定IPアドレスを構築することを計画しています。

アプリケーションへの通信は、Global Acceleratorを介してのみアクセス可能であり、ALBやECSのエンドポイントへインターネット経由で直接接続を行えることがあってはなりません。これらの要件を満たすソリューションはどれか。

  1. VPCのプライベートサブネットにALBとECSを配置します。ルートテーブルには、Internet Gatewayを指すようなルートを追加せずに、Internet Gatewayをアタッチします。エンドポイントをALBに指定し、Global Acceleratorを構成します。リスナーでインターネットからの80番ポートのみを許可するように構成します。
  2. VPCのプライベートサブネットにALBとECSを配置します。エンドポイントをALBに指定し、Global Acceleratorを構成します。リスナーでインターネットからの80番ポートのみを許可するように構成します。
  3. VPCのパブリックサブネットにALBを配置します。ルートテーブルには、Internet Gatewayを指すようなルートを追加し、Internet Gatewayをアタッチします。エンドポイントをALBに指定し、Global Acceleratorを構成します。リスナーでインターネットからの80番ポートのみを許可するように構成します。
  4. VPCのプライベートサブネットにALBとECSを配置します。ルートテーブルには、Internet Gatewayを指すようなルートを追加し、Internet Gatewayをアタッチします。エンドポイントをALBに指定し、Global Acceleratorを構成します。リスナーでインターネットからの80番ポートのみを許可するように構成します。

📌解答2ー1

解答

1

Discussion