こんにちは!
この記事ではAWSでのサーバ構築を実践した記録を残します。
ELB、EC2、AutoScaling、RDS、踏み台サーバをうまくパブリックサブネットとプライベートサブネットに分けて構築しました。
前後編にわけ、この前編ではサブネットをprivateとpublicに分けて構築する、ネットワーク要素の強い話になります!
全体像
-
Public Subnet
- ELB
- 踏み台サーバ
- NATゲートウェイ
-
Private Subnet
- EC2インスタンス(マルチAZ)
- RDS(マルチAZ)
VPC
- IPv4 CIDR ブロック
10.0.0.1/16
/16だと 11111111.11111111.11111111.11111111 の後ろ16桁が使えるので
[10.0.0.0 ~ 10.0.255.255]の65536通りのIPをそのVPC内で使うことができる。
- 作成後アクションからDNSホスト名を有効にする。
サブネット
public、privateそれぞれこんな感じ
IP address | 用途 | AZ | public/private |
---|---|---|---|
10.0.1.0/24 | ELB | ap-northeast-1a | public |
10.0.2.0/24 | ELB | ap-northeast-1c | public |
10.0.10.0/25 | NAT | ap-northeast-1a | public |
10.0.11.0/25 | Bastion | ap-northeast-1a | public |
10.0.101.0/24 | EC2 | ap-northeast-1a | private |
10.0.102.0/24 | EC2 | ap-northeast-1c | private |
10.0.201.0/24 | RDS | ap-northeast-1a | private |
10.0.202.0/24 | RDS | ap-northeast-1c | private |
10.0.1.0/24
だと 第4オクテット 0~255 までの256個
10.0.10.0/25
だと 第4オクテット 0~127 までの128個
GW, NATゲートウェイ, 踏み台サーバー
- インターネットゲートウェイ
作成しVPCにアタッチしておく
- NATゲートウェイ
NAT用のサブネットを割り振る。
ElasticIPも新規作成して割り振る
- 踏み台サーバー(Bastion)
EC2を1台配置して、Bastionのに割り当てたサブネットをあてる。
ルートテーブル
VPCのdefaultルートテーブルが存在するのでそれをprivate用にする。
どのルートテーブルにも紐付いていないサブネットは自動でメイン(デフォルト)ルートテーブルに紐づくため。
publicサブネット用のルートテーブルを作成し、そこにpublicサブネットを紐づける。
- ELB(2つ)
- NAT
- Bastion
ルート編集を行う
private用のルートテーブル
0.0.0.0/0 => natインスタンスを向ける
public用のルートテーブル
0.0.0.0/0 => インターネットGWを向ける
これでVPCからサブネット周りの設定が完了です。
後半セキュリティグループの設定,RDS,ELB,AutoScalingの構築になります!
参考にさせていただいたサイト
AWSドキュメント
https://53ningen.com/elb-ec2-rds/