{"id":1288,"date":"2024-09-15T17:14:15","date_gmt":"2024-09-15T08:14:15","guid":{"rendered":"https:\/\/daba-no-heya.com\/?p=1288"},"modified":"2024-09-15T17:14:16","modified_gmt":"2024-09-15T08:14:16","slug":"post-1288","status":"publish","type":"post","link":"https:\/\/daba-no-heya.com\/?p=1288","title":{"rendered":"AWS\u306e\u30ea\u30fc\u30b8\u30e7\u30f3\u3068AZ\u306e\u4e00\u89a7\u3092\u4f5c\u6210\u3059\u308b"},"content":{"rendered":"\n<p>AWS\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3059\u308b\u3068\u304d\u306b\u30ea\u30fc\u30b8\u30e7\u30f3\u3068AZ (Availability Zone)\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3042\u308b\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u81ea\u5206\u306e\u74b0\u5883\u3067\u4f7f\u3048\u308b\u30ea\u30fc\u30b8\u30e7\u30f3\u3068AZ\u306e\u5177\u4f53\u7684\u306a\u5024\u304c\u308f\u304b\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u3001\u4eca\u56de\u306f\u305d\u306e\u4e00\u89a7\u3092\u4f5c\u6210\u3057\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/daba-no-heya.com\/?p=1288\/#AWS_CLI\" >AWS CLI<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/daba-no-heya.com\/?p=1288\/#AZ%E3%81%AE%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA\" >AZ\u306e\u4e00\u89a7\u8868\u793a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/daba-no-heya.com\/?p=1288\/#%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA\" >\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u4e00\u89a7\u8868\u793a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/daba-no-heya.com\/?p=1288\/#%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8BAZ%E3%81%AE%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA\" >\u7279\u5b9a\u306e\u30ea\u30fc\u30b8\u30e7\u30f3\u306b\u542b\u307e\u308c\u308bAZ\u306e\u4e00\u89a7\u8868\u793a<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/daba-no-heya.com\/?p=1288\/#Boto3_Python\" >Boto3 (Python)<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"AWS_CLI\"><\/span>AWS CLI<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws --version\naws-cli\/2.17.6 Python\/3.11.8 Linux\/6.8.0-40-generic exe\/x86_64.zorin.17<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"AZ%E3%81%AE%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA\"><\/span>AZ\u306e\u4e00\u89a7\u8868\u793a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u5404\u81ea\u306e\u74b0\u5883\u306b\u5408\u308f\u305b\u3066\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws ec2 describe-regions --profile dabansky-san | jq -r '.Regions&#91;].RegionName' \\\n> | xargs -I{} aws ec2 describe-availability-zones --region {} --profile dabansky-san | jq -r '.AvailabilityZones&#91;].ZoneName'\nap-south-1a\nap-south-1b\nap-south-1c\neu-north-1a\neu-north-1b\neu-north-1c\neu-west-3a\neu-west-3b\neu-west-3c\neu-west-2a\neu-west-2b\neu-west-2c\neu-west-1a\neu-west-1b\neu-west-1c\nap-northeast-3a\nap-northeast-3b\nap-northeast-3c\nap-northeast-2a\nap-northeast-2b\nap-northeast-2c\nap-northeast-2d\nap-northeast-1a\nap-northeast-1c\nap-northeast-1d\nca-central-1a\nca-central-1b\nca-central-1d\nsa-east-1a\nsa-east-1b\nsa-east-1c\nap-southeast-1a\nap-southeast-1b\nap-southeast-1c\nap-southeast-2a\nap-southeast-2b\nap-southeast-2c\neu-central-1a\neu-central-1b\neu-central-1c\nus-east-1a\nus-east-1b\nus-east-1c\nus-east-1d\nus-east-1e\nus-east-1f\nus-east-2a\nus-east-2b\nus-east-2c\nus-west-1a\nus-west-1c\nus-west-2a\nus-west-2b\nus-west-2c\nus-west-2d<\/code><\/pre>\n\n\n\n<p>\u5404\u30b3\u30de\u30f3\u30c9\u306b\u3064\u3044\u3066\u4ee5\u4e0b\u3067\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA\"><\/span>\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u4e00\u89a7\u8868\u793a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u4e00\u89a7\u306f<code>aws ec2 describe-regions<\/code>\u3067\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws ec2 describe-regions --profile dabansky-san\n{\n    \"Regions\": &#91;\n        {\n            \"Endpoint\": \"ec2.ap-south-1.amazonaws.com\",\n            \"RegionName\": \"ap-south-1\",\n            \"OptInStatus\": \"opt-in-not-required\"\n        },\n        {\n            \"Endpoint\": \"ec2.eu-north-1.amazonaws.com\",\n            \"RegionName\": \"eu-north-1\",\n            \"OptInStatus\": \"opt-in-not-required\"\n        },\n        {\n            \"Endpoint\": \"ec2.eu-west-3.amazonaws.com\",\n            \"RegionName\": \"eu-west-3\",\n            \"OptInStatus\": \"opt-in-not-required\"\n        },<\/code><\/pre>\n\n\n\n<p>jq\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3063\u3066<code>RegionName<\/code>\u3060\u3051\u53d6\u308a\u51fa\u305b\u3070\u3088\u3055\u305d\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws ec2 describe-regions --profile dabansky-san | jq -r '.Regions&#91;].RegionName'\nap-south-1\neu-north-1\neu-west-3\neu-west-2\neu-west-1\nap-northeast-3\nap-northeast-2\nap-northeast-1\nca-central-1\nsa-east-1\nap-southeast-1\nap-southeast-2\neu-central-1\nus-east-1\nus-east-2\nus-west-1\nus-west-2<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8BAZ%E3%81%AE%E4%B8%80%E8%A6%A7%E8%A1%A8%E7%A4%BA\"><\/span>\u7279\u5b9a\u306e\u30ea\u30fc\u30b8\u30e7\u30f3\u306b\u542b\u307e\u308c\u308bAZ\u306e\u4e00\u89a7\u8868\u793a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u7279\u5b9a\u306e\u30ea\u30fc\u30b8\u30e7\u30f3\u306b\u542b\u307e\u308c\u308bAZ\u306e\u4e00\u89a7\u306f<code>aws ec2 describe-availability-zones<\/code>\u3067\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws ec2 describe-availability-zones --region ap-northeast-1 --profile dabansky-san\n{\n    \"AvailabilityZones\": &#91;\n        {\n            \"State\": \"available\",\n            \"OptInStatus\": \"opt-in-not-required\",\n            \"Messages\": &#91;],\n            \"RegionName\": \"ap-northeast-1\",\n            \"ZoneName\": \"ap-northeast-1a\",\n            \"ZoneId\": \"apne1-az4\",\n            \"GroupName\": \"ap-northeast-1\",\n            \"NetworkBorderGroup\": \"ap-northeast-1\",\n            \"ZoneType\": \"availability-zone\"\n        },\n        {\n            \"State\": \"available\",\n            \"OptInStatus\": \"opt-in-not-required\",\n            \"Messages\": &#91;],\n            \"RegionName\": \"ap-northeast-1\",\n            \"ZoneName\": \"ap-northeast-1c\",\n            \"ZoneId\": \"apne1-az1\",\n            \"GroupName\": \"ap-northeast-1\",\n            \"NetworkBorderGroup\": \"ap-northeast-1\",\n            \"ZoneType\": \"availability-zone\"\n        },\n        {\n            \"State\": \"available\",\n            \"OptInStatus\": \"opt-in-not-required\",\n            \"Messages\": &#91;],\n            \"RegionName\": \"ap-northeast-1\",\n            \"ZoneName\": \"ap-northeast-1d\",\n            \"ZoneId\": \"apne1-az2\",\n            \"GroupName\": \"ap-northeast-1\",\n            \"NetworkBorderGroup\": \"ap-northeast-1\",\n            \"ZoneType\": \"availability-zone\"\n        }\n    ]\n}<\/code><\/pre>\n\n\n\n<p><code>ZoneName<\/code>\u3060\u3051\u53d6\u308a\u51fa\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws ec2 describe-availability-zones --region ap-northeast-1 --profile dabansky-san | jq -r '.AvailabilityZones&#91;].ZoneName'\nap-northeast-1a\nap-northeast-1c\nap-northeast-1d<\/code><\/pre>\n\n\n\n<p>\u6700\u521d\u306b\u63b2\u8f09\u3057\u305f\u30b3\u30de\u30f3\u30c9\u3067\u306f\u3001<code>aws ec2 describe-regions<\/code>\u3067\u53d6\u5f97\u3057\u305f\u5404\u30ea\u30fc\u30b8\u30e7\u30f3\u540d\u3092xargs\u3067<code>aws ec2 describe-availability-zones<\/code>\u306e<code>--region<\/code>\u306b\u6e21\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ aws ec2 describe-regions --profile dabansky-san | jq -r '.Regions&#91;].RegionName' \\\n> | xargs -I{} aws ec2 describe-availability-zones --region {} --profile dabansky-san | jq -r '.AvailabilityZones&#91;].ZoneName'<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Boto3_Python\"><\/span>Boto3 (Python)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Boto3\u306fPython\u3067\u4f7f\u3048\u308bAWS SDK\u3067\u3059\u3002<br>Boto3\u3092\u4f7f\u3063\u3066AZ\u306e\u4e00\u89a7\u3092\u4f5c\u6210\u3057\u3001JSON\u5f62\u5f0f\u3067\u51fa\u529b\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ python -V\nPython 3.10.12\n\n$ pip freeze\nboto3==1.35.19\nbotocore==1.35.19\njmespath==1.0.1\npython-dateutil==2.9.0.post0\ns3transfer==0.10.2\nsix==1.16.0\nurllib3==2.2.3<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-luxe-blocks-syntaxhighlighter line-numbers language-python\"><code class=\"language-python\">import boto3\nimport json\n\ndef main():\n    #\u5229\u7528\u53ef\u80fd\u306a\u30ea\u30fc\u30b8\u30e7\u30f3\u306e\u540d\u524d\u3092\u53d6\u5f97\u3059\u308b\n    session=boto3.Session(profile_name=\"dabansky-san\")\n    ec2_client=session.client(\"ec2\")\n\n    response=ec2_client.describe_regions()\n    \n    region_names:list[str]=[]\n    for region in response[\"Regions\"]:\n        region_name=region[\"RegionName\"]\n        region_names.append(region_name)\n\n    #\u5404\u30ea\u30fc\u30b8\u30e7\u30f3\u306b\u542b\u307e\u308c\u308bAZ\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\n    az_infos:list[dict]=[]\n\n    for region_name in region_names:\n        session=boto3.Session(profile_name=\"dabansky-san\",region_name=region_name)\n        ec2_client=session.client(\"ec2\")\n        response=ec2_client.describe_availability_zones()\n\n        azs=response[\"AvailabilityZones\"]\n        for az in azs:\n            az_info={\n                \"regionName\": az[\"RegionName\"],\n                \"zoneName\": az[\"ZoneName\"],\n                \"zoneId\": az[\"ZoneId\"]\n            }\n            az_infos.append(az_info)\n\n    #\u7d50\u679c\u3092JSON\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3059\u308b\n    with open(\"availability_zones.json\",\"w\",encoding=\"utf-8\") as w:\n        json.dump(az_infos,w)\n\nif __name__==\"__main__\":\n    main()<\/code><\/pre>\n\n\n\n<p>\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u540d\u3084\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u5f15\u6570\u3067\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u4fbf\u5229\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3059\u308b\u3068\u304d\u306b\u30ea\u30fc\u30b8\u30e7\u30f3\u3068AZ (Availability Zone)\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3042\u308b\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u81ea\u5206\u306e\u74b0\u5883\u3067\u4f7f\u3048\u308b\u30ea\u30fc\u30b8\u30e7\u30f3\u3068AZ\u306e\u5177\u4f53\u7684\u306a\u5024\u304c\u308f\u304b\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u3001\u4eca\u56de\u306f\u305d\u306e\u4e00\u89a7\u3092\u4f5c\u6210\u3057\u3066\u307f\u308b\u3053 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[],"class_list":["post-1288","post","type-post","status-publish","format-standard","hentry","category-aws"],"_links":{"self":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts\/1288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1288"}],"version-history":[{"count":1,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts\/1288\/revisions"}],"predecessor-version":[{"id":1289,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts\/1288\/revisions\/1289"}],"wp:attachment":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}