AWSのVPCについて

AWSを扱う上で必須となるVPCについて勉強をしたので自身の理解・復習また文章力の向上のためアウトプットさせていただきます。

<h1>はじめに</h1>

実際にAWSコンソールで触っていく前に今回の勉強で必要な用語の勉強をしましたので以下で説明します。
・リージョン
・アベイラビリティゾーン
・VPC

<h3>リージョン</h3>
AWSはクラウドサービスを提供するために、世界各地にデータセンターを保有しています。よってAWSサービスを利用する際には、このデータセンターの一部を使っている事になります。
これらのデータセンターは、「リージョン」という単位で地理的に分割して管理されています。
リージョンとリージョンの間は完全に分離されておりますのであるリージョンで障害が発生しても、他のリージョンに影響が及ぶことはありません。

リージョンはその地域の法律に準拠しているので、データ保護法等について考える必要も少なくなります。
<p>データ保護法等については<a href="https://www.iso27001.jp/blog/cloud/5256/" target="_blank" rel="noopener noreferrer">この記事</a>を参考にしています。</p>

<h3>アベイラビリティゾーン</h3>
1つのAWSリージョン内でそれぞれ切り離され、冗長的な電力源、ネットワーク、そして接続機能を備えている1つ以上のデータセンターのことです。

【<a href="https://aws.amazon.com/jp/about-aws/global-infrastructure/regions_az/" target="_blank">Amazon Web Services,Inc</a>】こちらを引用しています。
要するに「データセンターが1つ以上集まって構成するグループ」をアベイラビリティゾーンと言います。


<h3>VPC</h3>
AWSサービスを起動するためのユーザー専用のプライベートな仮想ネットワークで、上記で記載したリージョン内に作成します。

AWSサービス(EC2など)をVPCという入れ物に入れることで、インターネットに公開したりすることができるようになります。

<h1>全体図</h1>
下記の図は上記の内容を全体図で表した図になります。

![aws.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3523101/b4deecf2-4941-a3c1-f087-050becfe7433.jpeg)
リージョン＞アベイラビリティゾーン＞VPC＞AWSサービス(EC2など)の順で入れ込みをしていきサービスを公開していきます。

<h1>VPCの各種設定</h1>
ここからはVPCの各種設定について書いていきます。

<h3>デフォルトのVPC</h3>

デフォルトのVPCには最低限必要な設定がされています。
各リージョンに一つだけ作成することができ、クリックするだけで何度でも作成できます。

<h3>IPv4 CIDRブロック</h3>
<h4>CIDRブロックとは</h4>
CIDRのプレフィックスに基づいてIPアドレスを解釈するアドレスのグループのことで

つまりCIDRプレフィックスで記載したIPアドレスの範囲をCIDRブロックとしてネットワーク割当や設定の対象アドレスとして指定することができます。
許可されるブロックサイズは、/16 サブネットマスク（65,536 個の IP アドレス）から /28 サブネットマスク（16 個の IP アドレス）の間になっています。
＊VPCを一度作成すると変更することはできないです。

<h3>IPv6 CIDRブロック</h3>

IPv4アドレスの枯渇の懸念されIPv4 CIDRブロックよりもたくさん定義できるようにしたのがIPv6 CIDRブロックになります。
<p>IPアドレスの不足は<a href="https://mypage.otsuka-shokai.co.jp/contents/business-oyakudachi/pc-techo/2013/201312.html" target="_blank" rel="noopener noreferrer">この記事</a>を参考にしています。</p>

<h3>テナンシー</h3>
顧客が運用するアプリがコンプライアンス上、他社のEC2と同一サーバを同居できない場合などに、ハードウェアを専有するために利用される。

＊「デフォルト」では他のアカウントと同居します。

<h3>フローログ</h3>

VPCフローログは、VPCの中にあるサービス間で,どの様に情報が行き来しているかを把握するための機能のことです。
フローログデータは、「Amazon CloudWatch Logs」「Amazon S3」または「Amazon Kinesis Data Firehose」に発行できます。
＊デフォルトでは、IAM ユーザーにはフローログを利用するためのアクセス許可がないので、利用したい場合はIAMポリシーをIAMユーザーにアタッチする必要があります。

<h3>DHCP オプションセットの編集</h3>

IPv4で通信を行う時、個々のホストにIPv4アドレス、 サブネットマスク、DNSサーバのアドレス等設定することがたくさんありますがDHCPを利用すると、これらの設定を自動でしてくれます。
＊ただしDHCP オプションセットを作成後に変更することはできません。VPC で異なる DHCP オプションセットが必要な場合は、新しいオプションセットを作成して VPC に関連付ける必要があります。または、VPC がデフォルトのオプションセットを使用するか、DHCP オプションを使用しないように指定することもできます。
<a href="https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/DHCPOptionSet.html" target="_blank">こちら</a>の【DHCP オプションセットを作成する】を参照しています。

<h3>DNS</h3>

インターネットで利用される名前を、対応する IP アドレスに変換するためのシステムです。

<h3>DNS 解決の編集・DNS ホスト名の編集</h3>
<h4>プライベートホストゾーンとは</h4>
VPC内のサーバー間で名前解決したい場合などVPC内のみで名前解決をしてくれるものです。
また、このプライベートホストゾーンを利用するためには、DNS 解決、DNS ホスト名の編集の設定が必要になります。

反対にVPC外で名前解決をするのは「パブリックホストゾーン」となります。
＊DNS ホスト名の編集はデフォルトでは無効になっているので注意が必要です。

<h3>タグ</h3>

「キー」にName,Role,Purpose,Stage,Teamなどを設定しAWSサービスを区別するために使われます。
今回の検証した段階ではAWSサービスを作成する際にキーにName、値にAWSサービスに付けたい名前を設定するのみ行いました。
上記の結果はAWSサービスに名前をつけてくれます。

<h1>思ったこと</h1>

今回VPCを勉強したことにより「IPv4」や「タグ」などは何となくは理解がありましたが、「IPv6」 「CIDRブロック」「テナンシー」「DNS」など知らない事が多い事を知りました。
勉強していく中でこれらはどれもAWSのサービスの中で一番基盤になるサービスで理解の必要性をとても感じました。
またネットワーク構成が複雑だったりするので、長期的に運用するのであれば基盤をしっかりと勉強・理解し考える必要があると感じました。
これだけで済ますのではなくまだまだ勉強していこうと思います。

最後まで読んでいただいた方、ありがとうございました。