AWSのVPC この記事でマスターしておこう。


# VPCとは

VPCとは、[Amazon Virtual Private Cloud](https://aws.amazon.com/jp/vpc/)の略称。

*自分の手で、クラウド上に、仮想的なネットワークを作れる*

(ちなみに仮想って意味は、実際の手元にないって意味ね。深く考えずに、ただそれだけ。)

#### ※VPCをちゃんと理解したかったら、[ネットワーク](https://wakabastart.com/work/engineer758/)を結構詳しく理解してないと、VPCをちゃんと理解することはできないので注意


また、ネットワークは基本的に巨大なので、複雑で理解しにくい。

## VPCの前提


VPCを理解したければ、他のリソース（EC２インスタンスやRDSやS3など）も、用語を知ってる必要がある。

なぜなら、VPCで作成したネットワークは、それらの資源と連携して使うものだから。


例えば、VPCの機能の１つとして、IPアドレスの割り当てがある。

VPC上で作成したEC2インスタンスに対して、仮想ネットワークからIPアドレスを割り当てることができる（例えばね）

## VPCで、何すると、どうなるの？

・ネットワークの範囲
・サブネットの範囲
・ルートテーブル
・各種ゲートウェイ

の設定を行うと、

・小規模〜超大規模な仮想ネットワークが作れちゃう

## VPCってなぜ必要なの？

それはー。

ネットワークのお勉強をしてください

そもそも、AWSのインスタンスでも、オンプレミスリソースでも、ネットワークと繋がっていないと、サービス提供できません。

サーバーとクライアントを繋ぐのが、ネットワークですから。

必ず、必要なものなんです。

## VPCの特徴

VPCやサブネットは、通常のネットワークのセグメントに相当します。

VPCは、リージョン単位（わからなかったら自分で調べて）で、作成します。

また、表記は、CIDR表記です。

#### AWSのVPCで使用できないアドレス。

|使用不可アドレス|理由|
|---|--|
|○○○.○○○.○○○.0|ネットワークアドレス用（わからなかったら自分で調べて）|
|○○○.○○○.○○○.1|VPCルーター用アドレス（最初にここに問い合わせるよ〜ってやつ）|
|○○○.○○○.○○○.2|DNSサーバー用|
|○○○.○○○.○○○.3|AWSが予備的に確保しちゃってる強制枠|
|○○○.○○○.○○○.255|ブロードキャストアドレス用|

・VPCは、複数のアベイラビィティゾーンをまたいで作成できる
・サブネットは、１つのアベイラビリティゾーンごとに作成する


## VPCでできること

・VPCやサブネットを作れる（メイン機能）
・VPC内に、リソースを置ける：接続（ルーティングやIPアドレス割り当て）することで、リソースが機能する（メイン機能）
・複数のAWSアカウントで、１つのVPCやその中のリソースにアクセスできる(VPC sharing)
・オンプレミスリソース（自前の物理サーバーなど）と接続
・他のVPCネットワークと接続



## 用語解説コーナーーーーーー

### プライベートサブネット、パブリックサブネット

プライベートサブネットは、デフォルトでは、外部と通信できない
パブリックサブネットは、外部通信する目的のサブネット

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

VPCとインターネットを通信させるための中継窓口


### NATゲートウェイ

プライベートサブネットから、インターネットへ向けて、単方向通信をしたい場合に、中継してくれる窓口


### 仮想プライベートゲートウェイ

VPCと物理サーバ（オンプレミスサーバ）を接続するための窓口

### カスタマーゲートウェイ

オンプレミス環境に、設置するゲートウェイ


### VPCペアリング

2つのVPCネットワークを接続する（リージョンをまたがえない）

### インターリージョンVPC

リージョンをまたがって、２つのVPCを接続する

### VPCエンドポイント

リソース（AWSマネージドサービスやリージョンサービス：EC2やS3やダイナモDBなどのこと）と接続するための接点

### トランジットゲートウェイ

VPCで構成された巨大なネットワークを一元管理するためのゲートウェイ

`※一元管理とは？：通信の制御のこと`


## VPCで設定できるアクセス制御について

`アクセス制御設定することで、インスタンスと通信できるようになる`

なので、必然的に、この３つが必要です。（とても重要！：なら最初に書け）

### ルートテーブル

`ルーティングの関係を記述してあるもの`

VPCを作成した時に、自動で作成されるメインルートテーブル
と
追加で作成できる、カスタムルートテーブルがある


### セキュリティグループ

`俗に言う'ファイアーウォール'のこと`

設定しておいたルールに基づいて、通信を許可、遮断してくれるじょい。

また、通信のログも取ってくれる。

### ネットワークACL

`セキュリティグループの単位をサブネットレベルにしたもの`

セキュリティグループは、リソース単位で、ルールを設定するのに対し、
ネットワークACLは、サブネット単位で、ルールを設定する

※ログは取らない、応答許可設定も必要

##

リソース：EC2インスタンスなど
サブネット：小さなネットワーク（目的ごとに作られる）

ちなみになぜ、サブネットなんてできたのか？管理しやすくするため。。。だってさ

## 最初のうちは、覚えなくてもいいかな？な知識（じゃあ書くなよ！！）

**3つだけ書かせて**

### フローログ

VPCのIPトラフィック情報をログとして取得、保存できる機能があります。

### GuardDuty

フローログの弱点：ログ量が多すぎて、人間には、不正なアクセスを見抜くには時間がかかる

GuardDuty様は、自動で不正アクセスの検知をしてくれる

### リミット値

１つのリージョンで作成可能なVPCの数やサブネットの数、ElasticIPの数、ルートテーブルに書けるルートの数には、上限（リミット）が設けられている

[こちらのサイト](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/amazon-vpc-limits.html)で確認しておこう

※今は、リミットではなく、クォータと言うよ

## これだけは確認しておこう：料金について

### 無料のもの

|項目|
|---|
|VPCの作成|
|サブネットの作成|
|インバウンド通信|
|インターネットゲートウェイの作成|

※無料なのはこれだけ

### 有料のもの

|どこでお金が取られるか|お金の没収のされ方|
|---|--|
|アウトバウンド通信|データ転送量|
|VPCペアリング|データ転送量|
|NATゲートウェイ|NATゲートウェイの利用時間とデータ転送量|
|仮想プライベートゲートウェイ|[VPN](https://aws.amazon.com/jp/vpn/pricing/)と[directconnectの料金](https://aws.amazon.com/jp/directconnect/pricing/)を確認してください|
|VPCエンドポイント|PrivateLinkの利用時間とデータ転送量|
|トランジットゲートウェイ|アタッチメントごとに料金が発生するのと、データ転送量|


## 豆知識

・クロスアカウントアクセス

AWSアカウントが構築したリソースに対して、別のAWSアカウントから、アクセスできるよ



## 参考文献
[公式ドキュメントちゃん](https://docs.aws.amazon.com/ja_jp/)
[ハンズオン](https://aws.amazon.com/jp/events/aws-event-resource/hands-on/)
[侍エンジニアblog](https://www.sejuku.net/blog/category/development-environment/aws)


## おすすめ書籍

[わかりやすい系](https://www.amazon.co.jp/%E5%9B%B3%E8%A7%A3%E5%8D%B3%E6%88%A6%E5%8A%9B-Amazon-Web-Services%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF%E3%81%A8%E6%8A%80%E8%A1%93%E3%81%8C%E3%81%93%E3%82%8C1%E5%86%8A%E3%81%A7%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B%E6%95%99%E7%A7%91%E6%9B%B8-%E5%B0%8F%E7%AC%A0%E5%8E%9F/dp/4297108895/ref=sr_1_7?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=PA012MW9Q052&dib=eyJ2IjoiMSJ9.i9A7ek2wg13SvzGjLSnC6yZbYqBQMPtyxThg2oxNdE7AWfUlqyvzDmFc2wsDhP1W1QfFlmGNk6A5x3SwaVbk9xfGisl8ffYCsi5H9UWsiPnC_E650H7AqZck3V7MDdMQ4aZGuyr1BGU7euLI7YfP5oeJQFbtQH5oBUj2gHR9jCn85cTwaKRX_7VtO3drJZXBIxczD9-XkEmgzITssEZJJvCoZCBXKf_yAeonvW8pL1nvA2TdOva8vaUyxCuvO1J6mcYi8K-KjXo5xGB1L0tpX_DQ0fj0cUnahPmS6Ls3OKM.dtjY5rzvp1OR8G-v_NBoAcSsfdMLwc74LRUH96vbGQ0&dib_tag=se&keywords=aws&qid=1708530211&sprefix=aw%2Caps%2C251&sr=8-7)
[手を動かして作る系](https://www.amazon.co.jp/Amazon-Web-Services%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%EF%BC%86%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E6%A7%8B%E7%AF%89%E6%94%B9%E8%A8%82%EF%BC%94%E7%89%88-%E5%A4%A7%E6%BE%A4-%E6%96%87%E5%AD%9D/dp/4296202049/ref=sr_1_8?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=PA012MW9Q052&dib=eyJ2IjoiMSJ9.i9A7ek2wg13SvzGjLSnC6yZbYqBQMPtyxThg2oxNdE7AWfUlqyvzDmFc2wsDhP1W1QfFlmGNk6A5x3SwaVbk9xfGisl8ffYCsi5H9UWsiPnC_E650H7AqZck3V7MDdMQ4aZGuyr1BGU7euLI7YfP5oeJQFbtQH5oBUj2gHR9jCn85cTwaKRX_7VtO3drJZXBIxczD9-XkEmgzITssEZJJvCoZCBXKf_yAeonvW8pL1nvA2TdOva8vaUyxCuvO1J6mcYi8K-KjXo5xGB1L0tpX_DQ0fj0cUnahPmS6Ls3OKM.dtjY5rzvp1OR8G-v_NBoAcSsfdMLwc74LRUH96vbGQ0&dib_tag=se&keywords=aws&qid=1708530211&sprefix=aw%2Caps%2C251&sr=8-8)

[より全部やりたい人の為のハンズオン本](https://www.amazon.co.jp/AWS%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%A7%8B%E7%AF%89%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E5%AE%89%E5%85%A8%E3%81%A7%E5%A0%85%E7%89%A2%E3%81%AA%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9-%E4%B8%AD%E5%9E%A3-%E5%81%A5%E5%BF%97/dp/4798178004/ref=asc_df_4798178004/?tag=jpgo-22&linkCode=df0&hvadid=622831246311&hvpos=&hvnetw=g&hvrand=11946868875399321845&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009307&hvtargid=pla-1943791877209&psc=1&mcid=385dca60b68332ddba60dfb8c978dbf7&th=1&psc=1)

## 追撃の巨人

これで、VPCは作れるようになりましたか？

なりませんね。

それでは、[こちら](https://qiita.com/delsan/private/e80395f13d1d3f684bcc)で一緒にチュートリアル形式で作成していきましょう。