今一度基礎からアウトプットしていこう。AWSサービス【ネットワーク】編

### Virtual Private Cloud(VPC)
![Arch_Amazon-Virtual-Private-Cloud_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332976/4c454ca4-c544-4514-32ce-146e3de62312.png)

- AWSクラウド内にプライベートなネットワーク環境を用意できる。リージョンを選択し、**複数のAZをまたがって構築することができる。**

#### CIDR
- Classless Inter-Domain Routing によって、例えば10.0.0.0〜10.0.255.255までの65536のIPアドレスを利用することが定義できる。

#### サブネット
- VPCで設定したIPアドレス範囲をさらにサブネットに分けて定義する。サブネットにはプライベートIPアドレスを定義する。

#### インターネットゲートウェイ
- VPCから外部のインターネットへの出入り口がインターネットゲートウェイという。このインターネットゲートウェイ自体は高可用性でできているため、単一障害点にはならない。

#### ルートテーブル
- サブネットの経路をルートテーブルで設定する。サブネットと関連づけることで、サブネット内のリソースがどこに接続できるのかを定義する。VPC作成時にメインルートテーブルができるが、これはそのまま使い続けるのではなく、別途カスタムルートテーブルを作成してサブネットに関連づける。

#### パブリックorプライベートサブネット
- インターネットに対して直接ルートを持つパブリックサブネット・持たないプライベートサブネットに分けられる。ルートテーブルにインターネットゲートウェイがあるかないか。前者は外部との直接通信が可能であるのに対し、後者は外部アクセスから保護可能。サブネット同士はローカル接続ルートで繋がっている。

#### セキュリティグループ
- ファイアウォール機能であり、VPC内のリソースのネットワークトラフィックを制御する。Web層、データ層ごとに許可する送信元、送信先を設定することができる。CIDRかセキュリティグループIDの指定をできる。

#### ネットワークACL(ネットワークアクセスコントロールリスト)
- サブネットに対して設定するファイアウォール機能。サブネット内の全てのリソースに対してインバウンド（受信）アウトバンド（送信）の設定をすることができる。

#### ネットワークACLとセキュリティグループの違い
| 項目       | 適用範囲        | 主な用途     |設定方法|セキュリティレイヤー
|----------------|-----------------|-----------------------------|-|-|
| セキュリティグループ | インスタンス単位 | リソースごとの細かい制御  |許可|既存|
| ネットワークACL  | サブネット単位 | ネットワーク全体のアクセス制御 |拒否(許可)|追加|

#### VPCフローログ
- VPC内のネットワークトラフィックログはVPCフローログを設定することで出力できる。S3、CloudWatchLogs、Kinesis DataFirehoseのいずれかに出力可能。
#### ハイブリッド環境構築
- 既存のオンプレミス環境から拡張先としてAWSを利用することが可能。AWS側の仮想プライベートゲートウェイとオンプレミス側のカスタマーゲートウェイを指定してVPN接続することができる。またセキュリティとコンプライアンス要件から専用線を利用する場合はAWS Direct Connectを使用することでデータセンターとプライベートなネットワーク接続を確立できる。

#### VPCピアリング接続
- 複数のVPCを接続するVPCピアリング接続がある。これにより別リージョン、別アカウントの複数のVPCを接続可能。

#### その他
- Transit Gateway・・・大規模ネットワーク構築用
- Client VPN・・・クライアント用
- VPCエンドポイント・・・VPCから直接S3やDynamoDBなどにアクセスできる。
- NAT Gateway・・・プライベートサブネットからインターネットに接続する。

---

### Cloud Front
![Arch_Amazon-CloudFront_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332976/5a79ad9d-2b41-6b77-9d97-7bd9314d4d63.png)

- 世界600箇所にあるエッジロケーションによって低レイテンシでコンテンツを配信できるサービス。CloudFrontにキャッシュを持つことで、安全性が高いまま配信できる。通信を保護するために証明書を設定することもできて、WAF,Shieldを設定することでさらにセキュリティを盤石なものにできる。

### Route 53
![Arch_Amazon-Route-53_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332976/3527b671-8e4d-9c07-f841-17b9efad06af.png)
- ドメインネームサービスである。一般的なDNSと同様IPアドレスをマッピングしてユーザからの問い合わせに対応する。ドメインの新規登録や他からの移管も可能。エッジロケーションで使用される。
#### ルーティング機能の種類
- シンプルルーティング・・・問い合わせに対して単一の回答
- レイテンシベースのルーティング・・・一つのドメインに対して複数のDNSレコードを用意し、地理的に近しい場所にレイテンシが低くなるようにルーティングを行う。
- 加重ルーティング・・・一つのドメインに対して複数のDNSレコードを用意し、割合を決める。

#### ヘルスチェック
- プライマリとセカンダリを設定し、ヘルスチェックが失敗した時にセカンダリのレコードを答えるようフェイルオーバする。

### Grobal Accelerator
![Arch_AWS-Global-Accelerator_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332976/e8ec9f55-d3a4-9288-cc42-9ebc38669410.png)
- Route53よりも高速な世界バージョン。通信があった場合に、その地点から最も近いリージョンのエッジロケーションを選択するようにする。最寄りのエッジロケーションから最寄りのリージョンにルーティングされる。Route53よりも高速なフェイルオーバをする。

### Certificate Manager(ACM)
- ユーザが所有しているドメインでアクセスを受けるアプリをHTTPS通信で保護するためにはSSL/TLS証明書が必要であり、その証明書を作成、管理するサービス。CloudFrontやELBに設定する。証明書の年次更新は自動で行われる。
### Shield
![Arch_AWS-Shield_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332976/5a2d727d-c45c-7f51-31ce-f9b144a6b00f.png)

- AWSで実行しているサービスを**DDOS攻撃**から守るサービス。複数の分散化した送信元から大量のアクセスによってリソースを消費させてサービス提供を妨げるのがDDOS攻撃。EC2,CloudFront,ELBなどが保護対象。

#### Standard
- 無料であり、ユーザが何もしなくてもエンドポイントの保護はされる。ネットワーク・トランスポート層の保護。
#### Advanced
- 月額3000ドルでSRTというセキュリティチームから問い合わせをしてやり取り可能WAF,Firewallを使うことができる。
 
### Web Application Firewall(WAF)
![Arch_AWS-WAF_64.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3332976/0d292634-31c0-502f-46a6-86041b83e780.png)

- Shieldでは保護できていなかったアプリケーション層の保護。アプリに対してのリクエストに対してフィルタリングする。Web ACLという入れ物を作り、許可するか拒否するかというルールをあらかじめ作っておく。AWSがデフォルトで用意しているAWSマネージドルールというものもある。