Slide 1

Slide 1 text

AWSネットワーク入門 carotene4035 1

Slide 2

Slide 2 text

自己紹介 2

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

本出しました 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

【補足】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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

第一部 20

Slide 21

Slide 21 text

VPCを作る •  IPv4  CIDR   21

Slide 22

Slide 22 text

VPCを作る 22

Slide 23

Slide 23 text

Subnetを作る •  VPC,  AZ,  CIDR   23

Slide 24

Slide 24 text

Subnetを作る 24

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

VPCにigwを紐つける 29

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

確認&ping通らない 31

Slide 32

Slide 32 text

Subnetの設定を確認 32

Slide 33

Slide 33 text

Route  Table紐付け前 33

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

Route  Table紐付け後 35

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

確認&ping通らない 37

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

ICMPを許可 39

Slide 40

Slide 40 text

ping… 40

Slide 41

Slide 41 text

普通に通った 41

Slide 42

Slide 42 text

第二部 42

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

44

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

46

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

48

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

50

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

55

Slide 56

Slide 56 text

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