【初心者向け】AWSのVPCとは?ALB+EC2+RDSの基本構成での設定方法

【初心者向け】 AWSのVPCとは?ALB+EC2+RDSの 基本構成での設定方法のアイキャッチ プログラミング

本記事は、以下の目的で作成しています。

  • AWSのVPCと、それを構成するサブネット、インターネットゲートウェイ、ルートテーブルについての特徴や使い方が分かる
  • ALB+EC2+RDSの基本構成において、セキュリティを確保してVPCを構築する方法が分かる

AWS VPCとは?関連する用語について解説

AWSのVPCとは?そしてVPCに関連する、サブネット、ルートテーブル、インターネットゲートウェイについて解説していきます。

VPCについて

VPC(Virtual Private Cloud)とは、ユーザー専用のプライベートなクラウド環境を提供するサービスのことです。Webアプリケーションなどを作成する場合において、サーバーやロードバランサーとして、AWSのサービスであるALB、EC2、RDSなどを使用しますが、これらのサービス間を接続をするためのネットワーク空間について設定が必要となります。このネットワーク空間をVPCと呼び、作成したVPC内でネットワークの接続設定をカスタマイズしていきます。

サブネットについて

VPC内でのAWSサービス間でのネットワーク設定は、VPCを分割したネットワーク群であるサブネットによって実施していきます。それぞれのサブネットでは主に下記の項目について設定していきます。

  • プライベートorパブリック
  • AZ(アベイラビリティゾーン)
  • IPブロック

プライベートorパブリックの設定では、直接外のネットワークとは繋ぐことのできないプライベートサブネットであるか、外のネットワークからでも繋がっているパブリックサブネットであるかを設定します

AZ(アベイラビリティゾーン)とは、冗長的な電力源、ネットワーク、接続機能を備えるために、AWS リージョン内でそれぞれ切り離されたデータセンターのことです。1つのAZに障害が発生した場合でも他のAZが生きている状態を作るため、複数のAZを設定します。

IPブロック(IPv4 CIRDブロック)では、各VPCや各サブネットのIPレンジを設定します。ALB,EC2、RDSなどのAWS内のサービスが家だとすると、それを建てるための土地と住所を割り当てていくイメージで、土地と住所に相当するのがIPブロックとなります。IPブロックについては、以下の記事が参考になるのでぜひご覧ください。

https://www.itmanage.co.jp/column/about-ip-address/#ip-address-class-subnet-mask

ルートテーブルについて

ルートテーブルとは、サブネットのデータの流れを制御する設定です。ルートテーブルごとに、内部、または外部との接続可能なネットワークについて設定していきます。サブネットをプライベート、パブリックとして分けるためには、それぞれのルートテーブルを作成し、サブネットを割り当てます。

インターネッとゲートウェイについて

インターネットゲートウェイとは、VPC と外部のインターネットとの通信を可能にする機能です。今回設定するパブリックサブネットは、外部のインターネットとの通信が必要となります。そこでインターネットゲートウェイをパブリックのルートテーブルに設定することで、パブリックサブネットを外部のインターネットと通信可能にします。

ALB+EC2+RDSの基本構成におけるVPCの作成方法

実際にALB+EC2+RDSの基本構成におけるVPCを構築していきます。まず構成全体像を確認した後、下記の流れでVPCを構築していきましょう。

  • VPCを作成する
  • サブネットを作成する
  • インターネットゲートウェイを作成する
  • ルートテーブルを作成する

構成の全体像

本記事では、ALB+EC2+RDSの基本構成におけるVPCの作成方法について紹介していきます。構成としては、下記の図に示すとおりです。ALBと踏み台用のEC2はパブリックサブネット、アプリ用のEC2とRDSはプライベートサブネットに設定します。また、ALB、アプリ用EC2、RDSについては、冗長性を向上させるため2つのアベイラビリティゾーンを設定します。

AWSにおける、ALB + EC2 + RDSの基本構成におけるVPCの概略図

ここで、ALB、EC2、RDSについてそれぞれ簡単に説明します。

ALBについて

ALB(Aplication Load Balancer)とは、サーバー負荷(load)を低減させるために、外部からのリクエストを複数のサーバーに振り分け負荷分散するロードバランサーのサービスです。このロードバランサー機能によって、ユーザー数が増加してアクセスが増えた際に、サーバーを増やすことでアクセスの集中を他のサーバーに振り分けることが可能になります。

