AWS Black Belt Online Seminar 20に関するmatsuuZatsuのブックマーク

[AWS Black Belt Online Seminar 2018] Amazon VPC:レポート #AWSBlackBelt | Developers.IO · 13 users · dev.classmethod.jp · テクノロジー · こんにちは、菊池です。 2018年4月18日(水)のAWS Black Belt Online Seminar を聴講しましたので、レポートします。 今回はAWSのもっとも基本的なサービスの1 … 続きを読む

AWS入門者がVPCのウェビナーを受けてみた!(其の②)

IT未経験、前職はトラック運転手として日々配達をしていたDreamです。 はじめに. VPCについてウェビナーを受講した際のメモの「其の②」です。 前回の其の①と合わせて読んでいただくとVPCウェビナー1回分になります。 ウェビナー受講メモ. その①に引き続き受講したウェビナーは以下になります。 【Amazon VPC オン … 続きを読む

AWSの料金表を自動作成したい

AWS の料金一覧画面から Google スプレッドシートに値をコピペするのに疲れたので、なんとか EC2 の料金表を自動生成できないかと思いました。試行錯誤の結果、ようやくデータ構造までは把握できました。

AWS Price List Service API

AWS Price List Service API (AWS Price List Service)で AWS の料金データを取得できます。今回は取っ掛かりとして AWS CLI を使うので、Pricing サブコマンドでやることになります。

この API は、使えるエンドポイントが以下に限られます。

このため、.aws/config は以下のようにしています。

$ cat .aws/config
[default]
output = json
region = us-east-1

Pricing で使えるサブコマンドは、以下の3種類です。

サブコマンド名 機能
describe-services サービスとその属性名の一覧
get-attribute-values サービス毎の属性値の一覧
get-products 価格の一覧

describe-services

describe-services を何も指定せずに呼び出すと、サービスとその属性名の一覧がずらずらと表示されます。なお便宜上、(JSONではなく)テキスト形式で出力しています。

$ aws pricing describe-services --output=text | head -5
SERVICES        AWSBudgets
ATTRIBUTENAMES  productFamily
ATTRIBUTENAMES  servicecode
ATTRIBUTENAMES  groupDescription
ATTRIBUTENAMES  termType

いろんなサービスがありますね。。

$ aws pricing describe-services --output=text | grep ^SERVICES | wc -l
92
$ aws pricing describe-services --output=text | grep ^SERVICES | head -5
SERVICES        AWSBudgets
SERVICES        AWSCloudTrail
SERVICES        AWSCodeCommit
SERVICES        AWSCodeDeploy
SERVICES        AWSCodePipeline

今回目的とするサービス(EC2)の正式なサービス名を調べます。

$ aws pricing describe-services --output=text | grep -i ec2
SERVICES        AmazonEC2

これ以降は、コマンドを発行する際にサービスコードを明示することで、なるべくデータ量を減らすようにします。

AmazonEC2 サービスで使えそうな属性名の候補を調べます。

$ aws pricing describe-services --output=text --service-code AmazonEC2 | wc -l
62
$ aws pricing describe-services --output=text --service-code AmazonEC2 | 
  grep -Ei '(type|cpu|ecu|memory)'
ATTRIBUTENAMES  volumeType
ATTRIBUTENAMES  locationType
ATTRIBUTENAMES  ecu
ATTRIBUTENAMES  gpuMemory
ATTRIBUTENAMES  elasticGpuType
ATTRIBUTENAMES  memory
ATTRIBUTENAMES  vcpu
ATTRIBUTENAMES  termType
ATTRIBUTENAMES  instanceType
ATTRIBUTENAMES  usagetype

AmazonEC2 に限っても、ATTRIBUTENAME(属性名)だけで 62 個もある…。

get-attribute-values

次に “instanceType” という属性名に着目して、その属性値の候補を取得します。

$ aws pricing get-attribute-values --output=text --service-code AmazonEC2 
  --attribute-name instanceType | wc -l
122
$ aws pricing get-attribute-values --output=text --service-code AmazonEC2 
    --attribute-name instanceType | grep -E 't[12]'
