カジュアルにvpc作った結果がこれだよ!

Post on 10-Jun-2015

6.537 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

AWS Casual Talks #1 で発表したスライドです。

TRANSCRIPT

カジュアルに VPC作った結果がこれだよ

Yuryu @ 2013/11/01 AWS Casual Talks #1

あらすじ

自己紹介 VPC とは やっちゃったお話

大きすぎるサブネット 公私混同

まとめ

Disclaimer

この発表の内容は所属組織としての見解ではありません

情報の正確性を保つように努めていますが、間違ってても許してください そして教えてください

転んでも泣かない

自己紹介

自己紹介

氏名 : 岩尾 はるか (Yuryu) 職業 : DevOps エンジニア ( 自称 )

所属 : 株式会社フリークアウト (2013 年 7 月~ ) 副業 : 光の戦士 ( 白魔道士 Lv.43@Kujata)

AWS 歴 4 ヶ月 +α 出身 : 大阪府

VPC とは

VPC(Virtual Private Cloud) とは

AWS 上に仮想的なネットワークを構築 プライベートなネットワークを作れる オンプレミスの環境と VPN で接続できる

無料 Default VPC の登場により標準環境へ

Elastic でない Public IP も自動付与できる

VPC 諸元

VPC のサイズは /28 から /16 まで 一度作ったら変更不可

サブネットは最大 /16 まで 個数はデフォルトでは 200 個

その他は Classic EC2 とほぼ同じ

VPC の例

Virtual Private Cloud

VPC Subnet10.0.0.0/24

VPC Subnet10.0.1.0/24

VPC Subnet10.0.2.0/24

Availability Zone Availability Zone

Amazon EC2

Amazon EC2

Amazon EC2

Internet GatewayRouter

VPN Gateway

Elastic LoadBalancing

Elastic LoadBalancing

やっちゃったお話

大きすぎるサブネット

最初に作った構成 VPC: 10.0.0.0/16 Subnet: 10.0.0.0/16

Virtual Private Cloud

VPC Subnet

10.0.0.0/16

10.0.0.0/16

VPC の制限

VPC の最大サイズは /16 VPC ・サブネットのサイズ変更は不可

消して作り直し

大きすぎるサブネット

最初に作った構成 VPC: 10.0.0.0/16 Subnet: 10.0.0.0/16

Virtual Private Cloud

VPC Subnet

10.0.0.0/16

10.0.0.0/16

Flat Subnet パターン

何が起こったか

サブネットが一切変更できなくなった Availability Zone 増やせない Private / Public サブネット分けれない

すべてを作りなおすしかない

作り直しました

VPC: 10.1.0.0/16 違う VPC/ アドレス空間

Subnet: 10.1.0.0/24 将来増やせるように

サービス止めて移行

Virtual Private Cloud

VPC Subnet

10.1.0.0/24

10.1.0.0/16

公私混合

Public subnet にプライベート IP しか持たないインスタンスを置いた

NAT インスタンスも同じ subnet ベストプラクティスはサブネットを分ける

公私混合の図

10.1.0.0/24

NAT Instance10.1.0.4

1.2.3.4(Elastic IP)

Instances10.1.0.x

Default GW

To VPN

何が問題か

同じサブネット内でルーティングが違う 起動してから Default GW を変更しないと外

部との通信ができない Default GW が NAT を向いているので、もし

サブネット追加したら Private 通信が NAT される Or すべて route table を変更する必要がある

修正案 1 – Public subnet 新規追加

NAT インスタンスを新規 subnet に移動 その他のインスタンスはそのまま使える ルーティングなど設定変更中に外部への通信

ができなくなる ELB 経由だと影響を受けない

修正案 2 – Private subnet 新規追加

インスタンスを徐々に新しいサブネットに引っ越していく

一部サービスを止めないと移行できない

方針

修正案 1 – Public subnet の追加で行こう! インスタンスの Default GW は VPC Router 既存サブネットの Default GW を NAT イン

スタンスに

Step0 : 初期状態

10.1.0.0/24

NAT Instance10.1.0.4

1.2.3.4(Elastic IP)

Instances10.1.0.x

Step1 : 新規 subnet 作成

10.1.0.0/24

NAT Instance10.1.0.4

1.2.3.4(Elastic IP)

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

Step2 : Default GW 変更

10.1.0.0/24

NAT Instance10.1.0.4

1.2.3.4(Elastic IP)

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

Step3 : 旧 subnet を private に

10.1.0.0/24

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

ところが罠が

Step3 で既存サブネットの Route Table からInternet GW を外した瞬間、 ELB が止まる

Step3 : 旧 subnet を private に

10.1.0.0/24

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

ELB を VPC で使う注意点

ELB は Public subnet に attach が必要 1AZ あたり attach できるのは 1subnet つまり、 ELB も新規作成が必要

Step2 : Default GW 変更

10.1.0.0/24

NAT Instance10.1.0.4

1.2.3.4(Elastic IP)

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

Step2.5 : ELB 切り替え

10.1.0.0/24

NAT Instance10.1.0.4

1.2.3.4(Elastic IP)

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

Step3 : 旧 subnet を private に

10.1.0.0/24

Instances10.1.0.x

10.1.1.0/24

NAT Instance10.1.1.4

2.3.4.5(Elastic IP)

めでたしめでたし

ベストプラクティス通りの構成に AZ の追加も Private subnet を追加すれば

OK Route table も VPC のものに集約

まとめ

まとめ

サブネットは大きすぎないこと Private / Public サブネットは分けること ELB は Public subnet に attach すること 一度サービスが動くと変更大変 公式マニュアルに従うが吉

Questions?

Thank you!

top related