AWS ネットワーク基本概要メモ

## リージョン
AWSの各サービスが提供されている地域のこと
日本でサービスを展開する場合は通常tokyoリージョンを使う

## アベイラビリティゾーン
同一リージョン内のある独立したそれぞれのデータセンターのこと。
１つのリージョンは２つ以上のアベイラビリティーゾーンがある。
離れた距離にデータセンターを持つことで災害に対応できるようにしている。

例えばEC２を立ち上げるとき、まずリージョンを選び、アベイラビリティーゾーンを選びます。
そのとき複数のアベイラビリティゾーンにサーバをそれぞれ立ち上げれば、災害などで障害が起こっても、他のサーバは大丈夫なので、障害に強くなる。

# VPC(バーチャルプライベートクラウド)
AWS上に仮想ネットワークを構築できるサービス。
AWS上にサーバを作るときは、まずVPCを作り、その中をサブネットでわけ、そのサブネットの中にサーバーを設置するという流れになる。

リージョンをまたいで作ることはできず、いつのVPCは一つのリージョン内を選択する。
VPC内に複数のサブネットを作れ、それぞれのサブネットの内のアベイラビリティゾーンは違うものが選択できる。

## サブネット
VPCを作ったら、さらにその中を区切りたい場合はサブネットで区切る。
アベイラビリティゾーンを１つ設定する。
例えばVPC内に２つのサーバ（webサーバ、DBサーバ）を作るとき、webサーバはインターネットからアクセスでき（パブリックサブネット）、DBサーバは隔離（プライベートサブネット）したいとき、それぞれサブネットを分けてアクセスを制御する。

## IPアドレス 表記法
IPアドレスのネットワーク部とホスト部
例えば
192.168.128.0
このうち前半の192.168.128まではネットワーク部と言い、自分が使用しているネットワークの所までくる所までのネットワークのアドレス。
後半の0の部分はホスト部と言い、自分のネットワークの、どの機器に情報を送るかのアドレス


##### Cidr表記
192.168.128.0/24
前半何ビットまでの部分がネットワーク部かを/以下の数値で表した表記法。
この場合は前半24ビットつまり１０進数で192.168.128までがネットワーク部でそれ以下がホスト部。

ホスト部は、ネットワーク内で自由に設定できる端末の数を表したものということになる。
この場合、192.168.128.0〜192.168.128.255までの256種類のホストを設定できる。（つまり256種類の機器に対応できる）

##### サブネットマスク表記
192.168.128.0/255.255.255.0
ネットワーク部を/より後ろの255（つまり2進数で11111111）部分で表し、ホスト部を0(つまり2進数で00000000)部分で表す。

## VPCとサブネットのIPアドレスの割り当て
VPCやサブネットにはそれぞれアドレスを割り当てる必要がある。
VPCの中にサブネットを構成する場合は、VPCのIPアドレスのホスト部にサブネットを含める。
例として
VPC(IPアドレス 10.0.0.0/16)の中に2つのサブネット(IPアドレス[10.0.10.0/24][10.0.20.0/24])
などのように割り当てる。

## インターネットゲートウェイ
VPCと外部インターネットを繋ぐ。通常VPCに一つ。
ルートテーブルを用いて、
``VPC内部のパブリックサブネット - ルートテーブル - インターネットゲートウェイ`` のような構成で接続する。

## NATゲートウェイ
プライベートサブネットから外部のインターネットへアクセスする事を可能にしつつ、外部からのアクセスは遮断したいと言うようなときに使う。
プライベートサブネットへ何らかの更新ファイルを外部からDLする、と言うような用途に使える。

``プライベートサブネットへインターネット接続したい場合は``
踏み台サーバ（インターネットゲートウェイと繋がるパブリックサーバ）を経由してプライベートサブネットへ接続、戻りトラフィックはNATゲートウェイを経由させる、というような事が必要になる。

## Egress Only インターネットゲートウェイ
IPv6用のインターネットゲートウェイ。
インターネットから直接インスタンスに接続するのを防ぎつつ、トラフィックを返すよ、というようなNatゲートウェイ的なことができる。

## TransitGateway
複数のVPCやオンプレミス環境をまとめて接続するゲートウェイ。
２つだけの接続の場合VPCペアリングという機能でも接続できるが、それ以上の場合はTransitGatewayを使う。

## ルートテーブル
ネットワークは、ルーターがIPアドレスの行き先を管理しているので、ネットワークとネットワークがIPアドレスを通じて接続できる。

AWSではこのルーティングをルートテーブルという形で表現する。

`具体的には、どのサブネットがどのインターネットゲートウェイを使うのか、というような事の関連付けがされる。`
サブネットと同じ数用意する。


書式としては

| 宛先IPアドレス       |       次のルーター（ターゲット） | 行き先|
|:-----------------|------------------:| ----:|
| 10.0.10.0/24            |       local | 自身のネットワーク|
|     10.0.20.0/24      |            ルーターB |             |
| 0.0.0.0/0          |            ルーターC |       「デフォルトルート」ルートテーブルのどこにも該当しない場合の経路      |

外部インターネットにつなげたい場合は0.0.0.0/0のターゲットにインターネットゲートウェイを指定するとインターネットに接続できる


## Elastic IP
インスタンスは動的なIPアドレスとなっていて、再起動するとアドレスも変更されてしまう。
それを防ぎたい場合、Elastic IPIでアドレスを固定する。

## エンドポイントサービス
他のAWSアカウントから自分のAWSアカウントの　VPCに接続させるときに利用するサービス。
S３などはリージョンに作られて、VPC内には作られないのでS3と通信させるときはエンドポイントも利用することになる。


# セキュリティ関連

## ネットワークACL（VPC用FW）
VPC/サブネットへのトラフィックの許可拒否の設定ができるファイアウォールの機能。VPC/サブネットに設定する。
インバウンド通信とアウトバウンドそれぞれの許可/拒否設定が必要。

## セキュリティグループ（インスタンス用FW）
ネットワークではなく、インスタンスのトラフィックの制御をするファイアウォール。インスタンス単位で適用
インバウンド側の許可/拒否を設定すればアウトバウンドも同時に設定される。

``インスタンスにトラフィックを届けるためには上記二つ（ネットワークACLとセキュリティグループ）でアクセスを許可する必要がある``

## AWS Network Firewall
AWS Network Firewall用のサブネットを作り、すべてのトラフィックはそのサブネットを介してVPC内の他のすべてのサブネットと通信していく様な構成でフィルタリングをかけて全体をコントロールする。

## トラフィックミラーリング

### ミラーセッション
パケットをキャプチャーして驚異の判定などに利用する事ができる。