AWS Global Acceleratorを試してみる

##はじめに
AWS Global Acceleratorが発表になりましたので試してみます。
https://aws.amazon.com/jp/blogs/news/new-aws-global-accelerator/

###概要
複数リージョンにアクセス可能な固定エニーキャストアドレスを提供する
クライアントに最も近いAWSエッジロケーションを経由して、アプリケーションにアクセスする
AWS Global Accelerator配下に、ALB/NLB/EIPを登録することが可能

##試してみる
ALB配下にLambdaを登録できるようになったのでこちらも合わせて確認したいと思います。
https://aws.amazon.com/jp/blogs/news/lambda-functions-as-targets-for-application-load-balancers/

###テスト構成

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/afc461e7-b7ef-11d1-1633-e78090125eb8.png)

###バックエンドの準備　※２リージョンで実施する。今回はTokyoとOregon
Lambda関数を作成する

```python
def lambda_handler(event, context):
    response = {
       "statusCode": 200,
       "statusDescription": "200 OK",
       "isBase64Encoded": False,
       "headers": {
           "Content-Type": "text/html; charset=utf-8"
        }
    }

    response['body'] = """<html>
    <head>
    <title>Hello World!</title>
    <style>
    html, body {
       margin: 0; padding: 0;
       font-family: arial; font-weight: 700; font-size: 3em;
       text-align: center;
    }
    </style>
    </head>
       <body>
          <p>Hello Tokyo or Oregon</p>
      </body>
    </html>"""
    return response
```
以下のBlog記事より転載
https://aws.amazon.com/jp/blogs/news/lambda-functions-as-targets-for-application-load-balancers/

ALBを作成する
TargetGroupでLambda関数を指定する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/b11c6abf-3a68-08cc-3532-c8866b53c919.png)

先程作成したLambda関数を指定する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/d7f315e3-738a-f7a5-fc85-ced438820e38.png)

###AWS Global Accelerator作成
Global Acceleratorをクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/577f0d6a-ee00-5b88-8fa6-4ef9713389ad.png)

Create acceleratorをクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/ea6780f3-7ed1-c752-141b-45c8f21d0249.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/0bde401d-8041-d808-8047-357387cf0250.png)

Listenerを登録します
Client affinityは、ソースIPアドレスを元に同じクライアントからのアクセスは、同じエンドポイントにルーティングする機能です
https://docs.aws.amazon.com/ja_jp/global-accelerator/latest/dg/about-listeners-client-affinity.html

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/205d3c1a-0a90-1b16-21ba-9d17c65877ce.png)

OregonとTokyoにエンドポイントグループを作成する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/740baa13-d368-9535-4032-49ff078e9d4e.png)

エンドポイントを作成する
Add endpointをクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/6b576cd5-222e-be93-4f89-8287ac7ab307.png)

作成してALBを指定する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/ecf35e3f-e2cd-ba9f-0180-445a3aac678b.png)

２つのIPアドレスが付与される
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/6bd61b20-353b-3657-bb78-09ca5ce018cf.png)

###接続確認実施
東京のクライアントからアクセス
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/48fb1211-d1ed-845d-a3f0-ea45500d26e4.png)

オレゴンのクライアントからアクセス
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/6e6ea11b-4371-a4b0-1260-4cfce92e6881.png)


##落ち穂拾い
落ち穂拾いとして、Internet facing/Internal ALBとVPC内/外Lambdaの組み合わせパターンについても確認しました。
**こちらは、ALB+lambdaの単体の確認でありAWS Global Acceleratorは前段に置いた構成ではありません。**
結論として、以下の全パターンでALB経由でLambdaを実行可能でした。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/ff8f99bf-615a-cba1-ef85-0b373f42d769.png)

##お約束
投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。