完全初心者AWS①  ネットワーク構築 (VPC)

## インフラができるメリット
* 自分自身でインフラを構築し、サービスをリリースできる
* 何らかの課題に対して、システム全体で幅広い知識を持って対応できる
  * ネットワーク（IPやドメイン）の構成を考え、サーバー（OSのインストールや設定方法）をネットワークに接続することができる
## インフラとは
* サーバーやネットワークのこと
  * サーバー：　WebやDBの機能を提供するコンピュータ
  * ネットワーク：　複数のコンピュータがデータの送受信をできるようにするもの
* クラウドとはネットワーク経由でサーバーを利用できる形態のこと

## インフラ構成の一般的なアプローチ
1. VPCの作成
1. サブネットの作成（VPC内にPublicサブネット、Privateサブネットを作成）
1. ルーティングの設定
1. セキュリティグループの設定
1. EC2インスタンスなどのリソースの配置
## VPC(Virtual Private Cloud)
VPCとは仮想ネットワークで、クラウド内で独立したネットワーク空間を作るためのものです。
#### VPCの作成
基本的にAWSが作ったデフォルトのVPCは使わず、自分で作成したVPCを使用すします
![Screenshot 2024-09-26 at 18.50.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/2a8dff49-213a-eafd-94b1-c22cf48930fb.png)

##### 作成するリソース
**VPCの設定**
  * VPCのみ
    * VPCだけを作成します
  * VPCなど
    * サブネットやルートテーブル、NATゲートウェイなども一緒に作成します


**名前タグオプション**
  * VPCの名前。任意でよき

**IPv4CIDR ブロック**
  * CIDRブロック(IPアドレスの範囲)を自分で決めることができます
  * より小規模な環境では/20のように狭い範囲に設定することもできますが、/16が汎用的だそうです
:::note info
 プライベートIPアドレスの範囲
 10.0.0.0 ～ 10.255.255.255　←　内部ネットワークで使われるアドレス
:::

**IPv6CIDR ブロック**
  * IPv6はより多くのアドレスを提供するための次世代のIPアドレス

**テナンシー**
  * 仮想マシンがどのように配置されるかを示しています
  * デフォルトだと、他のユーザーと物理ホストを共有する形で仮想マシンを稼働させます
  * 専有だと、コストが増加しますが、データ隔離やパフォーマンスに関するメリットがあるそうです

#### サブネットの作成
VPCだとIPアドレスの範囲が広いのでサブネットで範囲を分割できます
分割することで、耐障害性があるや、DBサーバーを隠すことができるなどのメリットがあります。

サブネットのページからサブネットを作成するボタンを押すと作成の詳細を設定できます

* 分割したいVPCを選択します。今回は先ほど作ったVPCを選択します
![Screenshot 2024-09-26 at 19.49.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/1c2ef43a-aa04-d337-45bc-7b4f01dd9531.png)

* サブネットの設定を行います
![Screenshot 2024-09-26 at 19.53.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/7c55554f-9336-ef79-1919-a5fc5bb07546.png)

**サブネット名**
  * サブネットの名前。任意でよき


**アベイラビリティゾーン**
  * サブネットを設定するデータセンターのこと(物理的に（距離、地域的）離れた場所に設置されている)
  * 

**IPv4 VPC CIDR ブロック**
  * サブネットが所属するVPCのアドレス範囲

**IPv4 サブネット CIDRブロック**
  * サブネット自体のアドレス範囲
  * この画像だと、「10.0.20」という部分がネットワーク部で、残りの8ビットでホストのIPアドレスなので、2の8乗」、つまり256個のIPアドレスを使える

:::note info
 実際にはネットワークアドレスとブロードキャストアドレスが予約されているので254個
:::

* Webサーバを設置するアドレス（pubulic）とDBを設置するアドレス(private)を結果的に作成！
![Screenshot 2024-09-26 at 19.54.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/a4663a98-8644-af7c-6a3b-4e0c0f427257.png)


#### ルーティングを設定しよう
ルーターはどのデバイスがどのIPアドレスかの結びつけを行っている
##### インターネットに繋げるために必要なこと
* インターネットゲートウェイを設定 (インターネットの接続が必要なとき)
* ルートテーブルを作成し、（0.0.0.0/0）というルールを追加
 

 インターネットゲートウェイの作成（名前は任意）
![Screenshot 2024-09-28 at 11.55.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/3e87d0bf-1296-7cdf-e73d-a03c5c9efe17.png)

先程作ったVPCにAttachする
![Screenshot 2024-09-28 at 11.57.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/c091a4e4-5688-2b60-a480-a8d9203db7ea.png)


##### ルートテーブル
ルートテーブルには二つの種類があります。

* メインルートテーブル
  * VPC作成時に自動生成されるデフォルトのテーブル
* カスタムルートテーブル
  * 特定のサブネット用に作成する追加のルートテーブル

今回はWebサーバを設置するアドレス（publicサブネット用）のルートテーブルを作成します
![Screenshot 2024-09-28 at 12.55.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/ff149171-5ef5-bf70-24d0-a034f56d54d6.png)

作成したら、そのテーブルとサブネットを関連付けをします。（これでこのテーブルはpublicサブネットのテーブル）
ここでは、publicのネットワークトラフィックの経路の設定を意味しています。

![Screenshot 2024-09-28 at 12.58.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/db2d87f1-528e-ac08-7510-05d7d1dbdc16.png)

最後にpublicがインターネットに繋げるように先ほどのテーブルにインターネットゲートウェイを設定します。

![Screenshot 2024-09-28 at 12.59.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3494258/3655dd79-0597-3e0a-4b4c-5eec46e1e41c.png)


これで、publicはインターネットに繋ぐことができました。

以上で、VPC構築は終了です。
次回、構築したVPCにWebサーバーを構築するアウトプットを行おうと思います。
ここまでありがとうございました。間違い等ございましたら、指摘していただけると幸いです。

続きはEC2です

https://qiita.com/k-mat438/items/28efc2136fff8c944b6a