AWS初心者は必ず読むべき！必見！AWSの基本②(VPC作成)

# この記事の概要
AWS初心者向けの記事です。
これから学習する方などは参考にしてみてください。

# 資料
非常にわかりやすいので購入してみてください。
記事で読むよりもスライドや動画説明でわかりやすいです。

https://www.udemy.com/course/aws-and-infra/

# この記事を読む前に
初期設定がわからない方はこの記事を読んでみてください。

https://qiita.com/Hashimoto-Noriaki/items/0057242a90e36e6fb73f



# システムの全体像
最初にWord Pressでシステムを作成します。
これは簡単にブログやホームページを作成できるシステムです。

1. wordpressはインターネットからアクセスできる```パブリックサブネット```にあります。
ex) Word Press Apache OS

2. データベースサーバーはインターネットから接族できない```プライベートサブネット```にあります。
ex) MySQL　OS

## リージョン
AWSのサービスが提供されている***地域***のことです。

実際に地域はこの記事にありました。

https://dev.classmethod.jp/articles/global_region_202203/


AWSを使う時まず最初にリージョンを選びます。
***リージョンごとにネットワークを設定しサーバーを作っていきます***。
基本は東京のリージョンがおすすめです。


## アベイラビリティゾーン
独立したデータセンターを指します。
アベイラビリティゾーンは複数作ります。
理由は１つのアベイラビリティゾーンが使えなくなっても他で使えるようにするためです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/a9a8b1d4-d454-dc5d-4b65-38b8d887e7f0.png)

>　引用　　https://cafe-dc.com/glossary/az/


## VPC
***AWS上に仮想ネットワークを作成***ます。
上のようにリージョンを決めて、アベイラビリティゾーンを作るのですが、リージョンごとVPCで作っていきます。
VPCの中に***パブリックサブネット***と***プライベートサブネット***があります。

## サブネット
***VPCをさらに細かく区切ったのがネットワーク***です。
サーバーを作りたい時はVPCの中に配置し、アベイラビリティゾーンの中に作っていきます。

# IPアドレスを決める
まずはVPCを作り東京リージョンにパブリックサブネットとプライベートサブネットをおきます。
***ネットワークを構築するためにまずIPアドレスの範囲***を決めます。

## IPアドレス
これは***ネットワーク上の機器を識別するためのインターネット上の住所***です。

この記事がわかりやすかったです。

https://qiita.com/mogulla3/items/efb4c9328d82d24d98e6


#### ビット、バイト、２進数、１０進数
```２進数```は***各行0か1を使って数値を表し***、コンピューターは２進数で計算します。
```ビット```は***2進数の１桁でコンピューターの最小単位***です。
```バイト```は***8ビット***を1バイトです。
```１０進数```は0~9の１０種類の数値を使って表し、普段使っている数値です。

32bitでIPアドレスは構成されています。下は2進数です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/c87485c1-094f-0f98-cf8d-be7b58d78562.png)

下がIPアドレスで8ビットごとに区切り、10進数です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/51f47eb7-8797-55f4-4541-26bbd3ab8155.png)


> 引用　　　https://qiita.com/taki_21/items/de6e04ce14d1bbacfe66

## パブリックIPアドレスとプライベートIPアドレス
⚫︎***パブリックIPアドレス***　　
インターネットに接続できるIPアドレスで、サーバー事業者から（AWS上でも貸し出される）貸し出されます。

⚫︎***プライベートIPアドレス***  
 インターネットで使用されないIPアドレスで社内LANやネットワークの実験をする時に使うみたいです。

範囲は下の記事にあります。

http://itdoc.hitachi.co.jp/manuals/3021/3021324220/NNMS0200.HTM#:~:text=IPv4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E7%AF%84%E5%9B%B2%EF%BC%88RFC1918,.255.255%EF%BC%8816%E3%83%93%E3%83%83%E3%83%88%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%EF%BC%89


## IPアドレスの範囲と表記
ネットワークを構成する時には、その***ネットワークで使うIPアドレスの範囲***を決めます。
***IPアドレスはネットワーク部とホスト部に分けて範囲を表記***します。

