AWSの構成図を作りながら主要な機能を学ぼう！その２

#自己紹介
現在AWS SAA合格を目標に学習中の駆け出しエンジニアです。
2021年3月にAWS CLFに合格しました。
次のステップとしてSAAの学習を始めましたが、ハンズオンでAWSに触れながら学習する事と並行して、構成図を作成して自分にも他の人にも解りやすく説明できるレベルになる事を目指していきます。

前回の記事を見られる方はこちらをどうぞ
[その１ 構成図作成の環境を構築](https://qiita.com/megukentarou/items/33d2989623fe438c6371)

##記事の読み方
学習中の内容に沿っていくので、具体的なアプリ（ポートフォリオなど）のデプロイ手順とは少し異なる内容になると思います。AWSの仕組みをもっとよく知りたい人や、自分でネットワーク設計を行っていきたい人向けの内容になるかと思います。
もちろん私の様にSAA合格へ頑張る人に役立てれば最高です。
また構成図を見て、各サービスの関係性を理解する事を重視してますので、実際のハンズオンの手順と異なる点があると思います。その点はご容赦ください。

#その2 VPCとサブネットについて
まずはAWSのサービスの基本とも言えるVPC(Virtual Private Cloud)について考えていきます。
AWSは世界中に多数のデータベースセンター（多数のデータベース）を所有しており、それを**リージョン**と言う単位で分けています。

**リージョン**は基本的に世界の国や地域単位に応じて分けられており、日本だと東京リージョンや大阪リージョン（つい最近）が存在します。

私達はAWSからクラウドサービスの提供を受ける際に、世界中にあるリージョンからいずれかのリージョンを任意で決定して、そのリージョンにある中のサーバーの一部を利用する事になります。

さらに**リージョン**は複数の**アベイラベリティゾーン（AZ）**と言う単位で構成されています。
**アベイラベリティゾーン（以下AZ）**は複数のデータベースセンターをひとまとめに区切ったイメージです。
リージョンを１つのパチンコ屋に例えるなら、AZは４円パチンコ・１円パチンコ・２０円スロット・５円スロットのシマに分類するイメージでしょうか。

AWSのサービスを利用する上で**リージョン**と**AZ**の概念は必要になりますので、自分なりのイメージを持っておきましょう。

##VPC
次にVPCと言うサービスを使って、様々なサービスを利用する仮想空間を確保すると言った事を行います。
現実世界で例えるならお花見の場所取りの様なものでしょうか。
VPCは1アカウント1リージョンにつき最大5つまで作成可能です。
リージョンに関しては海外のリージョンなども選択可能ですが、自身の環境と距離が離れる事で通信速度などにも影響が出る事を考慮して、今回は東京リージョンを利用する予定で記事は進めていきます。
東京リージョンを選択してVPCを作成すると、3つのAZが利用可能になります

![スクリーンショット 2021-03-20 10.35.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/c0c58f66-fe06-a60d-a091-b78a800b4020.png)

VPCの単位としては１つのサービスやアプリなどで区切る方が良さそうですので、サービスAやサービスBなどを別々に作成していく場合などはVPCを複数準備するイメージで良いと思います。

ただ、このVPCを作成しただけでは具体的なサービスを受ける事はまだ出来ません。
次のステップに進んでいきます。

##サブネットを作成しよう
次にサブネットと言う考え方について学んでいきたいと思います。
**『サブネットはVPCの中に作成していく小さなネットワーク領域になります。』**

![スクリーンショット 2021-03-20 10.36.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/2596dcaf-7f72-0a09-69a5-fc3a3dfeb278.png)


はい、一気に何を言っているのか解らなくなってきましたね。

そこで具体的なイメージを持つ為にVPCを違う表現で考えていこうと思います。
今回はVPCをコンビニに例えてみましょう。

コンビニ（VPC)の場合ですと、お客さんが買い物をする際に行き来をする**フロアスペース**や**トイレ**、レジやタバコが置いてある**レジスペース**、更には店長と本部の人が話してそうな**事務所スペース**、あとは商品の予備を保管する**バックヤード**などが存在します。
この中で我々お客が利用できるのはフロアスペースやトイレのみで、残りはスタッフの方が使用するスペースになります。こう言った区切りを作っていく事が**サブネット**の考え方になります。

ここでもう少し踏み込んだ話をしていきます。
先程のコンビニの例で考えてみると、どうやらお店の中にはお客さんに利用して貰いたい領域と、そうでない領域が存在する様です。
これは**サブネット**も同様にあてはめる事が出来ます。

AWSではサブネットを作成する際に、
**パブリックサブネット**
ユーザーに公開するリソースを有する領域（HP画面など）
**プライベートサブネット**
管理者側だけで管理していたいリソースを有する領域（顧客データや新商品の売上データなど）
に分けて作成する事が可能です。

**パブリックサブネット**と**プライベートサブネット**を使い分けていき、普段私達が利用している様々なサービスで登録している個人情報なども高いセキュリティ管理下に置かれる事で、第三者から簡単に悪用されない様になっているのでしょうね。

![スクリーンショット 2021-03-20 10.38.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/1a56444f-ef27-1518-0105-4848e2659748.png)

ここまでのイメージは大丈夫でしょうか？

ここでサブネット作成時の注意点を押さえておきます。

###サブネットは１つのAZ内で作成する
![スクリーンショット 2021-03-20 15.58.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/4de9ae75-1b13-8c89-5d6d-44d02e5ff377.png)


###サブネットは複数のAZにまたがって作成する事は出来ない
![スクリーンショット 2021-03-20 10.41.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/086b482b-7cec-9afd-4a10-1ceaab3d7578.png)

最後にリージョンが複数の**AZ**に分かれている理由にも少し触れてみようと思います。

前提として**AZ**同士は距離の離れた関係だと言う事だけイメージしておいてください。

例えば、ある地域で地震が発生しました。非常に大きな被害を発生する災害に発展した場合に、その地域に在る建物などにも大きな被害が及んでしまうと、自身の管理していたリソースにも影響がでる可能性も高くなってしまいます。

そこでAWSでは距離の離れた複数のAZに予備のサブネットを準備しておく事を推奨しています。

予備のサブネットを準備しておく事で、片方のAZがダメになってしまった場合にも、もう片方のAZに保存しているサブネットを利用する事で最悪の事態を免れる事が可能になります。

AWSではこの様な考え方を**冗長化で可用性を高める**とか言ったりします。
ただ私はどうもこの独特の言い回しに慣れない部分もありますので、
『離れた場所に予備を作って結構安心な状態にもっていく』とかに変換してから理解する様にしてます。
最初の内は細かいニュアンスの間違いは気にしないで学習を進めていきましょう。

###可用性のあるサブネット構成
![スクリーンショット 2021-03-20 11.01.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629627/20488eb1-9a94-fe1e-c63c-ae7640692aeb.png)

次回はパブリックサブネットに必要な条件について記事を書こうと思います。

ここまで読んでくださり、ありがとうございました。

リンク
[その３ パブリックサブネットに必要な条件についてへ](https://qiita.com/megukentarou/items/29ed8318a7c09cd0d4ff)