毎度、 VPC を作成して Subnet を切る際に 「IP アドレス 第 3 オクテット」 の設定に関して悩むのでメモ。
個人的なルールなので、あくまで参考程度に。
AWS VPC Subnet IP アドレス 第 3 オクテット 設定 ルール
下記に示す 用途
の組み合わせで 値
を論理積で掛けあわせた結果を使用する。
2 進数 | 値 | 用途 | 補足 |
---|---|---|---|
10000000 | 128 | private | 0: public / 1: private |
01000000 | 64 | 予備 | |
00100000 | 32 | production | 1: 本番用 ( staging を含む ) |
00010000 | 16 | develop | 1: 開発用 |
00001000 | 8 | compute | 1: EC2 / etc. |
00000100 | 4 | database | 1: RDS / ElastiCache / etc. |
00000010 | 2 | 予備 | |
00000001 | 1 | Availability Zone | 0: a / 1: c |
補足
- compute とは
AWS > Services > Compute
に属する service - database とは
AWS > Services > Database
に属する service
AWS VPC Subnet IP アドレス 第 3 オクテット 設定 例
上記の組み合わせで IP アドレス 第 3 オクテット を決定させる。
例えば、private 領域に設置する本番用 DB の場合だと、
10000000 : private
00100000 : production
+ 00000100 : database
--------------------------------------------
10100100 : private-production-database
を、 AZ-a に、
10100100 : private-production-database
+ 00000000 : (Availability Zone) a
--------------------------------------------
10100100 : private-production-database-a (=164)
と、 AZ-c に、
10100100 : private-production-database
+ 00000001 : (Availability Zone) c
--------------------------------------------
10100101 : private-production-database-c (=165)
で、 10 進数に変換し、それぞれ、
- x.x.164.0/24 : private-production-database-a
- x.x.165.0/24 : private-production-database-c
という具合になる。
AWS VPC Subnet CIDR 設定 例
下記は VPC 10.0.0.0/16
に Subnet を設定する際の例。
こちらも参考程度に。
2 進数 | 値 | CIDR | Name | 補足 |
---|---|---|---|---|
00000000 | 0 | 10.0.0.0/24 | public-a | ELB など |
00000001 | 1 | 10.0.1.0/24 | public-c | |
00001000 | 8 | 10.0.8.0/24 | public-compute-a | 踏み台 EC2 など |
00001001 | 9 | 10.0.9.0/24 | public-compute-c | |
00111000 | 56 | 10.0.56.0/24 | public-common-compute-a | |
00111001 | 57 | 10.0.57.0/24 | public-common-compute-c | |
00010100 | 20 | 10.0.20.0/24 | public-develop-database-a | 開発用 DB など (local からも接続したい場合) |
00010101 | 21 | 10.0.21.0/24 | public-develop-database-c | |
10000000 | 128 | 10.0.128.0/24 | private-a | NAT Gateway など |
10000001 | 129 | 10.0.129.0/24 | private-c | |
10001000 | 136 | 10.0.136.0/24 | private-compute-a | |
10001001 | 137 | 10.0.137.0/24 | private-compute-c | |
10011000 | 152 | 10.0.152.0/24 | private-develop-compute-a | 開発用 EC2 など |
10011001 | 153 | 10.0.153.0/24 | private-develop-compute-c | |
10100100 | 164 | 10.0.164.0/24 | private-production-database-a | 本番用 DB など |
10100101 | 165 | 10.0.165.0/24 | private-production-database-c | |
10101000 | 168 | 10.0.168.0/24 | private-production-compute-a | 本番用 EC2 など |
10101001 | 169 | 10.0.169.0/24 | private-production-compute-c | |
10110100 | 180 | 10.0.180.0/24 | private-common-database-a | 共用 DB など ( NOTE.1 ) |
10110101 | 181 | 10.0.181.0/24 | private-common-database-c |
- NOTE.1 : 本番と開発で共用することを明示したい場合、00100000 (=production) と 00010000 (=develop) の bit を立てて 00011000 (=common) として設定する、など。(これも個人的なルール)