Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSネットワーク入門

carotene4035
December 15, 2018
270

 AWSネットワーク入門

AWSのネットワークについて基礎的な知識を整理しました。

carotene4035

December 15, 2018
Tweet

Transcript

  1. AWSネットワーク入門
    carotene4035
    1

    View Slide

  2. 自己紹介
    2

    View Slide

  3. 自己紹介
    •  h0ps://twi0er.com/carotene4035  
    •  Qiitaで記事書いてます(変なやつ)  
    – つるのおんがえしでPermission  Denied.  
    •  h0ps://qiita.com/carotene4035/items/
    2972c68027D29086378
    3

    View Slide

  4. 本出しました
    4

    View Slide

  5. 本出しました
    •  技術書典で技術書(ラノベ)を出しました  
    •  デザインパターンなのに、エモい。という本  
    – 「デザインパターンの本を読んだけど、理屈っぽく
    ていまいちよくわからなかった」人のための、  
    「デザインパターンを本能で理解する」本  
    – ラノベ調  
    – h0ps://carotene4035.booth.pm/items/1044161  
    5

    View Slide

  6. いきさつ
    •  セキュリティ強化のため、ネットワーク構成を
    整理(してもらった)  
    •  構成をAWS上でポチポチ作るのが僕の最初
    の仕事  
    •  ぜんぜんわからん
    6

    View Slide

  7. いきさつ
    •  ちょっとずつわかってきたので、完全に理解し
    たつもりになった  
    •  そういうのはよくないので、  
    今日はマサカリ大歓迎です  
    7

    View Slide

  8. 前提
    •  システムを構成するインフラ要素にアクセス制御をしたい
    ことがある  
    –  外部からアクセスさせたいもの(ELB,  webサーバなど)  
    –  外部からアクセスさせたくないもの(RDSなど)  
    •  見せたいものだけ見せ、見せたくないものは見せないこと
    により、セキュリティを向上させたい  
    •  そのための技術がAWSで使うことが出来る  
    8

    View Slide

  9. 主な技術
    •  VPC  
    •  Subnet  
    •  Route  table  
    •  Security  group
    9

    View Slide

  10. VPC
    •  Virtual  Private  Cloud  
    – 外からのアクセスを制限することが出来る、  
    社内ネットワークをクラウド上に作れるイメージ  
    10

    View Slide

  11. Subnet  
    •  Subnet  
    –  VPCの中を小さくいくつかに分けたもの  
    –  各々のSubnetに通信規則を設定することが出来る  
    (  network  ACL,  route  table)  
    –  VPCのipアドレス帯が枯渇しない限り  
    いくらでもたてれる  
    –  使用するsubnetの個数と、  
    その上に載せたいインスタンスの個数を考えた上で
    ネットワーク部を決める  
    11

    View Slide

  12. VPCとsubnetの関係
    •  VPCのIPレンジを10.0.0.0/16にする  
     
    •  使用可能なIPレンジの中からsubnetを作る  
    12

    View Slide

  13. subnetで使えるip
    •  10.0.0.0/24  で分けた場合  
    –  以下の5つのipについては使用不可  
    •  10.0.0.0:  ネットワークアドレス
    •  10.0.0.1:  VPC  ルーター用に AWS  で予約
    •  10.0.0.2:  AWS  で予約
    •  10.0.0.3:  将来の利用のために AWS  で予約
    •  10.0.0.255:  ネットワークブロードキャストアドレス  
    •  h0ps://docs.aws.amazon.com/ja_jp/vpc/latest/
    userguide/VPC_Subnets.html
    13

    View Slide

  14. VPCとsubnetの関係
    •  例 VPC 10.0.0.0/16  
    – Subnet1  10.0.0.0/24  
    – Subnet2  10.0.1.0/24  
    – Subnet3  10.0.2.0/24  
    – …  
    – Subnet255  10.0.255.0/24  
    14

    View Slide

  15. Route  table  
    •  Route  table  
    – 各VPC,  各subnetに1つ紐付けられる  
    – 通信の規則を記述したもの  
    •  例) このip範囲への通信は、ここへ飛ばす  
    15

    View Slide

  16. Security  group  
    •  Security  group  
    – インスタンスにたいして1つ以上紐つけるもの  
    – そのインスタンスへの流入、流出を細かく制御す
    ることができる(source,  port,  protocolが指定でき
    る)  
    h0ps://docs.aws.amazon.com/ja_jp/AWSEC2/
    latest/UserGuide/using-­‐network-­‐security.html  
    16

    View Slide

  17. 【補足】Default  VPC/Subnet/RT
    •  AWSアカウントを作ると、defaultで以下のものが作ら
    れる  
    –  VPC    
    •  172.31.0.0/16  
    •  Igwがa0achされている  
    –  VPCに紐付くsubnet    
    •  172.31.0.0/20,  172.31.16.0/20,  172.31.32.0/20  
    –  Route  table  
    •  igwとlocalへのルートが記述されており、  
    VPCとsubnetに関連付けられている
    17

    View Slide

  18. Default  VPC/Subnet/RT
    •  つまり、AWSアカウント開設時に存在する  
    subnetはすべてpublic  subnet(後述)
    18

    View Slide

  19. 今回やること
    •  システム構成図  
    – 第一部  
    •  EC2に立てたインスタンスにpingを通すまで  
    – 第二部  
    •  EC2からprivate  subnetに立てたRDSに接続するまで  
    19

    View Slide

  20. 第一部
    20

    View Slide

  21. VPCを作る
    •  IPv4  CIDR  
    21

    View Slide

  22. VPCを作る
    22

    View Slide

  23. Subnetを作る
    •  VPC,  AZ,  CIDR  
    23

    View Slide

  24. Subnetを作る
    24

    View Slide

  25. EC2インスタンスを立てる
    25

    View Slide

  26. 外からアクセスする用にEIPを置く
    26

    View Slide

  27. 外からアクセスする用にEIPを置く失敗
    27

    View Slide

  28. Elas`cIP注意
    •  Elas`c  IPを使用するにはigwが必要  
     
    28

    View Slide

  29. VPCにigwを紐つける
    29

    View Slide

  30. 外からアクセスする用にEIPを置く
    30

    View Slide

  31. 確認&ping通らない
    31

    View Slide

  32. Subnetの設定を確認
    32

    View Slide

  33. Route  Table紐付け前
    33

    View Slide

  34. 新しくroute  tableを作って紐付け
    34

    View Slide

  35. Route  Table紐付け後
    35

    View Slide

  36. 補足
    •  igwへの通り道があるsubnetのことを、  
    public  subnetといいます  
    36

    View Slide

  37. 確認&ping通らない
    37

    View Slide

  38. インスタンスのSecurity  Groupを確認
    38

    View Slide

  39. ICMPを許可
    39

    View Slide

  40. ping…
    40

    View Slide

  41. 普通に通った
    41

    View Slide

  42. 第二部
    42

    View Slide

  43. private  subnetを立てる
    •  RDSは外からアクセスさせたくないので、  
    igwをroute  tableに持たないprivate  subnetを
    立てる
    43

    View Slide

  44. 44

    View Slide

  45. RDSを立てる
    •  RDSを立てるにはAZをまたいだ複数のsubnet
    で構成される「subnet  group」を作る必要があ
    る  
    •  そのためにsubnetをもう一つ追加する  

    45

    View Slide

  46. 46

    View Slide

  47. RDSを立てる
    •  Subnet  groupを作成  

    47

    View Slide

  48. 48

    View Slide

  49. RDSを立てる
    •  今回は作っていないが、別のAZにレプリカを作る
    ことができる  
    •  作っておくと、1つのAZがやられても大丈夫  
    •  ※  レプリカを作らなくても、  
    subnet  groupには必ず別AZのsubnetを含んでい
    なくてはならない(ややこしい)  

    49

    View Slide

  50. 50

    View Slide

  51. EC2にsshでログイン&psql接続→失敗
    51

    View Slide

  52. RDSのセキュリティグループ編集
    52

    View Slide

  53. EC2にsshでログイン&psql接続→成功
    53

    View Slide

  54. 外部から接続→失敗、つまり成功
    54

    View Slide

  55. 55

    View Slide

  56. まとめ
    •  割と楽しい  
    •  設定項目が多い  
    •  その分、細かい制御が可能だということ  
    •  VPCレベルで共通の設定→VPCのroute  table  
    •  Subnetレベルで共通→Subnetのroute  table,  network  ACL  
    •  インスタンスレベル→security  group  
    •  など、どこで何を設定するのかを考える必要がある  
    56

    View Slide