【AWS図解】ユースケース別に見るグローバルネットワークサービス

# 記事の背景
AWSのグローバルネットワーキングの話が出てくるときに毎度ややこしいな～と思うので、一回ちゃんとまとめたいという願望です（笑）

# それぞれのサービス概要
AWSのグローバルネットワークのサービスといえばCloudFront、Route53、Global Acceleratorかなと思うので、
それぞれ概要をまとめます。
## CloudFront
>Amazon CloudFront は、ユーザーへの静的および動的なウェブコンテンツ (.html、.css、.js、イメージファイルなど) の配信を高速化するウェブサービスです。


そもそもこれらのサービスを使わずとも、EC2インスタンスなりS3なりにURL使ってアクセスすりゃいいんじゃないの？って思われる方もいるかもしれません。
しかし、このようにすると、裏では複数のネットワークを経由していて、通信速度はあまりよくないです。

そこで、AWSが所有するネットワークを使用してルーティングすることで、複数のネットワークを経由することなく通信を行い、通信速度を向上させます。
![cloudfront.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/af6d2081-8f8d-be1c-4a81-10045790283a.png)

さらにエッジロケーションにキャッシュを持たせることで、コンテンツの取得を高速化させます。
## Route53（ホストゾーン）
>Amazon Route 53 は、可用性と拡張性に優れたドメインネームシステム (DNS) ウェブサービスです。Route 53 を使用すると、ドメイン登録、DNS ルーティング、ヘルスチェックの 3 つの主要な機能を任意の組み合わせで実行できます。

こちらはDNSのサービスですね。
例えば、index.test.comというURLのサイトにアクセスしたいとなったら、そのリクエストを受け取って、対応するIPアドレスを返してくれる。というようなものですね。
![route53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/a86ec380-9974-c926-9262-5ffb995ff1f8.png)

## Global Accelerator
>アマゾン ウェブ サービスのグローバルネットワークインフラを利用して、ユーザーのトラフィックのパフォーマンスを最大 60％ 向上させるネットワーキングサービスです。

グローバルなアプリケーションを構築する際に使用されますね。

バックボーン自体はCloudFrontとあまり変わらないんですね
（Global AcceleratorはS3には対応していない）
![ga.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/e88371e3-50e8-bd72-23c5-411cbd0c6d6b.png)


# ユースケース
CloudFrontとGlobal Acceleratorがややこしいので、公式のユースケースを絵にしてみました！
イメージは沸いてきた気がする…！

## CloudFront
### 静的ウェブサイトのコンテンツ配信の加速
世界中のビューワーへの静的コンテンツの配信を高速化します。
![cloudfront2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/8c949fbc-149c-4d73-6866-25ee4a8f26c8.png)

### オンデマンドビデオおよびライブストリーミングビデオの配信
AmazonCloudFrontとAWSMediaServicesを使用して簡単にビデオ配信、ライブ配信が可能になります。
![cloudfront3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/3b2fa784-5cbf-0d25-4890-d931e4389937.png)
参考：https://aws.amazon.com/jp/blogs/media/using-amazon-cloudfront-and-aws-media-services/

### システム処理全体で特定のフィールドを暗号化する
フィールドレベルの暗号化を行うことで、特定のマイクロサービス（サブシステム）のみが機密情報を復号化することが可能になります。
![cloudfront4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/78876174-b7c7-3b58-2933-2ca4e216e7a1.png)


### エッジのカスタマイズ
エッジでサーバーレスコードを実行することで、「オリジンサーバーがダウンしている場合はカスタムエラーページを表示する。」「ユーザー認証を実装する」などが可能となります。
![cloudfront5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/d942304b-ea71-a27c-9e71-efc82340b6dd.png)

### Lambda@Edge カスタマイズを使用したプライベートコンテンツの供給
エッジのカスタマイズを応用して、特定のユーザーにのみ配信することが可能です！
→　図はエッジのカスタマイズと同じなのでスキップします。

## Global Accelerator
### アプリケーション使用率の向上のための拡張性
アプリケーションが拡大していくと、管理するIPアドレスとエンドポイントが増えていきますね。Global Acceleratorは2つの静的IPアドレスをエンドポイントと関連付けることで、この問題を解決します！
![global_accelerator2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/fbed1188-17a0-8ea2-3775-9b14c4dbdb93.png)


### レイテンシーに敏感なアプリケーション向けのアクセラレーション
ゲームなどの優れたユーザーエクスペリエンスを実現するための、非常に低いレイテンシを提供します。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/db534dc5-8eb0-1481-36fb-4d8fc0561e57.png)

### ディザスタリカバリとマルチリージョンの耐障害性
Global Acceleratorはリージョン間のDRに対応しています。
![global_accelerator4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/815d8b21-eca3-4a57-f9dc-c57268295ad2.png)

### アプリケーションの保護
・アプリケーションエンドポイントをパブリックネットワークに公開しない！
・デフォルトでAWS Shieldを使用してDDoSをブロック！　←これはCloudFrontも同様ですね！
![global_accelerator5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/19c0301d-5f65-2c5f-38ac-fd6582f7e275.png)

### VoIPまたはオンラインゲームアプリケーションのパフォーマンスを向上
バトルロワイヤルのような複数のプレイヤーが1つのセッションに参加するアプリケーションでレイテンシーを削減します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1123830/18295eca-89a0-2dc1-734a-9702e16ee12a.png)
参照：https://aws.amazon.com/jp/blogs/news/introducing-aws-global-accelerator-custom-routing-accelerators/

# まとめ
今回は個人的に違いをあまり理解できていなかった、AWSのグローバルネットワークについてユースケースで比較してみました。
やはり、文章だけ読んでいると、いまいち理解できないな～ということが多いので、こういった形で図に書き起こしてみるのは理解につながりますね！
（最後の画像は拝借しましたが…）
間違ってるところがあれば、教えてください！

Global Acceleratorなんかはあまり聞かないサービスですが、SAA-C02ではしっかり試験範囲に入っているので、
概要だけでもつかんでおくと、いいですね！