【AWS SAP】AWS Global Acceleratorとは

# AWS Global Acceleratorとは
アプリケーションの**パフォーマンスを向上**させるためのネットワークサービスです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746730/5b108653-19aa-1b7b-9ef9-dac813cf2bb4.png)


## 使うと何が嬉しいのか
AWS Global Acceleratorを使えば、AWSの高速なネットワーク経由で最適なサーバーに接続されるため、遅延が減りスムーズに動きます。
（例えば、東京のユーザーがアメリカのアプリにアクセスするときはエンドポイントを介して最適に接続できます）

```mermaid
graph TD
    A[ユーザリクエスト] --> B[AWS Global Accelerator]
    B --> C{エンドポイント}
    C -->|エンドポイントA| D[低レイテンシーのエンドポイント]
    C -->|エンドポイントB| E[別リージョンのエンドポイント]
    C -->|エンドポイントC| F[オンプレミスのエンドポイント]
    D --> G[アプリケーションへ接続]
    E --> G[アプリケーションへ接続]
    F --> G[アプリケーションへ接続]

    subgraph AWSサービス
        B
        C
        D
        E
    end
    subgraph オンプレミス
        F
    end
```

## 必要な設定
| No | 設定項目                  | 必須/任意 | 説明                                                                                         | 例                                               |
|----|---------------------------|-----------|---------------------------------------------------------------------------------------------|-------------------------------------------------|
| 1  | アクセラレータ名           | **必須**      | アクセラレータを識別する名前                                                                 | MyGlobalAccelerator                             |
| 2  | IPアドレスタイプ           | **必須**      | 固定IPアドレスのタイプ（IPv4またはIPv6）                                                    | IPv4                                            |
| 3  | リスナープロトコル         | **必須**      | 通信プロトコル（HTTP、HTTPS、TCP、UDP）                                                     | TCP                                             |
| 4  | リスナーポート             | **必須**      | アプリケーションが使用するポート番号                                                        | 80                                              |
| 5  | トラフィックポリシー       | 任意      | トラフィックのルーティング方法を設定                                                        | 加重ルーティングなど                            |
| 6  | エンドポイントグループ地域 | **必須**      | アプリケーションがデプロイされているリージョン                                               | us-west-1                                       |
| 7  | ヘルスチェックプロトコル   | **必須**      | エンドポイントの正常性を確認するプロトコル                                                  | HTTP                                            |
| 8  | ヘルスチェックパス         | **必須**      | エンドポイントの正常性確認用URLパス                                                        | /healthcheck                                    |
| 9  | ヘルスチェックポート       | **必須**      | ヘルスチェックを行うポート番号                                                             | 80                                              |
| 10 | エンドポイントタイプ       | **必須**      | トラフィックを送るエンドポイントの種類                                                      | ALB、EC2、Elastic IP                           |
| 11 | エンドポイントID           | **必須**      | エンドポイントを特定するためのID                                                           | ALB ARN、EC2インスタンスIDなど                 |
| 12 | アクセラレータ有効化       | **必須**      | アクセラレータを有効化するかどうか                                                         | true                                            |

### 接続先

- 新規構築の場合:
    - **固定IPアドレス**と**DNS名**どちらかを接続先に設定する
    （DNS名例: **aaa123.globalaccelerator.amazonaws.com**）
　
- 既存ドメインに統合する場合:
    - DNS設定にCNAMEを追加する
        ```
        www.example.com. IN CNAME aaa123.globalaccelerator.amazonaws.com.
        ```

## まとめ
AWS Global Acceleratorは、アプリケーションの**パフォーマンス**と**可用性**を向上させるネットワークサービスです。AWSのグローバルネットワークを活用し、ユーザーリクエストを最適なエンドポイント（例: EC2、ALB、オンプレミス）にルーティングします。固定IPアドレスまたはDNS名が提供され、これによりエンドポイント変更時もクライアント側で設定を変更する必要がありません。また、ヘルスチェックに基づいて正常なエンドポイントを選択し、障害時には自動でトラフィックを切り替えます。これにより、低レイテンシーと高い可用性を実現します。