見出し画像

AWSインフラの基本と実践:初心者でもできるクラウド構築 第3回

2.ネットワーキングの基礎


インターネットを使ってアプリやサービスを提供するためには、「ネットワーキング」という仕組みが重要になります。ネットワーキングとは、サーバーやコンピュータ同士が情報をやり取りするためのつながり方を指します。これがしっかりしていないと、アプリやウェブサイトが遅くなったり、アクセスできなくなったりすることがあります。

AWSには、このネットワーキングを簡単に管理できるいくつかのサービスがあります。ここでは、ネットワーキングの基本的な部分を紹介します。

1. Virtual Private Cloud (VPC)

  • VPCは、AWSの中に自分だけのプライベートなネットワーク環境を作る仕組みです。たとえば、学校で使うWi-Fiのように、他の人からは見えない自分だけのネットワークを作れます。

  • VPCでは、自分がどのサーバーやコンピュータがインターネットにアクセスできるか、または他のネットワークとどうつながるかを自由に設定できます。

  • VPCを使うと、インターネットに公開するサーバーと、内部でしか使わないサーバーを分けて、必要な部分だけを安全に管理することができます。

  • 主に以下の構成要素から出来ています。

1.1. サブネットについて

  • サブネットは、VPC内でネットワークをさらに小さく分割した区画のことです。例えば、VPC内に複数のサブネットを作成することで、インターネットアクセスが必要なサーバーを配置する「パブリックサブネット」と、内部利用のみに制限する「プライベートサブネット」に分けることができます。

  • サブネットを使うと、各サーバーやサービスのネットワーク構成を細かく設定でき、セキュリティやアクセス制御がしやすくなります。また、サブネットごとに異なるルールを設定することで、必要な部分のみアクセス可能にするなど、効率的な管理が可能です。

パブリックサブネットとプライベートサブネット

1.2. アベイラビリティゾーン (AZ) について

  • アベイラビリティゾーン(AZ)は、AWSが提供するデータセンターの物理的な区画です。VPC内でサブネットを作成する際、異なるAZに配置することで、システムの耐障害性と可用性を高めることができます。

  • AZは地理的に離れた場所に配置されているため、災害や障害が発生しても、別のAZに配置したサーバーが稼働を続けられます。このようにAZを活用することで、サービスが中断するリスクを最小限に抑え、高い信頼性のあるシステムを構築できます。

  • 各サブネットはいずれかのAZに紐づけられています。

サブネットとアベイラビリティゾーン(AZ)の役割

1.3. ルートテーブルについて

  • ルートテーブルは、サブネット内の通信経路を定義するための設定であり、どの宛先にどのようなルートを使って通信するかを指定します。たとえば、パブリックサブネットにはインターネットゲートウェイ経由のルートを設定し、インターネットとの通信ができるようにします。

  • ルートテーブルにより、サブネットごとに異なる経路を設定でき、外部ネットワークや他のサブネット間の接続を自由に制御可能です。これにより、インターネットに公開したくない内部リソースを確実に保護しながら、柔軟なネットワーク設計が実現できます。

2. Elastic Load Balancer (ELB)

  • ELBは、たくさんの人が同時にアプリやサービスにアクセスしたときに、サーバーの負担を分散する役割を持っています。

  • たとえば、ゲームや動画サイトに急にアクセスが増えると、一つのサーバーだけでは耐えられなくなるかもしれません。そこで、ELBを使うと、アクセスを複数のサーバーに均等に振り分けて、どのサーバーも過負荷にならないように調整します。

  • これにより、アプリやサービスが常に安定して動き、利用者が快適に使えるようになります。

  • 主に以下の構成要素から出来ています。

2.1. Network Load Balancer (NLB) について

  • NLBは、ネットワーク層(レイヤー4)で動作し、非常に高速で大規模なトラフィックを処理するためのロードバランサーです。TCPやUDPのプロトコルを使った低レイテンシな通信に適しており、数百万リクエストを効率よく処理します。

  • NLBは固定のIPアドレスを持つため、特定のIPアドレスを必要とするアプリケーションに最適です。また、非常に高い可用性を持ち、システムの信頼性向上にも寄与します。

NLB(レイヤー4)

2.2. Application Load Balancer (ALB) について

  • ALBは、アプリケーション層(レイヤー7)で動作するロードバランサーであり、HTTPやHTTPSのリクエストを処理するのに適しています。リクエストの内容(URLやヘッダー情報など)に基づいて、動的にトラフィックを振り分けることが可能です。

  • 例えば、特定のURLパスに基づいて、異なるサーバーにリクエストを振り分けるといった高度なルーティングができ、ウェブアプリケーションの柔軟な構築が可能です。

ALB(レイヤー7)

2.3. ターゲットグループについて

  • ターゲットグループは、ELBがリクエストを振り分ける先のサーバー群(ターゲット)を定義するための設定です。NLBやALBがリクエストを受け取ると、設定されたターゲットグループに基づいてトラフィックを適切なサーバーに配信します。

  • 各ターゲットグループには、EC2インスタンスやコンテナ、Lambda関数などを指定することができ、ヘルスチェックによってサーバーの稼働状況を確認しながら、健康なターゲットのみがリクエストを受け取るようにすることができます。

