Successfully reported this slideshow.

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

11,597 views

Published on

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

Published in: Technology
  • (あと2レベルでAF装備だ…
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

カジュアルに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!

×