SubnetのCIDRの設計方針はVPCのSubnetのCIDRの設計方針(一例として)の記事の内容が最新になります。
(本記事のものは少し古い考え方になります)

これまでにVPCの設計に関して色々と経験し、社内で議論し、cloudpackとして一つのパターンができつつあるので、
この機会に形式知にしてみました。(CDPになります)

まずは構成図となりますが、わかる方はこの図だけで全てが分かると思います。

余談ですが、IaaSで最先端をゆくAWSの隠れた要因は下記だと思っています。

  1. プレミアムサポート
  2. シンプルアイコン

(1)のプレミアムサポートの素晴らしさは、いろいろなところで話されている為、ここで詳しくは書きませんが、
cloudpackのお客様へのサポートは、AWSのプレミアムサポートを、お手本にしています。

(2)のシンプルアイコンの凄さは、恥ずかしながら最近まで気が付きませんでした。
今どのようなことが起きているかというと、下記のような図を用いることで(初めての)お客様との設計のやり取りが、
とてもスムーズにできています。
また、お互いにアイコン(プロダクト)に対する認識の共有ができている為、話が非常に早く、また我々もアイコンの
説明等の付帯資料を作成する必要がありません。
この事で、案件が円滑に進むようになったと思います。

シンプルアイコン(とCacoo)がなければ、CDPが生まれなかったかもしれません。

話を戻して、上図の設計方針を説明します。

○サブネット

下記の3つの視点でサブネットを設計しています。

  1. Availability Zone
  2. インターネットアクセスに対するルーティング
  3. 配置するコンポーネント(ELB/EC2/RDS)のIPアドレス(任意/固定)

  1. Availability Zoneごとに同じ種類のサブネットを配置し、例えば下記のように
    CIDRで各AZを区別できるようにします。
    • A Zone: 10.0.0.0/18
    • B Zone: 10.0.64.0/18
    • C Zone: 10.0.128.0/18
    • (D Zone: 10.0.192.0/18)

    当然、CIDR(ネットワークアドレスやサブネットマスク)はシステム規模によって変更するべきです。

  2. インターネットアクセス(IGW)に対するルーティングは下記の3種類とし、例としては下記のようにCIDRで
    各ルーティングの種類を区別できるようにします。
    • Public: 10.0.0.0/23
      インターネット(IGW)へのInbound/Outboundの両アクセスが可能
    • Protected: 10.0.2.0/23
      インターネット(IGW)へのOutboundのみNAT経由でアクセス可能
    • Private: 10.0.4.0/23
      インターネット(IGW)へのアクセスは不可能

    Privateサブネットに配置しているEC2で、インターネットへのOutboundアクセスが必要になった場合、
    そのEC2はProtectedサブネットに再配置することで対応します。

  3. IPアドレスを固定にするコンポーネント(EC2)と、任意のIPアドレスが
    付与されてしまうコンポーネント(ELB/RDS/AS)は、別のサブネットに配置します。
    これは、両コンポーネントを同居させてしまうと、固定で使いたいIPアドレスが、
    任意に付与されるIPアドレスに、先に使われてしまう可能性があるからです。
    • 任意: 10.0.0.0/24
    • 固定: 10.0.1.0/24

    ACT/STBなサーバは3つのAZを利用せずに、IPアドレス固定のEC2を配置するサブネットで、
    2つのAZのみで構成(EC2を配置)することになります。

○ルーティング

上述(サブネット)の通り、Public/Protected/Privateの3種類を用意します。
Virtual Private Gateway(VPG)へのVPN接続は、上記の必要なサブネットに追加するようにし、
それ用にサブネットを作成することは行いません。

基本的は、PrivateサブネットにVPGをアタッチして、踏み台(Temp)経由で他のサブネット(Protected/Public)に
アクセスする形になると思います。

○セキュリティ

アクセス制限方法は、おおまかに下記の5種類方法があると思いますが、基本的にセキュリティグループで
アクセス制限を行うことにします。

  • Network ACL: サブネットに対するアクセス制限
  • セキュリティーグループ: EC2/ELB/RDSに対するアクセス制限
  • OS: iptablesやtcp wrapperなどで制限
  • サーバ: apacheやpostgresqlなどで制限
  • アプリケーション: アプリケーションプログラム内で制限

ただし、PublicサブネットとProtected/Privateサブネットに対してはそれぞれ下記のように、必要最低限の
アクセス許可を実施しておきます。

  • External Network ACL: 10.0.0.0/23
    Publicサブネットに設定。
    デフォルト設定(Inbound/Outboundがすべて許可)だが、拒否リストで指定IPからのアクセス制限も
    必要に応じて実施。
  • Internal Network ACL: 10.0.2.0/22
    Protected/Privateサブネットに設定。
    InboundはVPC内のみアクセス可能。
    Outboundはすべて許可。

当然ですが、VPG経由の他拠点からのアクセスがある場合は、Netowrk ACLにしかるべき設定を
実施する必要があります。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら