Kの備忘録

実に忘れっぽいので色んなこと書いてます

Amazon Web Services ネットワーク入門読みました

0. はじめに

1. VPC(Virtual Private Cloud)

  • 仮想的なネットワークを構築できる機能
  • AWSクラウドの論理的に分離したセクションがプロビジョニングされる
  • 利用するIPアドレス範囲の枠組みを決める
  • VPC内に暗黙的に必ずルータが置かれる
  • 閉じたネットワーク
  • これだけだとEC2サーバを設置できない

VPCとは次の方法で接続できる

インターネットゲートウェイ

  • インターネットに繋げられる

    AWS Direct Connect

  • オフィスなどの拠点と専用線で接続

    VPN接続

  • VPN Gatewayを構成し、オフィスなどの拠点と接続

    VPCピア接続

  • 同一リージョンにおける別のVPCと接続する機能
  • 異なるAWSユーザのVPCとも接続できる

    VPCエンドポイント

  • VPCAWSの他のマネージドサービスとの接続点
  • これを使わない場合は、一度インターネットに出て、AWSサービスに接続する

デフォルトのVPC

  • 「すぐに、インターネットに接続できるようにすること」を目的に作られた特別なVPC領域
  • サブネットはアヴェイラビリティゾーン分以下のように作られる
    • 172.31.0.0/20
    • 172.31.16.0/20
    • 172.31.32.0/20
  • 特別な理由がなければ変更・削除しない

2. サブネット

  • VPC領域を切り分けるネットワーク
  • いずれかのアヴェイラビリティゾーンに属する
  • 閉じたネットワーク
  • DHCPサーバが稼働している(止めることはできない)
    • 次のIPアドレスは割り当てない
    • 先頭: ネットワークアドレスとして使用
    • 先頭+1: VPCルータで使用
    • 先頭+2: Amazonが提供するDNSへのマッピングに予約
    • 先頭+3: 将来のために予約
    • 末尾: ブロードキャストアドレスとして予約

3. ネットワークインタフェース(ENI)

4. プライマリプライベートIPアドレス

  • 一度つけられたら変更されることはない

    5. セカンダリプライベートIPアドレス

  • 手動で設定したり変更できる

6. DHCPサーバ

  • DNSサーバやデフォルトのとメイン名を指定することができる
  • VPC領域単位で指定する

7. パブリックIPアドレス

  • サブネットで自動割り当てする設定ができる
  • NATによる運用がなされている
  • そのため、EC2インスタンスに割り当てられているのはあくまでプライベートIPアドレスのみ
  • インスタンス内でENIの状態を確認してもプライベートIPアドレスしか見えない(ifconfig使っても見えない)
  • メタデータサーバから知ることができる。
    • curl 169.254.169.254/latest/meta-data/public-ipv4

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割り振らないといけない

12. DNS (ドメインネームサーバ)

13. CIDR表記

  • IPアドレスに続けてスラッシュで区切り、そのあとにネットワーク部のビット数を表す表記
    • e.g. 10.0.0.0/16
    • 先頭16桁がネットワーク部、残りがホスト部