LoginSignup
0
0

More than 3 years have passed since last update.

AWS CLI でGlobalAccelerator作成

Posted at

公式ドキュメント

前提条件

AWS CLIバージョン

以下のバージョンで動作確認済
* AWS CLI 1.18.127

コマンド
aws --version
結果
aws-cli/1.18.127 Python/3.6.12 Linux/4.14.193-113.317.amzn1.x86_64 botocore/1.17.50

ALB

既に作成済であること

AWS CLI

アクセラレータの作成

コマンド
# GA_NAME={アクセラレータ名}
# aws globalaccelerator create-accelerator --region us-west-2 --name ${GA_NAME}

結果
{
    "Accelerator": {
        "AcceleratorArn": "arn:aws:globalaccelerator::*******:accelerator/*******",
        "Name": "*******",
        "IpAddressType": "IPV4",
        "Enabled": true,
        "IpSets": [
            {
                "IpFamily": "IPv4",
                "IpAddresses": [
                    "*******",
                    "*******"
                ]
            }
        ],
        "DnsName": "*******.awsglobalaccelerator.com",
        "Status": "IN_PROGRESS",
        "CreatedTime": *******
        "LastModifiedTime": *******
    }
}

リスナーの作成

本手順ではTCP80および443を指定

コマンド
# GA_ARN=$(aws globalaccelerator list-accelerators --region us-west-2 --query Accelerators[?Name==\`${GA_NAME}\`].AcceleratorArn --output text) && echo ${GA_ARN}
# aws globalaccelerator create-listener --region us-west-2 --port-ranges FromPort=80,ToPort=80 FromPort=443,ToPort=443 --protocol TCP
結果
{
    "Listener": {
        "ListenerArn": "arn:aws:globalaccelerator::*******:accelerator/*******/listener/*******",
        "PortRanges": [
            {
                "FromPort": 80,
                "ToPort": 80
            },
            {
                "FromPort": 443,
                "ToPort": 443
            }
        ],
        "Protocol": "TCP",
        "ClientAffinity": "NONE"
    }
}

エンドポイントグループの作成

コマンド
# GA_LISTENER_ARN=`aws globalaccelerator list-listeners --accelerator-arn ${GA_ARN} --region us-west-2 --query Listeners[].ListenerArn --output text` && echo ${GA_LISTENER_ARN}
# GA_ENDGROUPREGION="ap-northeast-1"
# aws globalaccelerator create-endpoint-group --region us-west-2 --endpoint-group-region ${GA_ENDGROUPREGION}
結果
{
    "EndpointGroup": {
        "EndpointGroupArn": "arn:aws:globalaccelerator::*******:accelerator/*******/listener/*******/endpoint-group/*******",
        "EndpointGroupRegion": "ap-northeast-1",
        "EndpointDescriptions": [],
        "TrafficDialPercentage": 100.0,
        "HealthCheckPort": 80,
        "HealthCheckProtocol": "TCP",
        "HealthCheckIntervalSeconds": 30,
        "ThresholdCount": 3
    }
}

エンドポイントグループへエンドポイント追加

作成済のALBをエンドポイントに追加

コマンド
# GA_ENDPOINTGROUP_ARN=`aws globalaccelerator list-endpoint-groups  --listener-arn ${GA_LISTENER_ARN} --region us-west-2 --query EndpointGroups[].EndpointGroupArn --output text` && echo ${GA_ENDPOINTGROUP_ARN}
# ALB_NAME={ALB名}
# GA_ENDPOINT_ARN=$(aws elbv2 describe-load-balancers --query "LoadBalancers[?LoadBalancerName==\`${ALB_NAME}\`].LoadBalancerArn"  --output text) && echo ${GA_ENDPOINT_ARN}
# aws globalaccelerator update-endpoint-group --region us-west-2 --endpoint-group-arn ${GA_ENDPOINTGROUP_ARN} --endpoint-configurations EndpointId=${GA_ENDPOINT_ARN},Weight=128
結果
{
    "EndpointGroup": {
        "EndpointGroupArn": "arn:aws:globalaccelerator::*******:accelerator/*******/listener/*******/endpoint-group/*******",
        "EndpointGroupRegion": "ap-northeast-1",
        "EndpointDescriptions": [
            {
                "EndpointId": "arn:aws:elasticloadbalancing:ap-northeast-1:*******:loadbalancer/app/{ELB名}/*******",
                "Weight": 128,
                "HealthState": "HEALTHY",
                "ClientIPPreservationEnabled": true
            }
        ],
        "TrafficDialPercentage": 100.0,
        "HealthCheckPort": 80,
        "HealthCheckProtocol": "TCP",
        "HealthCheckIntervalSeconds": 30,
        "ThresholdCount": 3
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0