Amazon Web Services ネットワーク入門読みました
0. はじめに
AWSのインフラ構成図を見るとめまいが出るので、この本読むことにしました。 https://www.amazon.co.jp/Amazon-Services-%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%85%A5%E9%96%80-impress-gear/dp/4844381679/ref=sr_1_1?ie=UTF8&qid=1533999713&sr=8-1&keywords=amazon+web+services+%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%85%A5%E9%96%80
けっこうわかりやすかったです。
- IPアドレスとかNATとかサイダーとかDNSとか多少わかってる人なら問題なく読み進められるかと
- 忘れたいと思ってないので、内容を単語ベースでまとめることにしました。
1. VPC(Virtual Private Cloud)
- 仮想的なネットワークを構築できる機能
- AWSクラウドの論理的に分離したセクションがプロビジョニングされる
- 利用するIPアドレス範囲の枠組みを決める
- VPC内に暗黙的に必ずルータが置かれる
- 閉じたネットワーク
- これだけだとEC2サーバを設置できない
VPCとは次の方法で接続できる
インターネットゲートウェイ
- インターネットに繋げられる
AWS Direct Connect
- オフィスなどの拠点と専用線で接続
VPN接続
- VPN Gatewayを構成し、オフィスなどの拠点と接続
VPCピア接続
- 同一リージョンにおける別のVPCと接続する機能
- 異なるAWSユーザのVPCとも接続できる
VPCエンドポイント
- VPCとAWSの他のマネージドサービスとの接続点
- これを使わない場合は、一度インターネットに出て、AWSサービスに接続する
デフォルトのVPC
- 「すぐに、インターネットに接続できるようにすること」を目的に作られた特別なVPC領域
- IPアドレス範囲は「172.31.0.0/16」
- サブネットはアヴェイラビリティゾーン分以下のように作られる
- 172.31.0.0/20
- 172.31.16.0/20
- 172.31.32.0/20
- 特別な理由がなければ変更・削除しない
2. サブネット
3. ネットワークインタフェース(ENI)
- EC2にアタッチされる仮想的なネットワークインタフェースカード
- DHCPサーバからIPアドレスが割り当てられる
- OS側でIPアドレスを記述して固定してはいけない
- 別のEC2インスタンスに装着することができる
- EC2インスタンスが壊れて交換したい時など
4. プライマリプライベートIPアドレス
- 一度つけられたら変更されることはない
5. セカンダリプライベートIPアドレス
- 手動で設定したり変更できる
6. DHCPサーバ
7. パブリックIPアドレス
- サブネットで自動割り当てする設定ができる
- NATによる運用がなされている
- そのため、EC2インスタンスに割り当てられているのはあくまでプライベートIPアドレスのみ
- インスタンス内でENIの状態を確認してもプライベートIPアドレスしか見えない(ifconfig使っても見えない)
- メタデータサーバから知ることができる。
8. インターネットゲートウェイ
- インターネットとの通信経路
- VPCに対して設置する
9. ルートテーブル
- 「送信先」と「ターゲット」を指定したルート情報の集まり
- 指定した送信先データをどのターゲットに届けるのかを定めるもの
- サブネット単位で指定する
- 明示的に割り当てないときはVPCに構成された「メインのルートテーブル」が採用される
- 「メインのルートテーブル」の変更は他のサブネットにも影響が出るため、新規で作ってアタッチする
- サブネットのデフォルトゲートウェイとしてインターネットゲートウェイを登録すると 自分のネットワーク宛て以外のデータがインターネットゲートウェイを通るようになる
送信先 ターゲット 10.0.0.0/16 local 0.0.0.0/0 インターネットゲートウェイ
10. セキュリティグループとネットワークACL
- ファイアウォールないしパケットフィルタリング機能
セキュリティグループはVPCごとにdefaultが作られる
セキュリティグループ | ネットワークACL 対象: ENI単位 | サブネット単位 ルール: 許可ルールのみ | 許可と拒否ルール両方 評価順序: すべてチェック | 指定した順序でチェック 動作: ステートフル | ステートレス
TCP/IPの通信では、クライアント側からサーバ側に接続するとき、クライアントにも適当なポート番号が割り当てられる
- これはランダムなポート番号でエフェメラルポートと呼ばれる
- TCP/IPの通信は、双方向。何かパケットを受け取ったら、その応答のパケットが戻ることで通信が成立する
- ステートフル: 通信のポート番号を追跡し、応答となるパケットは明示的に指定しなくても通る動作
- ステートレス: 通らない
11. NATゲートウェイ
- 「プライベートIPアドレス -> インターネット」の接続を実現する装置
- 「インターネット -> プライベートIPアドレス」の通信は許さない
- パブリックなサブネットに配置する
- プライベートなサブネットのデフォルトゲートウェイをNATゲートウェイにする
- ルートテーブルを編集
- EIP割り振らないといけない