カジュアルに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 の登場により標準環境へ
El...
VPC諸元
VPCのサイズは /28 から /16 まで
一度作ったら変更不可

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

その他は Classic EC2 とほぼ同じ
VPCの例
Router

Amazon
EC2

Amazon
EC2

Elastic Load
Balancing

VPC Subnet
10.0.1.0/24

VPC Subnet
10.0.0.0/24

Internet
Gat...
やっちゃったお話
大きすぎるサブネット
最初に作った構成

10.0.0.0/16

VPC: 10.0.0.0/16
Subnet: 10.0.0.0/16

10.0.0.0/16
VPC Subnet

Virtual Private Cloud
VPCの制限
VPC の最大サイズは /16
VPC・サブネットのサイズ変更は不可
消して作り直し
大きすぎるサブネット
10.0.0.0/16

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

10.0.0.0/16

Flat Subnet パターン

VPC Subnet

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

すべてを作りなおすしかない
作り直しました
VPC: 10.1.0.0/16
違うVPC/アドレス空間

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

10.1.0.0/16
10.1.0.0/24
VPC Subnet

サービス止めて移行

...
公私混合
Public subnetにプライベートIPしか持たない
インスタンスを置いた
NATインスタンスも同じsubnet

ベストプラクティスはサブネットを分ける
公私混合の図
1.2.3.4(Elastic IP)

NAT
Instance
10.1.0.4

Default GW
Instances
10.1.0.x
10.1.0.0/24

To VPN
何が問題か
同じサブネット内でルーティングが違う
起動してからDefault GWを変更しないと外
部との通信ができない

Default GWがNATを向いているので、もしサ
ブネット追加したらPrivate通信がNATされる
Or ...
修正案1 – Public subnet 新規追加
NATインスタンスを新規subnetに移動
その他のインスタンスはそのまま使える
ルーティングなど設定変更中に外部への通信
ができなくなる
ELB経由だと影響を受けない
修正案2 – Private subnet新規追加
インスタンスを徐々に新しいサブネットに
引っ越していく
一部サービスを止めないと移行できない
方針
修正案1 – Public subnetの追加で行こう!
インスタンスのDefault GWはVPC Router
既存サブネットのDefault GWをNATインスタ
ンスに
Step0 : 初期状態
1.2.3.4(Elastic IP)

NAT
Instance
10.1.0.4

Instances
10.1.0.x

10.1.0.0/24
Step1 : 新規subnet作成
1.2.3.4(Elastic IP)

NAT
Instance
10.1.0.4

Instances
10.1.0.x

10.1.0.0/24

2.3.4.5(Elastic IP)

NAT
I...
Step2 : Default GW変更
1.2.3.4(Elastic IP)

NAT
Instance
10.1.0.4

Instances
10.1.0.x

10.1.0.0/24

2.3.4.5(Elastic IP)

NAT...
Step3 : 旧subnetをprivateに
2.3.4.5(Elastic IP)

Instances
10.1.0.x

10.1.0.0/24

NAT
Instance
10.1.1.4

10.1.1.0/24
ところが罠が
Step3で既存サブネットのRoute Tableから
Internet GWを外した瞬間、ELBが止まる
Step3 : 旧subnetをprivateに
2.3.4.5(Elastic IP)

Instances
10.1.0.x

10.1.0.0/24

NAT
Instance
10.1.1.4

10.1.1.0/24
ELBをVPCで使う注意点
ELBはPublic subnetにattachが必要
1AZあたりattachできるのは1subnet
つまり、ELBも新規作成が必要
Step2 : Default GW変更
1.2.3.4(Elastic IP)

NAT
Instance
10.1.0.4

Instances
10.1.0.x

10.1.0.0/24

2.3.4.5(Elastic IP)

NAT...
Step2.5 : ELB切り替え
1.2.3.4(Elastic IP)

NAT
Instance
10.1.0.4

