日々是精進。(はてな館)

日々ネットで調べたり、付箋に書き留めたものをアップしています。子育てで中断しながらも、年に数回投稿しています。皆様の恩恵に感謝しつつ。

20190810 AWSちょこちょこ。(aws cli)

シンプルに書き続ける方針で。はてなの記事、32本目になります。 今回は、AWSのおさらいをしていて、こまごましたものを書き留めます。(なので、随時追加するかもしれません)

アベイラビリティゾーンになにが使えるか知りたい

VPCでサブネットを作成する際に、アベイラビリティゾーンの指定が必要になります。 こちらは、リージョンによって異なっていたりします。

AWSコンソールではなくTerraformやCLI から操作する場合、「なにが使えるんだっけ?」となるので、念のため確認をしてみます。

  • aws cliのデフォルトのプロファイルでap-northeast-1(東京)を設定しているので、以下のコマンドでは東京リージョンに関しての結果が返ります。
$ aws ec2 describe-availability-zones 
{
    "AvailabilityZones": [
        {
            "State": "available",
            "Messages": [],
            "RegionName": "ap-northeast-1",
            "ZoneName": "ap-northeast-1a",
            "ZoneId": "apne1-az4"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "ap-northeast-1",
            "ZoneName": "ap-northeast-1c",
            "ZoneId": "apne1-az1"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "ap-northeast-1",
            "ZoneName": "ap-northeast-1d",
            "ZoneId": "apne1-az2"
        }
    ]
}

リージョン指定の場合はこう。(exp. us-east-1)

$ aws ec2 describe-availability-zones --region=us-east-1
{
    "AvailabilityZones": [
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1a",
            "ZoneId": "use1-az6"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1b",
            "ZoneId": "use1-az1"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1c",
            "ZoneId": "use1-az2"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1d",
            "ZoneId": "use1-az4"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1e",
            "ZoneId": "use1-az3"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-east-1",
            "ZoneName": "us-east-1f",
            "ZoneId": "use1-az5"
        }
    ]
}

今日も大好きWireshark

さて、aws cliコマンドは、AWSAPIを叩いて結果を取得するので、通信が発生します。さすがにTLSになるはずなので、ついでにキャプチャを眺めてみます。

IP指定で54.239.28.168と接続をしています。 SSL/TLSの通信を始める前のやりとり(ハンドシェイクなども見受けられます)

f:id:akiko-pusu:20190810145605p:plain
AWC CLIでの操作時のキャプチャをしてみよう。

キャプチャではCertificate (サーバ側からの証明書が送られてきたところ)の処理をちょっと見てみます。 issuerのところに、Amazon という文字が見えますね。

やはり念のため接続先の確認

証明書だけでなく、やりとりしているIPはAmazonなの?というあたりもついでに眺めてみます。 dignslookupコマンドだと、FQDNが返ってこない....。

ということで、whoisで見てみます。 一部だけ抽出してみると、たしかに Amazon Technologies Inc. と出てきました。

$ whois 54.239.28.168 | grep -B 3 -A 4 Organization
Parent:         NET54 (NET-54-0-0-0-0)
NetType:        Direct Allocation
OriginAS:       AS16509
Organization:   Amazon Technologies Inc. (AT-88-Z)
RegDate:        2012-03-01
Updated:        2012-04-02
Ref:            https://rdap.arin.net/registry/ip/54.224.0.0

今日もこんな感じでちょこちょこと。