Amazon VPCの解説【AWSの基礎学習】

<!-- wp:paragraph -->
<p>こんにちは、yassanです。<br>今回は「<strong>Amazon VPCの解説【AWSの基礎学習】</strong>」を紹介します。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>AWSの中でもっとも土台となるサービスがVPCです。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>「会社でAWSをやることになったけど、右も左もわからない！」<br>「ざっと調べて見たけど、ふわっとした理解で不安...」</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>このような方も多いのではないしょうか。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>今回は、そのような方に向けて、Amazon VPCについて基礎から解説します。<br>この記事を読むことで、AmazonVPCについて理解することができると思いますので、ぜひ最後まで読んでいただけると嬉しいです。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>VPCとは？</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>VPCとは「Amazonがネットワーク環境を提供してくれるサービス」です。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>AWSというサービスによって、私たちユーザーは料金を支払うことでAmazonのコンピュータリソースを利用することができます。<br>そのAWSのハードウェアやコンピュータリソースは、どのユーザーも物理的に共有されたものを使うことになります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>共有されたものを使うと聞くと、セキュリティ的にどうなの？と思ってしまいますよね。<br>そこで、「VPC（Virtual Private Cloud）」の出番です。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>VPCという仮想ネットワーク環境を作ることで、論理的にコンピュータリソースを分割して利用することができるのです。<br>これによって、セキュリティの心配はしなくてよくなります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>コンピュータリソースはユーザー全体で共有するのでリソースを効率的に利用でき、それぞれの領域・区画を分けているのでセキュリティ的にも安心というわけです。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>VPC作成時には、プライベートIPアドレスの範囲で、「ここからここまでを使いますよ」というのを宣言しておく必要があります。<br>後述しますが、VPCの中に様々なネットワークやコンピュータリソースを配置することになります。<br>それぞれを配置するのにどれぐらい領域が必要なのかを最初に決めておく。と思っていてください。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>サブネットとルートテーブル</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>サブネットとは、VPC内部に構成するネットワークのことです。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>VPCで「プライベートIPアドレスのここからここまでを使いますよ」と宣言していましたが、サブネットは「その中でもプライベートIPアドレスのここからここまでは、サブネットAとします」と決めたものになります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>サブネットはVPC内に複数作ることができます。<br>サブネットとしてVPC内のネットワークを分けておくことにはセキュリティ上でのメリットがあります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>それは、インターネットとの不必要な接続を避けることができることです。<br>サブネットをインターネットと接続するサブネットとインターネットと接続できないサブネットに分けることで実現します。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>インターネットに接続するサブネットをパブリックサブネット。<br>インターネットに接続しないサブネットをプライベートサブネット。と呼びます。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>サブネットを作成するときに、ルートテーブルというものを定義します。<br>このルートテーブルにデフォルトゲートウェイをインターネットゲートウェイに設定したものが、パブリックサブネットになります。<br>（インターネットゲートウェイは、次の章で解説します）<br>デフォルトゲートウェイをインターネットゲートウェイに設定していないものが、プライベートサブネットになります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ルートテーブルというのは「サブネット内のサービス（コンピュータリソース）がどこと通信できるものかを定義したもの」と解釈するとわかりやすいです。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>インターネットとの安全な接続</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>VPC内のリソースとインターネットを接続するためには、インターネットゲートウェイを利用します。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>VPCにアタッチすることで、VPC内のリソースがインターネットにアクセスすることができます。<br>もちろん、通信できるのはパブリックサブネットの中にあるリソースだけです。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>これで、セキュリティに関してバッチリではあるのですが、<br>実際のところ使い勝手が悪いです。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>例えば、プライベートサブネットにあるライブラリをインターネットを介してアップデートをしたいとなったとき、このままではプライベートサブネット内にあるリソースは一生アップデートできません。<br>かといって、一時的にプライベートサブネットをパブリックサブネットに変更することも望ましくありません。<br>では、どうしたら良いのでしょうか？</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>そこで、NATゲートウェイの出番です。<br>NATとは、プライベートIPアドレスをグローバルIPアドレスに変換する機能を持っています。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>NATゲートウェイを利用することで、プライベートサブネット内のリソースはパブリックサブネットを経由することでインターネットと安全に通信ができます。<br>NATゲートウェイを設定するには、プライベートサブネットにNATゲートウェイを配置してプライベートサブネットのデフォルトゲートウェイをNATゲートウェイに指定します。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>リージョンとアベイラビリティゾーン</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>AWSには、リージョンとアベイラビティゾーンという概念があります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>パブリッククラウドといえど、この世界のどこかにコンピュータリソースを提供するハードウェアが存在します。<br>AWSも、世界中にコンピュータリソースを所有しています。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>リージョンというのは、そのコンピュータリソースを配置している地域のことです。<br>例えば、日本の場合は、東京リージョンと大阪リージョンがあります。<br>（大阪リージョンは最近新しくできました。）</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>日本の例を見てもわかる通り、リージョン＝国ではなく、リージョン＝地域であることに注意してください。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>一方、アベイラビリティゾーン（AZ）は何かというと、コンピュータリソースを提供しているデータセンター群になります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>AZは、リージョンの中に複数存在します。<br>例えば、東京リージョンには、AZが3つあります。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>AWSの各サービスは、<br>グローバル　＞　リージョン　＞　AZ　のようにサービスレベルが異なります。<br>例えば、VPCはリージョン単位のサービスです。<br>VPCのサブネットはAZを跨いだ設定をすることが可能ですが、リージョンを跨いだ設定をすることはできません。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>利用したいサービスが、どのレベルのサービスなのか、知っておきましょう。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>まとめ</h2>
<!-- /wp:heading -->


<!-- wp:paragraph -->
<p>VPCは、AWSの仮想ネットワーク空間のことを指します。<br>さらに細かく分けたものを、サブネットと呼びます。<br>インターネットゲートウェイを通じて、パブリックサブネットは外部との通信を行います。<br>NATゲートウェイを通じて、プライベートサブネットは外部と安全な通信をおこないます。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>VPCは、AWSのコンピュータリソースを管理する大きな枠、のように捉えていただけると良いかと思います。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ここまで読んでいただき、ありがとうございました。</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>参考</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>リージョンとAZについて説明されています。<br><a href="https://qiita.com/avicii2314/items/5e277517f1918fce413a" target="_blank" rel="noreferrer noopener" title="https://qiita.com/avicii2314/items/5e277517f1918fce413a">AWS リージョンとAZ</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>全体像が把握するのに良いです。<br><a href="https://www.bit-drive.ne.jp/managed-cloud/column/column_31.html" target="_blank" rel="noreferrer noopener">【ネットワーク】&nbsp;脱・知ってるつもり！AWSのネットワーク関連用語を基礎からおさらい</a><br><a href="https://qiita.com/saitotak/items/d2ede050e7a2224da46d" target="_blank" rel="noreferrer noopener">AWS サービスがどこにあるのかまとめ</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>NATの詳しい説明は、こちらがわかりやすいです。<br><a href="https://www.infraexpert.com/study/ip10.html" target="_blank" rel="noreferrer noopener">NAT （ Network Address Translation ）</a></p>
<!-- /wp:paragraph -->