Instances
10.1.0.x

10.1.0.0/24

2.3.4.5(Elastic IP)

NAT
In...
Step3 : 旧subnetをprivateに
2.3.4.5(Elastic IP)

Instances
10.1.0.x

10.1.0.0/24

NAT
Instance
10.1.1.4

10.1.1.0/24
めでたしめでたし
ベストプラクティス通りの構成に
AZの追加もPrivate subnetを追加すればOK
Route tableもVPCのものに集約
まとめ
まとめ
サブネットは大きすぎないこと
Private / Public サブネットは分けること
ELBはPublic subnetにattachすること
一度サービスが動くと変更大変
公式マニュアルに従うが吉
Questions?
Thank you!
カジュアルにVPC作った結果がこれだよ!
Upcoming SlideShare
Loading in...5
×

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

7,168

Published on

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

Published in: Technology
1 Comment
35 Likes
Statistics
Notes
  • (あと2レベルでAF装備だ…
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
7,168
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
38
Comments
1
Likes
35
Embeds 0
No embeds

No notes for slide

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

  1. 1. カジュアルにVPC 作った結果がこれだよ Yuryu @ 2013/11/01 AWS Casual Talks #1
  2. 2. あらすじ 自己紹介 VPCとは やっちゃったお話 大きすぎるサブネット 公私混同 まとめ
  3. 3. Disclaimer この発表の内容は所属組織としての見解では ありません 情報の正確性を保つように努めていますが、 間違ってても許してください そして教えてください 転んでも泣かない
  4. 4. 自己紹介
  5. 5. 自己紹介 氏名: 岩尾 はるか(Yuryu) 職業: DevOpsエンジニア(自称) 所属: 株式会社フリークアウト(2013年7月~) 副業: 光の戦士(白魔道士Lv.43@Kujata) AWS歴4ヶ月+α 出身: 大阪府
  6. 6. VPCとは
  7. 7. VPC(Virtual Private Cloud)とは AWS上に仮想的なネットワークを構築 プライベートなネットワークを作れる オンプレミスの環境とVPNで接続できる 無料 Default VPC の登場により標準環境へ Elastic でないPublic IPも自動付与できる
  8. 8. VPC諸元 VPCのサイズは /28 から /16 まで 一度作ったら変更不可 サブネットは最大 /16 まで 個数はデフォルトでは200個 その他は Classic EC2 とほぼ同じ
  9. 9. VPCの例 Router Amazon EC2 Amazon EC2 Elastic Load Balancing VPC Subnet 10.0.1.0/24 VPC Subnet 10.0.0.0/24 Internet Gateway Amazon EC2 VPN Gateway Elastic Load Balancing VPC Subnet 10.0.2.0/24 Availability Zone Availability Zone Virtual Private Cloud
  10. 10. やっちゃったお話
  11. 11. 大きすぎるサブネット 最初に作った構成 10.0.0.0/16 VPC: 10.0.0.0/16 Subnet: 10.0.0.0/16 10.0.0.0/16 VPC Subnet Virtual Private Cloud
  12. 12. VPCの制限 VPC の最大サイズは /16 VPC・サブネットのサイズ変更は不可 消して作り直し
  13. 13. 大きすぎるサブネット 10.0.0.0/16 最初に作った構成 VPC: 10.0.0.0/16 Subnet: 10.0.0.0/16 10.0.0.0/16 Flat Subnet パターン VPC Subnet Virtual Private Cloud
  14. 14. 何が起こったか サブネットが一切変更できなくなった Availability Zone 増やせない Private / Public サブネット分けれない すべてを作りなおすしかない
  15. 15. 作り直しました VPC: 10.1.0.0/16 違うVPC/アドレス空間 Subnet: 10.1.0.0/24 将来増やせるように 10.1.0.0/16 10.1.0.0/24 VPC Subnet サービス止めて移行 Virtual Private Cloud
  16. 16. 公私混合 Public subnetにプライベートIPしか持たない インスタンスを置いた NATインスタンスも同じsubnet ベストプラクティスはサブネットを分ける
  17. 17. 公私混合の図 1.2.3.4(Elastic IP) NAT Instance 10.1.0.4 Default GW Instances 10.1.0.x 10.1.0.0/24 To VPN
  18. 18. 何が問題か 同じサブネット内でルーティングが違う 起動してからDefault GWを変更しないと外 部との通信ができない Default GWがNATを向いているので、もしサ ブネット追加したらPrivate通信がNATされる Or すべてroute tableを変更する必要がある
  19. 19. 修正案1 – Public subnet 新規追加 NATインスタンスを新規subnetに移動 その他のインスタンスはそのまま使える ルーティングなど設定変更中に外部への通信 ができなくなる ELB経由だと影響を受けない
  20. 20. 修正案2 – Private subnet新規追加 インスタンスを徐々に新しいサブネットに 引っ越していく 一部サービスを止めないと移行できない
  21. 21. 方針 修正案1 – Public subnetの追加で行こう! インスタンスのDefault GWはVPC Router 既存サブネットのDefault GWをNATインスタ ンスに
  22. 22. Step0 : 初期状態 1.2.3.4(Elastic IP) NAT Instance 10.1.0.4 Instances 10.1.0.x 10.1.0.0/24
  23. 23. Step1 : 新規subnet作成 1.2.3.4(Elastic IP) NAT Instance 10.1.0.4 Instances 10.1.0.x 10.1.0.0/24 2.3.4.5(Elastic IP) NAT Instance 10.1.1.4 10.1.1.0/24
  24. 24. Step2 : Default GW変更 1.2.3.4(Elastic IP) NAT Instance 10.1.0.4 Instances 10.1.0.x 10.1.0.0/24 2.3.4.5(Elastic IP) NAT Instance 10.1.1.4 10.1.1.0/24
  25. 25. Step3 : 旧subnetをprivateに 2.3.4.5(Elastic IP) Instances 10.1.0.x 10.1.0.0/24 NAT Instance 10.1.1.4 10.1.1.0/24
  26. 26. ところが罠が Step3で既存サブネットのRoute Tableから Internet GWを外した瞬間、ELBが止まる
  27. 27. Step3 : 旧subnetをprivateに 2.3.4.5(Elastic IP) Instances 10.1.0.x 10.1.0.0/24 NAT Instance 10.1.1.4 10.1.1.0/24
  28. 28. ELBをVPCで使う注意点 ELBはPublic subnetにattachが必要 1AZあたりattachできるのは1subnet つまり、ELBも新規作成が必要
  29. 29. Step2 : Default GW変更 1.2.3.4(Elastic IP) NAT Instance 10.1.0.4 Instances 10.1.0.x 10.1.0.0/24 2.3.4.5(Elastic IP) NAT Instance 10.1.1.4 10.1.1.0/24
  30. 30. Step2.5 : ELB切り替え 1.2.3.4(Elastic IP) NAT Instance 10.1.0.4 Instances 10.1.0.x 10.1.0.0/24 2.3.4.5(Elastic IP) NAT Instance 10.1.1.4 10.1.1.0/24
  31. 31. Step3 : 旧subnetをprivateに 2.3.4.5(Elastic IP) Instances 10.1.0.x 10.1.0.0/24 NAT Instance 10.1.1.4 10.1.1.0/24
  32. 32. めでたしめでたし ベストプラクティス通りの構成に AZの追加もPrivate subnetを追加すればOK Route tableもVPCのものに集約
  33. 33. まとめ
  34. 34. まとめ サブネットは大きすぎないこと Private / Public サブネットは分けること ELBはPublic subnetにattachすること 一度サービスが動くと変更大変 公式マニュアルに従うが吉
  35. 35. Questions?
  36. 36. Thank you!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×