AWS では、仮想プライベートクラウド (VPC) を使用すると、クラウド内にプライベートネットワークを設定し、EC2 インスタンスやデータベースなどの AWS リソースを起動できます。 2 層アーキテクチャは、クラウド アプリケーションで最も一般的な設定の 1 つであり、パブリック コンポーネントとプライベート コンポーネントを明確に区別します。このアーキテクチャには通常、パブリックとプライベートの 2 つの主要なレイヤーがあります。
この記事では、VPC の 2 層アーキテクチャ、そのコンポーネント、それらの構成方法、および AWS でのデプロイと操作方法を理解するのに役立つユースケースについて説明します。
2 層アーキテクチャとは何ですか?
2層アーキテクチャ次のようなデザインです:
- 1階(パブリックレイヤー)Web サーバーなど、インターネットからアクセスする必要があるコンポーネントが含まれています。
- 2階(プライベート層)データベース サーバーなど、直接のインターネット アクセスから分離されたコンポーネントが含まれます。
2層アーキテクチャのコンポーネント
AWS 上の 2 層 VPC セットアップの基本コンポーネントを見てみましょう。
1.パブリックサブネット
パブリックサブネットは VPC の一部であり、インターネットに直接接続されます。これらのサブネット内のリソース (Web サーバーやロード バランサーなど) は、インターネットと通信できます。
2.プライベートサブネット
プライベートサブネットはインターネットから分離されています。セキュリティ上の理由から、データベース サーバーや内部サービスなどのこれらのサブネット内のリソースは、インターネットに直接アクセスできません。
3.パブリック層のEC2インスタンス
これらの EC2 インスタンスは通常、アプリケーションをホストする Web サーバーです。これらは、パブリックサブネットElastic IP またはロードバランサーを介してインターネットからアクセスできます。
4.データベースインスタンス(プライベート層)
データベース(Amazon RDSやEC2などのデータベース)は次の場所にあります。プライベートサブネットインターネットに直接公開されないようにします。パブリックサブネット内の EC2 インスタンスのみが通信できます。
5.NATゲートウェイ
NATゲートウェイプライベートサブネット内の EC2 インスタンスがインターネットにアクセスして、着信インターネットトラフィックに公開することなく、ソフトウェア更新や API 呼び出しなどのタスクを実行できるようにします。
6.メインルーティングテーブル
VPC のメイン ルート テーブルは、ネットワークのデフォルト ルートを定義し、トラフィックを VPC 内およびインターネット (インターネット ゲートウェイ経由) に送信します。
7.パブリックサブネットルートテーブル
パブリックサブネットのルートテーブルは、インターネットへのトラフィックをインターネットゲートウェイ。
8.インターネットゲートウェイ
インターネットゲートウェイVPC をインターネットに接続し、パブリックサブネット内のリソースが外部と通信できるようにします。
9. VPCエンドポイント
VPCエンドポイントインターネット経由でトラフィックをルーティングせずに、VPC を S3 や DynamoDB などの AWS サービスにプライベートに接続できます。
使用例: シンプルなWebアプリケーションの設定
AWS で 2 層アーキテクチャを使用してシンプルな Web アプリケーションをセットアップするためのナビゲーション手順を見ていきましょう。この例では、Web アプリケーション用に EC2 インスタンス (パブリック サブネット内) を使用し、データベース用に RDS インスタンス (プライベート サブネット内) を使用します。
ステップ1: VPCを作成する
- AWS コンソールの VPC ダッシュボードに移動します。
- AWSのメインコンソールからVPC セクション。
- クリックVPCを作成するCIDRブロックを指定します(例:
10.0.0.0/16
)。
- パブリック層とプライベート層のサブネットを作成します。
- パブリックサブネット: CIDRブロックを持つサブネットを作成します。
10.0.0.0/24
VPC の場合と同じです。 - プライベートサブネット: 次のようなCIDRブロックを持つ別のサブネットを作成します。
10.0.1.0/24
プライベートレイヤー。
- パブリックサブネット: CIDRブロックを持つサブネットを作成します。
ステップ2: ルーティングテーブルを設定する
- メインルーティングテーブル:
- AWS は VPC のメインルートテーブルを自動的に作成します。これを使用してサブネット間のルーティングを行うことができます。
- パブリックサブネットのルーティングテーブル:
- パブリック サブネットの新しいルート テーブルを作成し、それをパブリック サブネットに関連付けます。
- インターネットゲートウェイに追加ルート。
- プライベートサブネットルーティングテーブル:
- プライベートサブネットの新しいルートテーブルを作成します。
- に追加するNATゲートウェイこれにより、プライベート リソースからの送信インターネット トラフィックが許可されます。
ステップ3: EC2インスタンス(パブリック層)をセットアップする
- パブリックサブネットで EC2 インスタンスを起動します。
- AWSコンソールへ移動EC2です。
- パブリックサブネットでパブリック IP を使用して EC2 インスタンスを起動します。 Amazon Linux や Ubuntu などの基本的な Web サーバー AMI を使用できます。
- インスタンスが次の場所にあることを確認してくださいパブリックサブネットHTTP/HTTPS トラフィック (ポート 80 および 443) を許可するセキュリティ グループをアタッチします。
- Web サーバーをインストールして構成します。
- EC2 インスタンスが実行中になったら、インスタンスに SSH で接続し、Web サーバー (Apache や Nginx など) をセットアップします。
ステップ4: RDSデータベース(プライベート層)をセットアップする
- RDS インスタンスを作成します。
- AWSコンソールへ移動RDS。
- 新しいデータベースインスタンスを起動し、データベースエンジン(MySQL、PostgreSQLなど)を選択し、実行するように設定します。プライベートサブネット駆け込んでください。
- 確認する公共のアクセシビリティ設定いいえ、インターネットへの直接アクセスを防止します。
- EC2 インスタンスを RDS データベースに接続します。
- RDS インスタンスの内部 DNS 名またはプライベート IP アドレスを使用して RDS インスタンスに接続するように Web サーバーを構成します。
ステップ5: NATゲートウェイの設定
- パブリックサブネットに NAT ゲートウェイを作成します。
- 入力VPC選択してNATゲートウェイ。
- パブリックサブネットに新しい NAT ゲートウェイを作成し、Elastic IP に関連付けます。
- プライベートサブネットのルーティングテーブルを更新します。
- プライベートサブネットのルートテーブルで、インターネット宛のトラフィックが NAT ゲートウェイにルーティングされることを確認します。
ステップ6: インターネットゲートウェイに接続する
- インターネット ゲートウェイを作成して接続します。
- へ移動VPC、次にインターネットゲートウェイ。
- 新しいインターネットゲートウェイを作成し、VPC に接続します。
ステップ7: アーキテクチャをテストする
- Web サーバーへのアクセスをテストします。
- Web ブラウザを開き、EC2 インスタンスのパブリック IP にアクセスします。 Web アプリケーションが実行されているのが確認できます。
- データベースアクセスをテストします。
- パブリックサブネット内の EC2 インスタンスがプライベートサブネット内の RDS インスタンスと通信できることを確認します。
まとめ
AWS 上のこの 2 層 VPC アーキテクチャでは、パブリックサブネットはインターネットに公開されている EC2 インスタンスをホストし、プライベートサブネットは直接公開されていないデータベース (RDS) をホストします。 NAT ゲートウェイは、プライベート リソースが更新やサービスのためにインターネットにアクセスできるようにし、インターネット ゲートウェイはパブリック リソースが世界と通信できるようにします。
このアーキテクチャは、クラウド アプリケーションにセキュリティ、スケーラビリティ、高可用性を提供します。機密データや内部サービスが外部からアクセスできないようにしながら、Web 層とデータベース層を分離する必要があるユースケースに最適です。