【AWS入門】AWSのELBとは?ロードバランサーの種類、特徴、料金を紹介 | よくわかるAWS・クラウド
AWSのELB(Elastic Load Balancing)とはウェブサーバーのアクセスなど、外部からの通信によりサーバーにかかる負荷を複数のサーバーに分散してくれるAWSが提供するロードバランサーサービスです。ELBの種類にはALB、N...

ALBについては、外部からのリクエストを受けるためパブリックサブネットに配置します。

EC2について

EC2(Elastic Compute Cloud)とは、仮想サーバー構築サービスです。EC2を利用することで、OSを乗せた仮想環境をクラウド上にすばやく作ることができます。また、OSを搭載しているため、EC2を使用することでWEBアプリケーションを起動することが可能となります。

AmazonのAWS EC2とは?はじめての人向けに解説 - TECH PLAY Magazine
Amazonが提供しているクラウドサービスのAWSといえば、仮想サーバー構築のクラウドサービスとして有名です。この記事ではAWS EC2の概要をはじめEC2を利用するメリット、インスタンス利用料金プランについても説明します。最後にEC2で利...

アプリのソースコードなどを格納するアプリ用のEC2インスタンスについては、セキュリティ上プライベートサブネットに構築します。しかし、アプリを起動させたりする上でアプリ用のEC2にSSH接続する必要がありますが、プライベートサブネットのため外部からの接続が出来ません。そこで、もう一つパブリックサブネットに踏み台用EC2インスタンスを用意します。アプリ用EC2に対しては、踏み台用EC2を経由してSSH接続していきます。

RDSについて

RDS(Relational Database Service)はAWSが提供しているデータベースサービスの一つです。データベースサーバーとしてRDSを使用することで、データ通信の高速化、障害発生に対する耐久性の確保、容易なサーバー追加による拡張が可能となります。

【初心者】AWS RDSとは?知っておくべき6つの利点と使い方
「AWS RDSってどういうサービスなんだろう?」今回はこんな疑問にお答えします。Amazon RDS(Amazon Relational Database Service)はAWSが提供しているデータベースサービスの一つで、mysqlやo...

RDSインスタンスについては、セキュリティ上プライベートサブネットに構築します。

VPCを作成する

まず、VPCを作成していきます。
AWSにログインした後で、右上のメニューから、「アジアパシフィック(東京)」のリージョンを選択します。

AWSで東京リージョンを選択する

AWSのコンソール画面から「VPC」と検索して、VPCのコンソール画面に移動します。VPCのコンソール画面に移動したら、画面右上の「VPCの作成」をクリックします。
ここでは、名前タグに「app-vpc」、IPv4 CIDR ブロックに 「10.0.0.0/16」、タグキーを「Name」 にして値に「app-vpc」と設定します。設定後に、画面最下にある「VPCを作成」をクリックします。
成功すると画像のように作成したVPCがリストアップされます。

AWS上で作成されたVPCのリスト

サブネットを作成する

続けて、サブネットを作成していきます。
VPCのコンソール画面左のメニューから「サブネット」を選択し、サブネット一覧画面の右上にある「サブネットを作成」をクリックします。
VPCには作成済みの「app-vpc」を選択し、下記7つのサブネットの設定をそれぞれ入力して、画面下にある「サブネットを作成」をクリックし、7つのサブネットを作成します。

  • サブネット名を「app-ec2-subnet-public」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.190.0/26」に設定
  • サブネット名を「app-ec2-subnet-private-a」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.193.0/26」に設定
  • サブネット名を「app-ec2-subnet-private-c」、 アベイラビリティゾーンを「1c」、IPv4 CIDRブロックは「10.0.193.64/26」に設定
  • サブネット名を「app-rds-subnet-a」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.194.0/26」に設定
  • サブネット名を「app-rds-subnet-c」、 アベイラビリティゾーンを「1c」、IPv4 CIDRブロックは「10.0.194.64/26」に設定
  • サブネット名を「app-elb-subnet-a」、 アベイラビリティゾーンを「1a」、IPv4 CIDRブロックは「10.0.128.0/24」に設定
  • サブネット名を「app-elb-subnet-c」、 アベイラビリティゾーンを「1c」、IPv4 CIDRブロックは「10.0.129.0/24」に設定