ターゲットグループ

3. Route 53

  • Route 53は、インターネット上で名前(ドメイン名)とIPアドレスをつなげるサービスです。簡単に言うと、URL(例: www.example.com)を入力したときに、それがどこのサーバーなのかを教えてくれる役割をしています。

  • 普段、私たちは「www.example.com」のようなわかりやすいURLを使いますが、インターネットでは実際には数字の組み合わせ(IPアドレス)でコンピュータがやり取りしています。Route 53はこの「URL」と「IPアドレス」の橋渡しをしてくれるものです。

  • また、Route 53は複数の場所にあるサーバーに対して最適な経路を選んでアクセスさせたり、サーバーが落ちてしまったときに自動的に別のサーバーに切り替えたりすることもできます。

Route53サービス

3.1. ホストゾーンについて

  • ホストゾーンは、ドメインの名前解決情報をまとめて管理するための「DNS設定エリア」です。ホストゾーン内には、ドメイン名とIPアドレスの対応を定義する「レコード」が含まれ、サブドメインの設定やMXレコードなどの追加も可能です。

  • Route 53では、ホストゾーンを作成することで、ドメインに関連するすべてのDNS設定を一元管理でき、必要な設定変更が簡単に行えるようになります。公開用とプライベート用のホストゾーンを分けることもでき、外部と内部ネットワークで異なるアクセス制御が可能です。

3.2. ドメインについて

  • ドメインとは、インターネット上でサーバーを識別するための名前のことです。たとえば、「example.com」のようなドメイン名を使うことで、IPアドレスではなくわかりやすい名前でウェブサイトにアクセスできます。

  • Route 53では、独自ドメインを購入して、ホストゾーンで管理することが可能です。これにより、自分のサーバーやサービスにユニークな名前を付けることができ、信頼性やブランド認知度の向上にもつながります。もちろん別で取得したドメインについてもRoute53では扱うことが出来ます。

3.3. リゾルバーについて

  • リゾルバーは、ユーザーが入力したドメイン名をIPアドレスに変換するプロセスを担当するサービスです。例えば、ユーザーが「www.example.com」をブラウザに入力すると、リゾルバーがそのドメインのホストゾーンを参照し、該当するIPアドレスを取得します。

  • Route 53のリゾルバーは、VPC内での名前解決もサポートしており、社内やプライベートなリソースに対しても同様に名前解決を行うことができます。これにより、インターネット上とプライベートネットワーク内の両方で一貫性のあるアクセスが可能です。

4. 実際にAWSを使ってみる:VPCやサブネット、AZ、ルートテーブルの構築

では実際にネットワークを構築してみましょう。ここでは、AWSでネットワークで基本的なVPCやサブネット、AZ、ルートテーブルを構築する手順を説明します。

今回のネットワーク構成イメージ
AWS管理コンソールよりVPCを開く
お使いのVPCよりVPCを作成を押下する
必要項目を編集する
プレビューコードを押下するとAWS CLIのコマンド例が表示される
VPCを作成を押下すると、VPCが作成される
サブネットよりサブネットを作成を押下する
必要項目を編集し、サブネットを作成を押下する(プライベートサブネットにする予定)
AZ(アベイラビリティーゾーン)を選択する(東京リージョンでは、a, c, dと選べる)
サブネットが作成される
もう一つサブネットを作成を行う(パブリックサブネットにする予定)
もう一つサブネットが作成される
インターネットゲートウェイでインターネットゲートウェイ作成を押下する
必要項目を編集し、インタネットゲートウェイの作成を押下する
作成されたインタネットゲートウェイをVPCにアタッチする(アタッチされたVPC内で使用可能になる)
アクションでVPCにアタッチを選択する
インターネットゲートウェイのアタッチを押下する
インターネットゲートウェイがVPCにアタッチされる
ルートテーブルの作成を押下する
必要項目を編集し、ルートテーブルを作成を押下する(パブリックサブネット用として作成予定)
ルートテーブルを作成後、ルートを編集を押下する
インターネットゲートウェイ用のルートを追加し、変更を保存する
ルートテーブル(パブリックサブネット用)が作成される
同様にプライベートサブネット用のルートテーブルを編集し、ルートテーブルを作成を押下する
プライベートサブネット用のルートテーブルが作成された後、ルートを編集を押下する
プライベートサブネット用の場合はVPCのネットワーク以外へのルートは作らないため編集しないで変更を保存する
各サブネットにルートテーブルの関連付けを行う
パブリックサブネットにはパブリックサブネット用のルートテーブルの関連付けを行う
プライベートサブネットにはプライベートサブネット用のルートテーブルの関連付けを行う

5. まとめ

ネットワーキングの仕組みをしっかり構築することで、サービスやアプリを安全かつ効率的に提供することができます。AWSでは、VPCを使って自分専用のネットワークを作り、ELBでアクセスの負荷を分散し、Route 53でアクセスを正しいサーバーに届けるといったことが簡単にできます。

次に、AWSのコンピューティングサービスについて詳しく見ていきましょう。これらのサービスを使って、実際にアプリやサービスが動くサーバーを作ることができます。


いいなと思ったら応援しよう!