この資料に詳しく出ています。

https://wa3.i-3-i.info/word17257.html

https://livra.geolocation.co.jp/iplearning/173/


## CIDR表記
***IPアドレスの後ろに/***を書き、その後ろに***ネットワーク部先頭から何ビット目までか***を記載する。

ネットワーク部が30ビット
```
192.168.128.0/30
```
30ビットより後ろがホスト部となる。

## サブネットマスク部
***IPアドレスの後ろに/を書き***、ネットワーク部を表すビットと同じ部分を１に、ホスト部を表すビットと同じ部分を0にする。

```
192.168.128.0/255.255.255.0
               サブネットマスク表記
```

# VPC作成

## VPC作成
まずはホーム画面から***VPCを検索***します。***リージョンは東京***にしましょう。
そしてVPCをクリックしてください。

![スクリーンショット 2022-08-30 18.37.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/01bb57a9-c2f0-6463-86f6-d42032a4ff0a.png)

検索するとデフォルトでVPCが作られています。今回は自分で作るので***VPCを作成***をクリックします。

![スクリーンショット 2022-09-06 20.04.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/e6fab045-9575-8104-45b0-393e57ba8f5d.png)


![スクリーンショット 2022-09-06 20.09.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/c3c7076a-1c77-0a9e-54b9-7de854c1da79.png)

![スクリーンショット 2022-09-06 20.12.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/2db56b49-a9dd-7e21-9a0f-68e53620e49d.png)



![スクリーンショット 2022-09-06 20.17.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/2d3d8a4c-21e3-8248-ab5f-16ec79426ae5.png)


![スクリーンショット 2022-09-06 20.11.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/e7cf0d68-b756-6678-e752-3b951069351f.png)

画像には無いですが、***VPCの作成***を押します。
するとサブネットやインターネットゲートウェイ、ルートテーブルなどが一気に作られます。
画像には無いですが***VPCを表示***をクリックします。
![スクリーンショット 2022-09-06 20.18.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/6c1febc3-2ee4-fd68-208e-c1d18e439af2.png)

するとVPCができています
Wonderfulは別で作ったものです。今回作ったのは***aws-infra-vpc***です。

![スクリーンショット 2022-09-06 20.25.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/a8d72bda-1e2a-b716-6400-597b93a28a8e.png)


チェックを入れるとVPCの詳細もみることができます。



# ネットワーク設計のポイント

### VPC設計のポイント
1. 　***プライベートIPアドレス範囲から指定***します。
(VPCでは仮想のネットワーク空間を作成するのでプライベートIPアドレスを使うのがいい)

2. ***オンプレミスや他のVPCのレンジと重複しないようにする***
相互接続しそうな場合は重複しないように設計します。

3. ***作成後***は変更できないので、大きめの設定をします。
大きさは　***/28から16　がいい***みたいです。どちらかといえば16がいいみたいです。

#### VPCを分けるべきか
1. 違うシステムの場合はアカウントを分けた方がいいみたいです。

2. 同じシステムの各環境は、VPCとアカウントどっちに分けるべきか
環境が違うならアカウントもVPCも同じものを使うのは良くない。
VPCを分けた方がIAMの設定が1度でいいが、
各環境のリソースが見えてしまい、事故に繋がるみたいです。
アカウントを分けると、他の環境のリソースが見えなくなり、作業はしやすいが、
環境ごとにIAMの設定が必要です。
Udemyの講師の方は***同じアカウントでVPCとリージョンを分けた方がいい***とおっしゃてました。

#### サブネットの設計ポイント
1. 将来的に必要なサブネットを見積もり設定します。
***/24が標準***みたいです。

2. サブネットの分割は、ルーティングとアベイラビリティゾーンを基準に行う
サブネットに割り当てられるルートテーブルは1つで、インターネットのアクセスが有るのか無いのか、
拠点アクセスが有るのか無いのかをルーティングポリシーに応じて分割します。
2つ以上のアベイラビリティゾーンを使用するみたいです。