作成に成功すると、サブネットがリストアップされます。サブネットは、このようにVPCのIPの範囲から機能やAZごとに更にレンジを細分化しIPブロックを割り当てます

インターネットゲートウェイを作成する

次に、インターネットゲートウェイを作成していきます。
VPCのコンソール画面左のメニューから「インターネットゲートウェイ」を選択し、サブネット一覧画面の右上にある「インターネットゲートウェイの作成」をクリックします。
ここでは、名前を「app-internet-gateway」に設定し、画面下にある「インターネットゲートウェイの作成」をクリックして、インターネットゲートウェイを作成します。
作成されたインターネットゲートウェイの左端にあるチェックボックスにチェックを入れた後、画面右上の「ToDo」アイコンから「VPCをアタッチ」をクリックします。ページ移動後、使用可能なVPCに作成した「app-vpc」を選択し、画面下にある「インターネットゲートウェイのアタッチ」をクリックします。
画像のように「状態」が「Attached」となっているインターネットゲートウェイがリストアップされれば成功です。

AWSにて作成したインターネットゲートウェイの一覧画面

ルートテーブルを作成する

最後に、ルートテーブルを作成していきます。
VPCのコンソール画面左のメニューからを「ルートテーブル」選択し、ルートテーブル一覧画面の右上にある「ルートテーブルを作成」をクリックします。
ここで、VPCには作成した「app-vpc」を選択し、下記2つの名前をそれぞれ入力して、画面下にある「ルートテーブルを作成」をクリックすると、プライベート用とパブリック用の2つのルートテーブルが作成されます。

  • app-private-route-table (プライベートサブネット用のルートテーブル)
  • app-public-route-table(パブリックサブネット用のルートテーブル)

作成に成功すると、画像のように作成したルートテーブルがリストアップされます。

AWSでルートテーブル作成後の一覧画面

ルートテーブルを作成したら、ルートテーブル一覧画面のルートテーブルIDをクリックして表示される詳細画面にて、サブネット関連付けを実施していきます。
下記画像の「サブネット関連付け」タブをクリック後、「サブネットの関連付けを編集」をクリックして、作成した2つのルートテーブルに対して下記の組み合わせでサブネットをチェックボックスで選択し、「関連付けを保存」をクリックすることで関連付けを行います。

  • app-private-route-table
    • app-ec2-subnet-private-a
    • app-ec2-subnet-private-c
    • app-rds-subnet-a
    • app-rds-subnet-c
  • app-public-route-table
    • app-ec2-subnet-public,
    • app-elb-subnet-a
    • app-elb-subnet-c

作成に成功すると、下記の画像のように「明示的なサブネットの関連付け」にリストアップされます。

AWSでルートテーブルとサブネットの関連の一覧画面

サブネットの関連付けが完了したら、インターネットゲートウェイを設定します。
「app-public-route-table」の詳細画面にて「ルート」タブを選択し、「ルートを編集」のボタンをクリックします。ページ移動後、「ルートを追加」のボタンをクリックし、送信先に「0.0.0.0/0」を設定、ターゲットに作成したインターネットゲートウェイ(app-internet-gateway)を設定し、「変更を保存」をクリックします。
ルートに追加したインターネットゲートウェイが表示され、ステータスが「アクティブ」になっていれば成功です。

AWSのルートテーブルにインターネットゲートウェイを設定

以上で、ALB+EC2+RDSの基本構成におけるVPC・サブネットを構築とネットワーク設定が完了となります。ここからは作成したVPC・サブネットをベースに、外部からのリクエストに対するALBの設定や、EC2、RDSインスタンスの作成を進めていきましょう。

さいごに

また、本記事でVPCについて紹介してますが、WEBアプリのインフラを構築する方法についてもっと全体的に知りたいという方は、下記の『【初心者向け】AWSでWEBアプリのインフラを構築する方法(EC2 + ELB + RDS + ACM + Route53)』において、インフラを構築するための具体的なToDoアイテムと完了までの計画表をセットで公開してますので、ぜひご覧ください!

【初心者向け】AWSでWEBアプリのインフラを構築する方法(…
このプランでは、拡張性・耐久性・セキュリティに対応したサーバーから配信するWEBアプリのインフラを、AWSを使用して構築する方法を提供します。また、このプランを利用することで、初心者・独学でも、確実に短期間で、WEBアプリのインフラの構築を...

コメント

タイトルとURLをコピーしました