ATTRIBUTEVALUES t1.micro
ATTRIBUTEVALUES t2.2xlarge
ATTRIBUTEVALUES t2.large
ATTRIBUTEVALUES t2.medium
ATTRIBUTEVALUES t2.micro
ATTRIBUTEVALUES t2.nano
ATTRIBUTEVALUES t2.small
ATTRIBUTEVALUES t2.xlarge

インスタンスタイプだけで 122 個…。この調子ですべての組み合わせを表示しようとすると、表のサイズが爆発するのは明白です。API サーバにも無意味に負荷をかけそうなので、最初はとりあえず t1.micro の Linux インスタンス(かつ東京リージョンのみ)に絞ってやってみています。

get-products

このサブコマンドで価格の値が取れるのですが、そのままでは使い勝手がよくありません。

$ aws pricing get-products --service-code AmazonEC2  
  --filters Type=TERM_MATCH,Field=instanceType,Value=t1.micro 
            Type=TERM_MATCH,Field=operatingSystem,Value=Linux 
            'Type=TERM_MATCH,Field=location,Value=Asia Pacific (Tokyo)' 
  > t1-micro-linux-tokyo.txt
$ cat t1-micro-linux-tokyo.txt
{
    "PriceList": [
        "{"product":{"productFamily":"Compute Instance","attributes":{"memory(以下、死ぬほど長い文字列)...

jq というコマンドを通すといい感じに整形してくれるらしいのですが、どうもうまくパースしてくれません。いろいろと試してみたところ、配列の中身全体が “” で囲まれているのが問題のようです。ということで、この引用符を外してやると、うまく見えるようになりました。ついでにバックスラッシュも外します。

$ cat t1-micro-linux-tokyo.txt | 
  sed -e 's/\//g' -e 's/"{/{/g' -e 's/}"/}/g' | 
  jq
{
  "PriceList": [
    {
      "product": {
        "productFamily": "Compute Instance",
        "attributes": {
          "memory": "0.613 GiB",
          "vcpu": "1",
          "instanceType": "t1.micro",
          "tenancy": "Shared",
          "usagetype": "APN1-BoxUsage:t1.micro",
          "locationType": "AWS Region",
          "storage": "EBS only",
          "normalizationSizeFactor": "0.5",
          "instanceFamily": "Micro instances",
          "operatingSystem": "Linux",
          "servicecode": "AmazonEC2",
          "physicalProcessor": "Variable",
          "licenseModel": "No License required",
          "ecu": "Variable",
          "currentGeneration": "No",
          "preInstalledSw": "NA",
          "networkPerformance": "Very Low",
          "location": "Asia Pacific (Tokyo)",
          "servicename": "Amazon Elastic Compute Cloud",
          "processorArchitecture": "32-bit or 64-bit",
          "operation": "RunInstances"
        },
        "sku": "ERVWZ4V3UBYH4NQH"
      },
      "serviceCode": "AmazonEC2",
      "terms": {
        "OnDemand": {
          "ERVWZ4V3UBYH4NQH.JRTCKXETXF": {
            "priceDimensions": {
              "ERVWZ4V3UBYH4NQH.JRTCKXETXF.6YS6EN2CT7": {
                "unit": "Hrs",
                "endRange": "Inf",
                "description": "$0.026 per On Demand Linux t1.micro Instance Hour",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.JRTCKXETXF.6YS6EN2CT7",
                "beginRange": "0",
                "pricePerUnit": {
                  "USD": "0.0260000000"
                }
              }
            },
            "sku": "ERVWZ4V3UBYH4NQH",
            "effectiveDate": "2017-12-01T00:00:00Z",
            "offerTermCode": "JRTCKXETXF",
            "termAttributes": {}
          }
        },
        "Reserved": {
          "ERVWZ4V3UBYH4NQH.NQ3QZPMQV9": {
            "priceDimensions": {
              "ERVWZ4V3UBYH4NQH.NQ3QZPMQV9.2TG2D8R56U": {
                "unit": "Quantity",
                "description": "Upfront Fee",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.NQ3QZPMQV9.2TG2D8R56U",
                "pricePerUnit": {
                  "USD": "316"
                }
              },
              "ERVWZ4V3UBYH4NQH.NQ3QZPMQV9.6YS6EN2CT7": {
                "unit": "Hrs",
                "endRange": "Inf",
                "description": "USD 0.0 per Linux/UNIX (Amazon VPC), t1.micro reserved instance applied",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.NQ3QZPMQV9.6YS6EN2CT7",
                "beginRange": "0",
                "pricePerUnit": {
                  "USD": "0.0000000000"
                }
              }
            },
            "sku": "ERVWZ4V3UBYH4NQH",
            "effectiveDate": "2015-04-30T23:59:59Z",
            "offerTermCode": "NQ3QZPMQV9",
            "termAttributes": {
              "LeaseContractLength": "3yr",
              "OfferingClass": "standard",
              "PurchaseOption": "All Upfront"
            }
          },
          "ERVWZ4V3UBYH4NQH.6QCMYABX3D": {
            "priceDimensions": {
              "ERVWZ4V3UBYH4NQH.6QCMYABX3D.2TG2D8R56U": {
                "unit": "Quantity",
                "description": "Upfront Fee",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.6QCMYABX3D.2TG2D8R56U",
                "pricePerUnit": {
                  "USD": "138"
                }
              },
              "ERVWZ4V3UBYH4NQH.6QCMYABX3D.6YS6EN2CT7": {
                "unit": "Hrs",
                "endRange": "Inf",
                "description": "USD 0.0 per Linux/UNIX (Amazon VPC), t1.micro reserved instance applied",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.6QCMYABX3D.6YS6EN2CT7",
                "beginRange": "0",
                "pricePerUnit": {
                  "USD": "0.0000000000"
                }
              }
            },
            "sku": "ERVWZ4V3UBYH4NQH",
            "effectiveDate": "2015-04-30T23:59:59Z",
            "offerTermCode": "6QCMYABX3D",
            "termAttributes": {
              "LeaseContractLength": "1yr",
              "OfferingClass": "standard",
              "PurchaseOption": "All Upfront"
            }
          },
          "ERVWZ4V3UBYH4NQH.38NPMPTW36": {
            "priceDimensions": {
              "ERVWZ4V3UBYH4NQH.38NPMPTW36.2TG2D8R56U": {
                "unit": "Quantity",
                "description": "Upfront Fee",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.38NPMPTW36.2TG2D8R56U",
                "pricePerUnit": {
                  "USD": "100"
                }
              },
              "ERVWZ4V3UBYH4NQH.38NPMPTW36.6YS6EN2CT7": {
                "unit": "Hrs",
                "endRange": "Inf",
                "description": "Linux/UNIX (Amazon VPC), t1.micro reserved instance applied",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.38NPMPTW36.6YS6EN2CT7",
                "beginRange": "0",
                "pricePerUnit": {
                  "USD": "0.0090000000"
                }
              }
            },
            "sku": "ERVWZ4V3UBYH4NQH",
            "effectiveDate": "2016-10-31T23:59:59Z",
            "offerTermCode": "38NPMPTW36",
            "termAttributes": {
              "LeaseContractLength": "3yr",
              "OfferingClass": "standard",
              "PurchaseOption": "Partial Upfront"
            }
          },
          "ERVWZ4V3UBYH4NQH.HU7G6KETJZ": {
            "priceDimensions": {
              "ERVWZ4V3UBYH4NQH.HU7G6KETJZ.2TG2D8R56U": {
                "unit": "Quantity",
                "description": "Upfront Fee",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.HU7G6KETJZ.2TG2D8R56U",
                "pricePerUnit": {
                  "USD": "62"
                }
              },
              "ERVWZ4V3UBYH4NQH.HU7G6KETJZ.6YS6EN2CT7": {
                "unit": "Hrs",
                "endRange": "Inf",
                "description": "Linux/UNIX (Amazon VPC), t1.micro reserved instance applied",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.HU7G6KETJZ.6YS6EN2CT7",
                "beginRange": "0",
                "pricePerUnit": {
                  "USD": "0.0090000000"
                }
              }
            },
            "sku": "ERVWZ4V3UBYH4NQH",
            "effectiveDate": "2015-04-30T23:59:59Z",
            "offerTermCode": "HU7G6KETJZ",
            "termAttributes": {
              "LeaseContractLength": "1yr",
              "OfferingClass": "standard",
              "PurchaseOption": "Partial Upfront"
            }
          },
          "ERVWZ4V3UBYH4NQH.4NA7Y494T4": {
            "priceDimensions": {
              "ERVWZ4V3UBYH4NQH.4NA7Y494T4.6YS6EN2CT7": {
                "unit": "Hrs",
                "endRange": "Inf",
                "description": "Linux/UNIX (Amazon VPC), t1.micro reserved instance applied",
                "appliesTo": [],
                "rateCode": "ERVWZ4V3UBYH4NQH.4NA7Y494T4.6YS6EN2CT7",
                "beginRange": "0",
                "pricePerUnit": {
                  "USD": "0.0180000000"
                }
              }
            },
            "sku": "ERVWZ4V3UBYH4NQH",
            "effectiveDate": "2016-08-31T23:59:59Z",
            "offerTermCode": "4NA7Y494T4",
            "termAttributes": {
              "LeaseContractLength": "1yr",
              "OfferingClass": "standard",
              "PurchaseOption": "No Upfront"
            }
          }
        }
      },
      "version": "20180131042456",
      "publicationDate": "2018-01-31T04:24:56Z"
    }
  ],
  "FormatVersion": "aws_v1"
}

返されるデータの構造がわかったので、後は必要な項目だけを抜き出して CSV で出力してやれば、Google スプレッドシートにインポートで取り込めそうです。ということで、今日はここまでです。


っと、ここまで書いてから投稿しようとしたら、AWS Price List API の使用 とかいうよさげなページがあるのに気づいたのでこれから読みます。。。

(参照)

続きを読む

AWSセキュリティとコンプライアンス勉強まとめ

AWS責任共有モデル

  • お客様自身でクラウドをコントロール可能
    ネットワーク、サーバ、セキュリティなどなど
  • AWSがクラウドのセキュリティを担当。AWS基本サービス

AWS の責任はクラウドのセキュリティ(Security "of" the Cloud)
AWS は、AWS クラウドで提供されるすべてのサービスを実行するインフラストラクチャの保護に責任を負います。
このインフラストラクチャはハードウェア、ソフトウェア、ネットワーキング、AWS クラウドのサービスを実行する施設で構成されます。
データセンターの物理セキュリティ
ネットワークセキュリティ(DDoS攻撃対策、ポートスキャニング対策、)
論理的なセキュリティ(ホストOS、ゲストOS)
従業員・アカウントの管理
データセキュリティ
ストレージの廃棄プロセス

お客様の責任はクラウドにおけるセキュリティ(Security "in" the Cloud)
お客様の責任は、選択した AWS クラウドのサービスに応じて異なります。選択によって、セキュリティに関する責任の一環としてお客様が実行する構成作業の量が決定します。例えば、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Virtual Private Cloud (Amazon VPC)、Amazon S3 などのサービスは Infrastructure as a Service (IaaS) に分類されているため、必要なすべてのセキュリティ構成および管理のタスクをお客様が実行する必要があります。お客様が Amazon EC2 インスタンスをデプロイした場合、お客様は、ゲストオペレーティングシステムの管理 (更新やセキュリティパッチなど)、インスタンスにインストールしたアプリケーションソフトウェアまたはユーティリティの管理、AWS より各インスタンスに提供されるファイアウォール (セキュリティグループと呼ばれる) の構成に責任を負います。
IAM, KMS, CloudTrail, Trusted Advisor, VPC, セキュリティグループなどなど
サーバーOS、セキュリティ
Amazon Inspector(セキュリティ診断サービス)
ネットワークセキュリティ(VPCなど)
論理的アクセスコントロール(IAMなど)
Key Management Service
CloudHSM(ハードウェアセキュリティモジュール)
CloudTrail

参考URL:https://aws.amazon.com/jp/compliance/shared-responsibility-model/

Security by Design(SbD)
AWSアカウントの設計の規格化、セキュリティ制御の自動

CloudFormationで設計をテンプレート化

Trusted Advisor定期的な調査

参考URL:https://www.slideshare.net/AmazonWebServicesJapan/awswebinar-aws-59853341

続きを読む

AWS ap-northeast-1に4個のAZがあることを確認する (ap-northeast-1dができた)

https://aws.amazon.com/jp/blogs/news/the-fourth-new-availability-zone-tokyo-region/

東京リージョンに新たにアベイラビリティゾーンを追加 | Amazon Web Services

というブログが2018-01-25に出ていました。執筆日(2018-01-25)現在、本家の https://aws.amazon.com/blogs/ には同様の記事はないようです。

既に2AZ使えている環境の場合の確認方法

$ aws ec2 describe-availability-zones --output text
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1a
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1c
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1d

-> ap-northeast-1a/ap-northeast-1cが使えていた場合、ap-northeast-1dが追加されるようです。そのため、3AZsでコンピュートができるはずです。

既に3AZ使えている環境の場合の確認方法

$ aws ec2 describe-availability-zones --output text
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1a
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1b
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1c
AVAILABILITYZONES   ap-northeast-1  available   ap-northeast-1d

-> ap-northeast-1a/ap-northeast-1b/ap-northeast-1cが使えていた場合、ap-northeast-1dが追加されるようです。が、いつも通り、実務上はVPCで使えなかったAZは引き続き使えないので、3AZsでコンピュートすることになるようです。

4AZ導入後の新規アカウント

ap-northeast-1a, ap-northeast-1b, ap-northeast-1c, ap-northeast-1dの中か3AZsが利用可能になるのか、ap-northeast-1dは必ず含まれるような具合になるのかは試せていないので分かりませんが、確認しておきたい要素ではありますね。

課題

(1) 参照できないケース

$ aws ec2 describe-availability-zones --output text

Could not connect to the endpoint URL: "https://ec2.ap-norheast-1.amazonaws.com/"

というようにコケるAWS Accountがあるようです。AWS, AWS CLI, AWS SDK, Amazon EC2, Amazon VPCのいずれも詳しくないので、時間が経つのを待っていれば解決するのかアカウントの問題なのか分かりませんので、しばらく待つことにします。

(2) 4AZs

Web console (Amazon Web Servicesの用語ではManagement Consoleと表現される気がする) では、上記のCLI (API) をコールしているため、

ap-northeast-1a-error.png

となってしまうので、誤って使えないAZを選んでしまうと

ap-northeast-1a-error-2.png

というようなら、エラーに遭遇してしまう。
「既に3AZ使えている環境」=「これから4AZ使えそうに見える環境」の方は従前通り注意が必要です。と言っても、Management Consoleから触ってVPC/Subnetを構築する人はいないので、多分誰も困らないでしょう。

これにより実現できること

これでようやくAWS Tokyo (ap-northeast-1) で3AZないと高SLAが実現できないアプリケーション・ソフトウェアが動かせる日がやってきました。

Google Cloud Platform (GCP)のGCEでのasia-northeast-1では2016年秋より使えていましたので、私の状況としてこちらで困っていませんでした。最近になって、AzureでもAzure AZが2017年末頃から提供開始されていたよう(伝聞)なので、AWSでも(少なくとも結果的に)それに追従する形で実現に至ったようです。

今後も積極的に3AZを活用したコンピューティングで高可用性を実現していきたいと思える瞬間でした。

References

続きを読む

Amazon VPC勉強メモ

・ネットマスクは/28(14IP)-/16の範囲で利用可能
サブネットで利用できないIP
1. ネットワークアドレス(.0)
2. VPCルータ(.1)
3. Amazonが提供するDNS(.2)
4. AWSで予約されている(.3)
5. ブロードキャストアドレス(.255)

・VPC作成後はVPCアドレスブロックは変更できない

・同一リージョン内のAZは高速専用線でつながっている。リージョン間はインターネット経由

ネットワークACL(アクセスリスト)でネットワークレベルでのセキュリティソフトを設定

ENI(Elasticネットワークインターフェース)
EC2で利用するネットワークの仮想インターフェース
EC2ごとにENIを複数持つことが可能
下記の情報をENIに紐づけて維持可能
1. プライベートIP(固定の設定可能)
2. Elastic IP
3. MACアドレス
4. セキュリティグループ

Floating IP
サーバに障害が起こった際に、ENIを維持して対応する
※VPCではサブネットを超えてアドレスを付け替えることができない点に注意
参考URL:https://goo.gl/JKphCj

サブネット内のDHCP
サブネット内のENIにIPを自動割り当て
※プライベートIPを固定にした場合はDHCP経由で該当のIPが割り当てられる

・VPCで使えるAmazonが提供するDNS
169.254.169.253
VPCのネットワーク範囲のアドレスに+2をプラスしたIP

プライベートホストゾーン
VPC内のインスタンスのみ参照可能。Route53のプライベートホストゾーンを利用

インターネットゲートウェイ(IGW)
VPC内のリソースにインターネットの接続を提供。VPCにアタッチする
単一障害店や帯域幅のボトルネックはない

メインルートテーブルカスタムルートテーブル
メインルートテーブル:VPCを作成したときに自動的に割り当て
カスタムルートテーブル:任意で作成したルートテーブル。メインに変更することも可能

パブリックサブネットの設定
自動で割り当て:サブネットに自動割り当てを設定
固定で割り当て:Elastic IPをアタッチ

Elastic IP
費用がかかるのは下記の場合
1. 追加でEIPを利用する場合
2. 起動中のEC2インスタンスに割り当てられていないとき
3. アタッチされていないENIに割り当てられている場合
4. 1ヶ月でリマップ(割り当て、取り外し)が100回を超えた場合

NATゲートウェイ
プライベートサブネットのリソースがインターネットに通信するために必要
AZごとに設置するのがベストプラクティス

VPCエンドポイント
プライベートサブネットからS3バケットにアクセス可能
S3アクセスのためにIGWNATインスタンスが不要

バーチャルプライベートゲートウェイ(VGW)
オンプレミスとのVPN接続のためのエンドポイントとなる仮想ルータ。VPC側
単一障害点や帯域幅のボトルネックはなし

カスタマゲートウェイ(CGW)
オンプレミス側。AWSとのVPN接続のため

VPN接続
VGWCGW間でIPsecトンネルが設定

・VPC Peering

2 つの VPC 間でトラフィックをルーティングすることを可能にするネットワーク接続
https://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/vpc-peering.html

ネットワーク接続の最大送信単位 (MTU)に注意。VPC Peeringは1500

異なるAWSアカウントでも可能
但し、異なるリージョン間では使用できない

セキュリティグループ
仮想ファイアウォール
1つのEC2で5つのセキュリティグループが設定可能
デフォルトですべての通信は禁止
VPCぴあリング先のセキュリティグループが設定可能

ネットワークACLVSセキュリティグループ
ネットワークACL:サブネットレベルで効果。ステートレスなので戻りのトラフィックも明示的に許可設定
セキュリティグループ:サーバーレベルで効果。ステートフルなので戻りのトラフィックは気にしなくてよい

・オンプレミスとのハイブリッド構成
Direct Connectを使用する
VPCからオンプレミスへの通信をするためには、各サブネットのルートテーブルの設定が必要
宛先:オンプレミスのIP
ターゲット:VGWのID
VPNとDirect Connectで冗長可能。Direct Connectが優先

・VPC設計
アプリケーション/監査/フェーズ(本番/検証/開発)/部署などによる分割

VPC Flow Logs
ネットワークトラフィックをキャプチャ氏、CloudWatchへPublishする機能
ネットワークインターフェースを送信元/送信先とするトラフィックが対象
CloudWatch Logsの標準料金のみ課金
VPC Flow Logsで取得できない通信
1. Amazon DNSサーバへのトラフィック

・VPCのリミット
リージョン当たりのVPCの数:5
VPC当たりのサブネット:200
AWSアカウント当たり1リージョンのEIP:5
ルートテーブルあたりのルートの数:100
VPCあたりのセキュリティグループの数:500

参考URL:
http://kakakakakku.hatenablog.com/entry/2016/08/07/232305
https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2016-amazon-vpc

続きを読む