こんにちは、yassanです。
今回は「Amazon VPCの解説【AWSの基礎学習】」を紹介します。
AWSの中でもっとも土台となるサービスがVPCです。
「会社でAWSをやることになったけど、右も左もわからない!」
「ざっと調べて見たけど、ふわっとした理解で不安...」
このような方も多いのではないしょうか。
今回は、そのような方に向けて、Amazon VPCについて基礎から解説します。
この記事を読むことで、AmazonVPCについて理解することができると思いますので、ぜひ最後まで読んでいただけると嬉しいです。
VPCとは?
VPCとは「Amazonがネットワーク環境を提供してくれるサービス」です。
AWSというサービスによって、私たちユーザーは料金を支払うことでAmazonのコンピュータリソースを利用することができます。
そのAWSのハードウェアやコンピュータリソースは、どのユーザーも物理的に共有されたものを使うことになります。
共有されたものを使うと聞くと、セキュリティ的にどうなの?と思ってしまいますよね。
そこで、「VPC(Virtual Private Cloud)」の出番です。
VPCという仮想ネットワーク環境を作ることで、論理的にコンピュータリソースを分割して利用することができるのです。
これによって、セキュリティの心配はしなくてよくなります。
コンピュータリソースはユーザー全体で共有するのでリソースを効率的に利用でき、それぞれの領域・区画を分けているのでセキュリティ的にも安心というわけです。
VPC作成時には、プライベートIPアドレスの範囲で、「ここからここまでを使いますよ」というのを宣言しておく必要があります。
後述しますが、VPCの中に様々なネットワークやコンピュータリソースを配置することになります。
それぞれを配置するのにどれぐらい領域が必要なのかを最初に決めておく。と思っていてください。
サブネットとルートテーブル
サブネットとは、VPC内部に構成するネットワークのことです。
VPCで「プライベートIPアドレスのここからここまでを使いますよ」と宣言していましたが、サブネットは「その中でもプライベートIPアドレスのここからここまでは、サブネットAとします」と決めたものになります。
サブネットはVPC内に複数作ることができます。
サブネットとしてVPC内のネットワークを分けておくことにはセキュリティ上でのメリットがあります。
それは、インターネットとの不必要な接続を避けることができることです。
サブネットをインターネットと接続するサブネットとインターネットと接続できないサブネットに分けることで実現します。
インターネットに接続するサブネットをパブリックサブネット。
インターネットに接続しないサブネットをプライベートサブネット。と呼びます。
サブネットを作成するときに、ルートテーブルというものを定義します。
このルートテーブルにデフォルトゲートウェイをインターネットゲートウェイに設定したものが、パブリックサブネットになります。
(インターネットゲートウェイは、次の章で解説します)
デフォルトゲートウェイをインターネットゲートウェイに設定していないものが、プライベートサブネットになります。
ルートテーブルというのは「サブネット内のサービス(コンピュータリソース)がどこと通信できるものかを定義したもの」と解釈するとわかりやすいです。
インターネットとの安全な接続
VPC内のリソースとインターネットを接続するためには、インターネットゲートウェイを利用します。
VPCにアタッチすることで、VPC内のリソースがインターネットにアクセスすることができます。
もちろん、通信できるのはパブリックサブネットの中にあるリソースだけです。
これで、セキュリティに関してバッチリではあるのですが、
実際のところ使い勝手が悪いです。
例えば、プライベートサブネットにあるライブラリをインターネットを介してアップデートをしたいとなったとき、このままではプライベートサブネット内にあるリソースは一生アップデートできません。
かといって、一時的にプライベートサブネットをパブリックサブネットに変更することも望ましくありません。
では、どうしたら良いのでしょうか?
そこで、NATゲートウェイの出番です。
NATとは、プライベートIPアドレスをグローバルIPアドレスに変換する機能を持っています。
NATゲートウェイを利用することで、プライベートサブネット内のリソースはパブリックサブネットを経由することでインターネットと安全に通信ができます。
NATゲートウェイを設定するには、プライベートサブネットにNATゲートウェイを配置してプライベートサブネットのデフォルトゲートウェイをNATゲートウェイに指定します。
リージョンとアベイラビリティゾーン
AWSには、リージョンとアベイラビティゾーンという概念があります。
パブリッククラウドといえど、この世界のどこかにコンピュータリソースを提供するハードウェアが存在します。
AWSも、世界中にコンピュータリソースを所有しています。
リージョンというのは、そのコンピュータリソースを配置している地域のことです。
例えば、日本の場合は、東京リージョンと大阪リージョンがあります。
(大阪リージョンは最近新しくできました。)
日本の例を見てもわかる通り、リージョン=国ではなく、リージョン=地域であることに注意してください。
一方、アベイラビリティゾーン(AZ)は何かというと、コンピュータリソースを提供しているデータセンター群になります。
AZは、リージョンの中に複数存在します。
例えば、東京リージョンには、AZが3つあります。
AWSの各サービスは、
グローバル > リージョン > AZ のようにサービスレベルが異なります。
例えば、VPCはリージョン単位のサービスです。
VPCのサブネットはAZを跨いだ設定をすることが可能ですが、リージョンを跨いだ設定をすることはできません。
利用したいサービスが、どのレベルのサービスなのか、知っておきましょう。
まとめ
いかがでしたでしょうか。
VPCは、AWSの仮想ネットワーク空間のことを指します。
さらに細かく分けたものを、サブネットと呼びます。
インターネットゲートウェイを通じて、パブリックサブネットは外部との通信を行います。
NATゲートウェイを通じて、プライベートサブネットは外部と安全な通信をおこないます。
VPCは、AWSのコンピュータリソースを管理する大きな枠、のように捉えていただけると良いかと思います。
参考
リージョンとAZについて説明されています。
AWS リージョンとAZ
全体像が把握するのに良いです。
【ネットワーク】 脱・知ってるつもり!AWSのネットワーク関連用語を基礎からおさらい
AWS サービスがどこにあるのかまとめ
NATの詳しい説明は、こちらがわかりやすいです。
NAT ( Network Address Translation )
AWS学習におすすめの書籍
AWSについて、しっかりと基礎から学びたい、実践的なスキルを身につけたいと考えている方向けに、おすすめの書籍を紹介します。
これらの書籍は、実際にAWSエンジニアとして働く僕が参考にしている書籍です。
AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ
AWSを使いこなすための前提となるITインフラの知識が足りない初学者にとって、どこからどのように学べばよいのかがわかりづらくなっています。そこで本書では、AWS学習サイト運営YouTuberである監修者自身が実サービスの導入で習得しながら体系化した「学習ロードマップ」に沿って、AWSのサービスとIT技術をやさしく解説していきます。
著者が作成した学習ロードマップに沿って、AWSやインフラストラクチャを体系的に学ぶことができます。
付属のロードマップの完成度が高く、学習に迷ったときや復習にも使えます。
これからAWSエンジニアを目指す方や、インフラストラクチャを基礎から学びたい方におすすめです。
Amazon Web Services 業務システム設計・移行ガイド
オンプレミス上に構築された業務システムをAWS上に移行するための「サービスの選定」「ネットワーク設計・構築」「サーバとデータの移し方」「運用・監視体制の構築」など。これまで多くの企業にAWSを導入し、コンサルティングフェーズから実際の設計・開発、運用フェーズまでの全行程に携わってきた著者陣のノウハウを凝縮して、一般的な企業にAWSを導入する際のベストプラクティスをお届けします。
実務を想定した様々なユースケースとそれに対するベストプラクティスを、設計構築から運用まで幅広くカバーして紹介しています。
タイトルからは移行に焦点を当てたように見えますが、僕としては移行に限らずエンタープライズとしてAWSを利用する上で知っておくべきことが記されていると思います。
より実践的な知識やノウハウを身に着けたい方、初学者から一皮むけたい方におすすめです。