こんにちはヤク学長です。
☆この記事はAWSアソシエイトZERO3版を網羅しています☆
本記事の目的は、「アソシエイト試験に合格するため」または「合格した方が知識を思い出す」ことを目的としています。
【本記事のもくじ】
まず、AWSに真剣に取り組むための概要を解説します。
下記の方法で、簡単に概要を抑えることができます。
- 1.IPアドレスの基礎
- 2.VPC概要
- 3.通信プロトコルとOSI参照モデル
- 4.VPCへの接続
- 5.VPCフローログ
それでは、上から順番に見ていきます。
なお、本上記の方法を抑えれば成果が出ます。
今回からは「VPC概要を全体的に学ぶ」として機能や特徴を学んでいきましょう。
基本的な機能や仕組みを理解し、VPCについて理解していきましょう。
記事の内容は「転載 & 引用OK」問題ありません。
1.IPアドレスの基礎
この記事ではVPC設計に必要なIPアドレスの基礎知識を学ぶことができます。
IPアドレスは、インターネット上のコンピュータを識別するために使用される数字のシリーズです。IPアドレスは、4つのグループに分かれた8つの数字で構成されており、それぞれのグループはドットで区切られています。つまり4×8で32ビット構成ですね。
例えば、「192.168.1.1」のような形式です。これは、IPv4アドレス形式で、現在主に使用されています。 IPv6アドレスも存在し、長さが128ビットの16進数で表されています。
IPアドレスはグローバルで一つしかないもので、WEBサイトやインターネット上の機器を特定するために使用されます。
特徴
- ICANNという非営利団体がIPアドレスの管理を行う
- 重複が許されない構造
- IPアドレスは2進数の32ビットの数値データで構成
- 利用範囲は0.0.0.0から255.255.255.255で決まっています。
IPアドレスはネットワークインタフェースカード
IPアドレスはネットワークインタフェースカードに割り当てられ、そのカードを別のホストに再アタッチすることによって、IPアドレスを移動させることもできます。
グローバルIPの不足問題
グローバルIPアドレスは、インターネット上で唯一識別されるために使用されます。しかし、現在ではグローバルIPアドレスが不足している状態にあります。これは、インターネットが普及し、スマートフォンやタブレットなどの機器が増え、IoTなどの新しいアプリケーションが増えるために、IPアドレスが不足する状態が発生しています。
この問題を解決するためには、IPv4とIPv6の両方を使用することが考えられています。IPv4は現在主に使用されているプロトコルであり、IPv6はIPv4に比べて、より多くのアドレス空間を持つことができます。
また、NAT(Network Address Translation)技術も普及し、プライベートIPアドレスとグローバルIPアドレスを変換することで、IPアドレスの不足を解消することができます。
グローバルIPアドレスの不足は、今後も解消されない可能性があるため、IPv6の普及やNAT技術などの対策が求められています。
グローバルIPとプライベートIPアドレスの関係
グローバルIPアドレスは、インターネット上で唯一識別されるために使用されるIPアドレスです。これらのアドレスは、インターネット上の全てのデバイスと通信するために使用されます。グローバルIPアドレスは、インターネット上で一意に識別されるため、インターネットサービスプロバイダー (ISP)から割り当てられます。
一方、プライベートIPアドレスは、インターネット上で一意に識別されないために使用されるIPアドレスです。これらのアドレスは、企業や家庭などの局所ネットワーク内で使用され、インターネット上の他のデバイスと通信するために使用されません。
プライベートIPアドレスからインターネットにアクセスするためには、NAT(Network Address Translation)技術を使用することで、プライベートIPアドレスをグローバルIPアドレスに変換することができます。これにより、1つのグローバルIPアドレスを使用して、複数のプライベートIPアドレスからインターネットにアクセスすることができるようになります。
サブネットマスク
サブネットマスクは、IPアドレスから、どの部分がネットワークアドレス、どの部分がホストアドレスを表しているかを判断するために使用される数字のシリーズです。
サブネットマスクは、IPアドレスの中で、ネットワークアドレスを表す部分を1、ホストアドレスを表す部分を0として表現します。例えば、「255.255.255.0」のような形式です。これは、IPv4アドレスの場合で、最初の24ビットがネットワークアドレス、残りの8ビットがホストアドレスを表します。
x.x.x.xはIPアドレスを表し、/xはサブネットマスクを表しています。xの部分は、それぞれ0から255の値を取ります。例えば、「192.168.1.1/24」は、IPアドレスが「192.168.1.1」で、サブネットマスクが「255.255.255.0」を表しています。ちなみに/32が最大です。
サブネットマスクを使用することで、IPアドレスの中で、どの部分がネットワークアドレスで、どの部分がホストアドレスであるかを判断することができます。これにより、同じネットワーク内のデバイスとの通信や、異なるネットワーク間の通信を区別することができます。
CIDR
CIDR(Classless Inter-Domain Routing)は、IPアドレスを割り当てる方法を改善するための技術です。
IPv4アドレスにおいては、IPアドレスをクラスA、クラスB、クラスCなどに分類し、それぞれに異なる割り当て方法を用意する方式が使用されていました。
これに対して、CIDRは、IPアドレスの割り当てをクラスに関係なく、任意のサイズのネットワークに割り当てることができる方式を採用しています。CIDRは、IPアドレスの末尾に「/x」という形式で、割り当てられるサブネットマスクの長さを示すことで、IPアドレスの割り当て方法を表現します。これにより、IPアドレスの割り当てをより効率的に行うことができ、IPアドレスの不足を解消するために重要な役割を果たしています。
ネットワーク部とホスト部
IPアドレスを使用して、ネットワークを分割する際に、IPアドレスは、ネットワーク部とホスト部に分かれます。
- ネットワーク部は、複数のデバイスが接続されるネットワークを識別するために使用される部分です。これは、IPアドレスの最初のビットから、サブネットマスクによって決定される長さの部分です。
- ホスト部は、特定のデバイスを識別するために使用される部分です。これは、IPアドレスの最後のビットから、サブネットマスクによって決定される長さの部分です。
例えば、IPアドレスが「192.168.1.100」で、サブネットマスクが「255.255.255.0」の場合、ネットワーク部は「192.168.1.0」、ホスト部は「100」です。これにより、「192.168.1.0」がネットワークアドレスで、「192.168.1.100」が、そのネットワーク内のホストアドレスであることが分かります。
サブネットによるグループ化とは、IPアドレスの範囲を指定して、その範囲内のIPアドレスを持つデバイスをグループ化する方法です。サブネットマスクを使用して、IPアドレスの範囲を指定します。サブネットによるグループ化を使用することで、IPアドレスの管理やセキュリティーの観点からネットワークを細分化することができます。
サブネット化によるメリット
サブネットによるグループ化のメリットとしては、以下のようなことが挙げられます:
- IPアドレスの管理を簡単にすることができる。サブネットによって管理対象のIPアドレスを細分化することで、IPアドレスを効率的に割り当てることができます。
- セキュリティーを強化することができる。サブネットによってグループを分けることで、特定のグループに対してアクセス制限を設定することができます。
- ネットワークのトラフィックを制御することができる。サブネットによってグループを分けることで、特定のグループ間のトラフィックを制御することができます。
これらのメリットにより、サブネットによるグループ化は、ネットワーク管理やセキュリティー上の重要な概念になっています。
2.VPC概要
VPCとは何か?
VPC (Virtual Private Cloud) は、AWS (Amazon Web Services) 上に構築される仮想プライベートネットワークのことです。VPC は、AWS リソースをカスタマイズ可能なプライベートサブネットにグループ化することで、セキュリティやコンプライアンスの要件を満たすことができます。VPC を使用することで、インターネットに対して公開されることのない、独自のネットワーク環境を構築することができます。
VPC (Virtual Private Cloud) の構成
VPC (Virtual Private Cloud) の構成には、以下のような要素があります。
- サブネット: VPC 内にある IP アドレスの範囲を表します。
- ルートテーブル: VPC 内のトラフィックの流れを管理するためのルールを定義します。
- セキュリティグループ: VPC 内のリソースへのアクセスを許可または拒否するためのルールを定義します。
- ネットワークACL: VPC 内のサブネットへのアクセスを許可または拒否するためのルールを定義します。
- VPC エンドポイント: VPC 内から特定の AWS サービスに対してプライベートアクセスするための仕組みです。
- VPN接続: VPC 内のリソースをオンプレミスのネットワークと接続するための仕組みです。
- エグゾスルート: VPC 内のトラフィックをインターネットに接続するための仕組みです。
これらがあり、この中には、デフォルトでは、2つのサブネットがあり、それぞれが一つのCIDRブロック(/20)を持っています。
また、デフォルトのVPCには、AmazonプライベートIPアドレス範囲が割り当てられ、インスタンスにはデフォルトでパブリックIPアドレスが割り当てられます。
カスタム VPC (Virtual Private Cloud) の作成
カスタム VPC (Virtual Private Cloud) は、AWS (Amazon Web Services) 上に作成されるユーザーが定義した仮想プライベートネットワークのことです。
AWS には、デフォルトの VPC が用意されていますが、これでは満たせないニーズがある場合に、カスタム VPC を作成することができます。
カスタム VPC は、インターネットに対して公開されることのない、独自のネットワーク環境を構築することができます。
カスタム VPC には、独自の CIDR ブロックを指定し、サブネット、ルートテーブル、セキュリティグループ、ネットワークACL、VPCエンドポイントなどの要素をカスタマイズすることができ、これにより、セキュリティやコンプライアンスなどの要件を満たすことができます。
サブネットの配置
AWS (Amazon Web Services) 上の VPC (Virtual Private Cloud) では、サブネットの配置は重要な要素となります。サブネットは、VPC 内にある IP アドレスの範囲を表し、インスタンスなどのリソースをグループ化するために使用されます。
サブネットの配置には、以下のような考慮事項があります。
- アベイラビリティーゾーン: AWS のリージョン内に複数のアベイラビリティーゾーンがあり、それぞれに独立した電力や空調などのインフラがあります。サブネットをアベイラビリティーゾーン間で配置することで、アプリケーションのハイアベイラビリティを実現することができます。
- セキュリティ: サブネットを使用して、セキュリティグループなどのセキュリティ機能を使用して、インスタンスやリソースのセキュリティを強化することができます。
- パフォーマンス: サブネットを使用して、インスタンスやリソースの通信を制御し、パフォーマンスを最適化することができます。
- コスト: サブネットを使用して、インスタンスやリソースの使用状況を監視し、コストを最適化することができます。
サブネットの配置は、アプリケーションに応じて異なります。アプリケーションのニーズや要件を検討しながら、サブネットの配置を決定することが重要です。
サブネットタイプ
AWS (Amazon Web Services) の VPC (Virtual Private Cloud) では、サブネットには、以下のようなタイプがあります。
- パブリックサブネット: インターネットに対して公開されるサブネットで、インスタンスにはパブリック IP アドレスが割り当てられます。インターネットからアクセスできる Web サーバーなどを配置するために使用されます。
- プライベートサブネット: インターネットに対して公開されないサブネットで、インスタンスにはプライベート IP アドレスが割り当てられます。データベースサーバーなど、インターネットからアクセスしないべきリソースを配置するために使用されます。
- スイッチングサブネット: VPC内に内部のトラフィックのみを許可するサブネット。
- ネットワーク拡張: VPCを拡張し、オンプレミスのネットワークと接続し、AWS上のリソースとオンプレミスのリソースを統合するために使用される。
- サブネットタイプは、アプリケーションに応じて異なります。アプリケーションのニーズや要件を検討しながら、適切なサブネットタイプを選択することが重要です。
ルートテーブルの設定
AWS の VPCでは、ルートテーブルは、VPC 内のトラフィックの流れを管理するために使用されます。
ルートテーブルの設定には、以下のような手順を実行します。
- AWS Management Consoleにログインし、「VPC」サービスを開きます。
- 「ルートテーブル」タブを選択し、既存のルートテーブルを選択します。
- 「ルート」タブを選択し、新しいルートを追加します。
- ルートの詳細を入力します。これには、目的地 CIDR ブロック、ゲートウェイ、ターゲットなどが含まれます。
- 「保存」を選択し、設定を保存します。
- サブネットとルートテーブルを関連付けます。
- 設定を確認し、必要に応じて修正します。
これにより、ルートテーブルをカスタマイズすることができます。ルートテーブルを使用して、VPC 内のトラフィックの流れを制御し、セキュリティやパフォーマンスなどを最適化することができます。
パブリックサブネットとプライベートサブネットの使い分け
AWS (Amazon Web Services) の VPC (Virtual Private Cloud) では、パブリックサブネットとプライベートサブネットは、それぞれ異なる目的で使用されます。
- パブリックサブネット: インターネットに対して公開されるサブネットで、インスタンスにはパブリック IP アドレスが割り当てられます。インターネットからアクセスできる Web サーバーなどを配置するために使用されます。
- プライベートサブネット: インターネットに対して公開されないサブネットで、インスタンスにはプライベート IP アドレスが割り当てられます。データベースサーバーなど、インターネットからアクセスしない
例えば、データベースはプライベートサブネットに配置し、それを利用するウェブサイトやアプリケーションはパブリックサブネットに配置することが一般的な構成方法になります。
プライベートサブネットへの外部アクセス
プライベートサブネットは、インターネットからアクセスすることができないため、外部からアクセスをするには、いくつかの方法があります。
- VPN接続: 企業のオフィスなどから、プライベートサブネットに接続するために、VPN (Virtual Private Network) 接続を使用することができます。
- セキュリティグループ: セキュリティグループを使用して、特定のポートやプロトコルに対してのアクセスを許可することができます。
- NATゲートウェイ: NAT (Network Address Translation) ゲートウェイを使用して、プライベートサブネットからインターネットにアクセスするための中継を行うことができます。
- VPC エンドポイント: VPC エンドポイントを使用して、プライベートサブネットから特定の AWS サービスにアクセスすることができます。
- Direct Connect: 企業のオフィスとVPCを直接接続することで、プライベートサブネットへのアクセスが可能になります。
どの方法を使用するかは、アプリケーションや要件によって異なります。アプリケーションのニーズを検討しながら、適切な方法を選択することが重要です。
特に使用するのがNATGATEWAYです。NATGATEWAYはプライベートサブネット内にあるプライベートアドレスに対して、パブリックアドレスを付与し、インターネットGATEWAYに送信します。
これにより、インターネットに通信を返すことができるようになります。
ゲートウェイの設定方法の種類
ゲートウェイは、ネットワーク間でのデータのやり取りを司る機器やソフトウェアのことです。通信を受け取ったら、それを適切な方向に転送し、必要に応じて、セキュリティ処理を施すことができます。
VPC (Virtual Private Cloud) では、以下のようなゲートウェイを作成・管理できます。
- Internet Gateway: VPC からインターネットへの接続を提供します。
- NAT Gateway: VPC 内のプライベートサブネットからインターネットへのアクセスを提供します。
- VPN Gateway: VPC をオンプレミスネットワークと接続します。
- Direct Connect Gateway: AWS Direct Connect を使用して VPC をオンプレミスネットワークと接続します。
インターネットゲートウェイは、インターネットに接続されたプライベートネットワークからインターネットへのアクセスを可能にします。
NATゲートウェイは、プライベートネットワークからインターネットにアクセスするために、IPアドレス変換を行います。
VPNゲートウェイは、リモートオフィスなどのオフサイトから企業のネットワークにセキュアに接続するために使用します。
VPCを作成する際に、DNSの名前解決を有効化する?
VPCを作成する際に、DNSの名前解決を有効化するかどうかは、AWS Management Console 上で選択することができます。VPC作成時に「Enable DNS hostnames」を有効にしておけば、VPC内に作成したインスタンスが、DNS名でアクセスできるようになります。これにより、インスタンスを指定する際にIPアドレスではなくDNS名を指定できるため、インスタンスの識別や操作がより簡単になります。
VPC作成時に「Enable DNS hostnames」を無効にする場合は、インスタンスはDNS名ではなく、IPアドレスで識別されます。
3.通信プロトコルとOSI参照モデル
通信プロトコルとOSI参照モデルについて詳しく見ていきます。
IPアドレスだけでは、特定の目的に応じた通信をすることができません。
そのため、通信のルールを設定することが必要になります。
例えば、メールを送信する場合、OUTLOOKを使って送信する際、通信のルールはSMTPプロトコルになります。受信する場合はPOPプロトコルになります。これらはそれぞれIPアドレスを設定する必要があります。
ほとんどのメーラーではこのような設定をすることが必要になります。
SMTP
SMTP (Simple Mail Transfer Protocol) は、電子メールをインターネット上で送信するために使用されるプロトコルです。SMTPは、電子メールを送信するために使用されるものです。
送信者のメールサーバーから受信者のメールサーバーに電子メールを送信するために使用されます。
POP
POP (Post Office Protocol) は、電子メールを受信するために使用されるプロトコルです。POPは、電子メールを受信するために使用されるものです。
受信者のコンピューターから受信者のメールサーバーに電子メールを取得するために使用されます。 POP3は最も一般的なバージョンで、メッセージを受信後にサーバーから削除する。IMAPもあり、サーバーにメッセージを残し、クライアント側で管理する。
HTTP
HTTP (Hypertext Transfer Protocol) は、Web上のリソース(HTMLドキュメント、画像、音声、ビデオなど)を転送するために使用される通信プロトコルです。WebブラウザーとWebサーバーの間で使用されます。
HTTPはクライアント/サーバー型のプロトコルで、クライアントがWebサーバーにリクエストを送信し、サーバーが応答を返す形式で動作します。リクエストは、HTTPメソッド(例: GET、POST、PUT、DELETEなど)、リソースのURL、リクエストヘッダー、リクエストボディを含む形式で送信されます。サーバーは、ステータスコード、応答ヘッダー、応答ボディを含む形式で応答を返します。
OSI参照モデル
OSI (Open Systems Interconnection) 参照モデルは、コンピュータネットワークシステムのインターネットワークを理解するために使用されるモデルです。
OSI参照モデルは、7つのレイヤーから構成されており、それぞれが異なるタスクを担当し、上位レイヤーが下位レイヤーの機能を利用しながら通信を行うことができるようになっています。
- 物理層: ネットワークインターフェースカードやケーブルなど、物理的なメディアを管理します。
- データリンク層: フレームの認識やエラー検出など、リンク上でのデータのやり取りを管理します。
- ネットワーク層: ルーティングやフロー制御など、データのやり取りを管理します。
- トランスポート層: シーケンス番号や確認など、エンドツーエンドのデータのやり取りを管理します。
- セッション層: セッションの管理や同期など、複数のアプリケーション間の通信を管理します。
- 表現層: データの整形や圧縮など、データの表現を管理します。
- アプリケーション層: メールやファイル転送など、アプリケーション間の通信を管理します。
OSI参照モデルは、ネットワークを理解する上で重要な役割を担い、各レイヤーにおいてどのようなプロトコルが使用されるかなどを明確にします。
アプリケーション層
まずはアプリケーション層です。この層では、WEBアプリケーションなどの通信サービスの通信方式が規定されています。
WEBサービスを実現するために、固有の規定が定義され、それに従ってアプリケーションごとにプロトコルが細分化されています。
例えば、メール用はPOPとSMTP、WEBブラウザ用はHTTPSなどです。
プレゼンテーション層
プレゼンテーション層では、文字の送受信に関する規定がされています。
文字コード、圧縮、暗号、復号などが行われる層です。送信側と受信側のコンピュータで使用されている表現形式が異なっても、世界中でウェブサイトが表示されるのはこのためです。
セッション層
次にセッション層です。この層では、アプリケーション間での1連の通信処理の継続、つまりセッションの確立、維持、終了までの手順が規定されています。
セッションとは、アプリケーションとの通信の中での1連の継続的な処理やつながりのことを指します。
イメージ的には、ログインした状態を継続しているようなものです。
データリンク層
そしてデータリンク層です。
この層では、MACアドレスを使ったルーティングが実施されます。
これは、一つのネットワーク回線上で直接接続されたノード同士の通信について規定しています。
例えば、ローカルエリアネットワーク(LAN)では、ETHERNETにより同じネットワークセグメント内におけるノード間の通信をMACアドレスを利用して実施しています。
物理層
この層では、ビット単位でのコンピュータ間の物理的なデータ送信伝送形式が規定されています。これにより、ネットワークの物理的な接続や伝送方式が決定され、0と1のビットデータが電子信号に変換され、ネットワークへと伝送される方法が規定されます。
これらの物理的な転送形式は、プリアンブル、同期ワード、ヘッダー、データペイロード、FCSなどが含まれます。物理層は、0と1のビットデータをネットワーク上で正確に伝送するために必要な、具体的な転送方法を規定しています。
TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol) モデルは、インターネットおよびそれに類似したネットワークシステムを構築するために使用される通信プロトコルのスイートです。
TCP/IPモデルは、4つのレイヤーから構成されており、それぞれが異なるタスクを担当します。
- アプリケーション層: HTTP、FTP、SMTPなど、アプリケーション間の通信を管理します。
- トランスポート層: TCP、UDPなど、エンドツーエンドのデータのやり取りを管理します。
- インターネット層: IPなど、パケットのルーティングを管理します。
- ネットワークアクセス層: イーサネット、Wi-Fiなど、物理的なメディアを管理します。
TCP/IPモデルは、OSI参照モデルに比べて簡潔であり、インターネットの基盤技術として広く使用されています。
TCPは、データを保証送信するために使用されます。IPは、データをインターネット上を移動させるために使用されます。
通信を行うために
通信を行うためには、OSI参照モデルやTCP/IPモデルに基づいて、物理層からアプリケーション層までの7つの層に分かれて通信を行います。それぞれの層で異なる役割を持ち、通信の規約を定めています。
また、通信の際にはポート番号を指定して、どのソフトウェアが通信するかを決定しています。通信制御のルールはOSI参照モデルとTCPIPモデルによって規定されています。
プロトコルには特定のポート番号が付与されており、ポート番号に応じて通信先を特定しています。
ポート番号
TCP/IP プロトコルには、通信に使用するために互いに異なるプロセスを識別するために、ポート番号と呼ばれる16ビットの整数が使用されます。
通信元と通信先のコンピュータ間で、特定のアプリケーションのために使用するポート番号を予約することで、複数のアプリケーションを同時に実行できます。
TCPとUDPは、それぞれ異なるポート番号を使用します。
-TCPは、通信を確立し、データを保証送信するために使用されます。 -UDPは、データの送信を保証しないが、転送速度が高いため、ストリーミングなどのアプリケーションで使用されます。
ポート番号は、0から65535の範囲で使用できますが、一部は予約されており、特定の目的に使用されます。 例えば、HTTPは通常80番ポート、HTTPSは443番ポート、FTPは21番ポート、SMTPは25番ポート、POP3は110番ポート、DNSは53番ポートなどが使用されます。
ネットワークACL
ネットワークアクセス制御リスト(Network Access Control Lists, ACL)は、インターネットや企業のネットワークなどで使用されるセキュリティ機能です。ACLは、特定のIPアドレスやネットワークからのアクセスを許可したり、拒否したりすることで、不正アクセスや攻撃を防止するために使用されます。
ACLは、ルータやファイアウォールなどのネットワークデバイスに実装され、通信を許可または拒否するための規則(ルール)を定義します。
ACLのルールは、次のような要素を含みます。
- アクセスの許可または拒否: ルールは、特定のIPアドレスやサブネットからのアクセスを許可するか、拒否するかを指定します。
- アクセスの方向: インバウンドアクセス(内部からのアクセス)またはアウトバウンドアクセス(外部からのアクセス)を指定します。
- プロトコルの種類: TCP、UDP、ICMPなどのプロトコルを指定します。
- ポート番号: アクセスを許可または拒否するためのポート番号を指定します。
ACLは、特定のアプリケーションやサービスに対してのアクセスを制限したり、特定のIPアドレスからの攻撃をブロックしたりするために使用されます。
ACLは決まった順番に実行されるので、特定のルールが最初に一致した時点でそのルールが適用され、それ以降のルールは無視されます。そのためACLの設定の順番にも注意が必要です。
セキュリティグループ
セキュリティグループは、クラウドコンピューティングや仮想プライベートネットワーク(VPN)などで使用されるセキュリティ機能です。セキュリティグループは、特定のIPアドレスやネットワークからのアクセスを許可したり、拒否したりすることで、不正アクセスや攻撃を防止するために使用されます。
セキュリティグループは、インスタンスや仮想マシンなどのリソースにアタッチして使用します。セキュリティグループは、通信を許可または拒否するための規則(ルール)を定義します。
セキュリティグループのルールは、次のような要素を含みます。
- アクセスの許可または拒否: ルールは、特定のIPアドレスやサブネットからのアクセスを許可するか、拒否するかを指定します。
- アクセスの方向: インバウンドアクセス(内部からのアクセス)またはアウトバウンドアクセス(外部からのアクセス)を指定します。
- プロトコルの種類: TCP、UDP、ICMPなどのプロトコルを指定します。
- ポート番号: アクセスを許可または拒否するためのポート番号を指定します。
セキュリティグループは、特定のアプリケーションやサービスに対してのアクセスを制限したり、特定のIPアドレスからの攻撃をブロックしたりするために使用されます。
セキュリティグループはインスタンスごとに設定することができるため、複数のインスタンスを使用する場合は各インスタンスごとに設定する必要があります。また、セキュリティグループは同じVPC内で設定することができます。
ネットワークACLとセキュリティグループ
ネットワークACLとセキュリティグループは、AWSのEC2インスタンスに対してファイアウォール機能を提供するものです。
セキュリティグループはインスタンス単位でトラフィックのアクセス可否を設定しますが、ネットワークACLはVPCやサブネット単位でトラフィックのアクセス可否を設定します。
また、セキュリティグループは特定のVPCに紐づいて作成するため、VPCを変更する場合は新しいセキュリティグループを作成する必要がありますが、ネットワークACLはVPCに紐づいていないため、VPCを変更しても使用することができます。
セキュリティグループとネットワークACLは、インバウンドとアウトバウンドの両方でトラフィックのアクセス可否を設定することができますが、セキュリティグループはステートフルなので、インバウンド設定がされていればアウトバウンドの許可も自動的に設定されますが、ネットワークACLはインバウンドとアウトバウンドの両方で設定が必要です。
インバウンドとアウトバウンド
インバウンドとアウトバウンドは、ネットワークトラフィックの方向を表します。
インバウンドトラフィックは、外部からのアクセスを指します。
例えば、インターネットからのアクセスや、他のネットワークからのアクセスなどがインバウンドトラフィックに該当します。インバウンドトラフィックは、通常、特定のポート番号やIPアドレスからのアクセスを許可するルールを設定します。
アウトバウンドトラフィックは、内部からのアクセスを指します。例えば、インターネットへのアクセスや、他のネットワークへのアクセスなどがアウトバウンドトラフィックに該当します。アウトバウンドトラフィックは、通常、特定のポート番号やIPアドレスへのアクセスを許可するルールを設定します。
インバウンドとアウトバウンドのトラフィックは、セキュリティグループやファイアウォールなどのセキュリティ機能を使用して制御することができます。これにより、不正アクセスや攻撃からの保護を行うことができます。
Well-knownポート
Well-knownポートとは、インターネット上で使用される通信プロトコルに割り当てられている特定の番号の範囲です。これらのポート番号は、IANA (Internet Assigned Numbers Authority) によって管理されています。
Well-knownポート番号の範囲は、0から1023番までです。この範囲に割り当てられているポート番号は、主にインターネット上で使用される一般的な通信プロトコルに使用されています。例えば、HTTPはポート番号80、HTTPSはポート番号443、FTPはポート番号21、SMTPはポート番号25などがあります。
Well-knownポート番号は、通常、一般的な通信プロトコルによって使用されるため、セキュリティ上の問題が生じる可能性があります。そのため、サーバーやファイアウォールなどのセキュリティ機能を使用して、不正アクセスや攻撃からの保護を行うことが重要です。
エフェメラルポート
エフェメラルポートは、一時的にクライアントPCに割り当てられるポート番号のことで、TCP/IP通信を行う際に必要になります。
例えば、SSH接続をする場合には、受信側のポート番号を22番に設定しますが、その際に、クライアントPCにも一時的に割り当てられるポート番号が必要になります。
このように、エフェメラルポートはクライアントPCからの通信を許可するために必要な設定であるため、ネットワークACLやセキュリティグループで許可をする際には、エフェメラルポートの範囲も含めて許可設定をする必要があります。
NATゲートウェイ
NATゲートウェイは、プライベートサブネット内のインスタンスからインターネットにアクセスするための機能です。
NATゲートウェイは、インターネットゲートウェイが設定されているパブリックサブネットに設置され、プライベートサブネット内のインスタンスはインターネットゲートウェイを経由してインターネットにアクセスできます。
NATゲートウェイは、プライベートサブネット内のインスタンスが持っているプライベートIPアドレスをパブリックIPアドレスに変換し、インターネットへのアクセスを実現します。
NATゲートウェイを作成
NATゲートウェイを作成する際には、ELASTICIPアドレスを付与します。
ELASTICIPアドレスは、パブリックIPアドレスと同じように利用でき、特徴的にはすでに設定されていることです。
通常、ゲートウェイにはIPアドレスの付与は不要ですが、NATゲートウェイはアドレス変換をするためにELASTICIPアドレスを持っています。プライベートIPアドレスを持ったサーバーがインターネットにアクセスするためには、NATゲートウェイに接続し、ELASTICIPアドレスを借ります。
その後、ELASTICIPアドレスをインターネットゲートウェイに返し、パブリックに利用できるIPアドレスとして通信を行うことができます。
返信トラフィックも同様に、ELASTICIPアドレスを返してもらって、NATゲートウェイがプライベートIPアドレスに変換した上で、プライベートIPアドレスのリソースに返信を返します。
ELASTICIP
ELASTICIPは静的なIPアドレスであり、インスタンスがインターネットにアクセスするためにはパブリックIPかELASTICIPのどちらかを利用しますが、大きな違いは、パブリックIPは動的なIPアドレスであり、ELASTICIPは静的なIPアドレスであります。
4.VPCへの接続
今回は、VPCとの接続方法について学びます。
3つの接続方法があります: VPC内からVPC下へのリソースの接続、VPC間の接続、そしてVPCと外部ネットワークの接続です。
①VPC内からVPC外のサービスにアクセスする方法
最初に説明するのは、VPC内からVPC外のサービスにアクセスする方法です。
その方法はVPCエンドポイントです。
VPCエンドポイントは、インターネットを介さずにVPC内からVPC外のアクセスをするための機能です。
通常、VPC内のリソースがVPC外のサービスにアクセスする場合、インターネットを介してアクセスし、セキュリティ上問題があります。
それを解消するのがVPCエンドポイントで、VPC内に作成し、GATEWAYとして外部サービスにアクセスできるようにします。
VPCエンドポイントには2つのタイプがあり、GATEWAY型とインターフェイス型です。
GATEWAY型は、S3やDynamoDBなどに適用され、インターフェイス型は、VPC内のインスタンスに直接アクセスできるようになります。
GATEWAY型のVPCエンドポイント
GATEWAY型のVPCエンドポイントは、VPC内のインスタンスからインターネットにアクセスするために使用されます。
インターネットにアクセスするためには、NAT(Network Address Translation) ゲートウェイやインターネットゲートウェイを使用することが一般的ですが、GATEWAY型のVPCエンドポイントを使用することで、NATゲートウェイやインターネットゲートウェイを使用せずに、インターネットにアクセスすることができます。
GATEWAY型のVPCエンドポイントを使用することで、インターネットアクセスを制御するためのルールを設定することができ、また、インターネットアクセスをするためには、VPC内にあるインスタンスからのみアクセスが可能になり、セキュリティの観点からも有利です。
INTERFACE型のVPC
次に、INTERFACE型のプライベートリンク型のVPCエンドポイントを説明します。
INTERFACE型のVPCエンドポイントは、VPC内のインスタンスから特定のAWSサービスへアクセスするために使用されます。 GATEWAY型のVPCエンドポイントと異なり、INTERFACE型のVPCエンドポイントは、VPC内に論理インターフェイスを作成し、そのインターフェイスを使用して、特定のAWSサービスへのアクセスを行うことができます。
INTERFACE型のVPCエンドポイントを使用することで、特定のAWSサービスへのアクセスを制御するためのルールを設定することができ、また、VPC内にあるインスタンスからのみアクセスが可能になり、セキュリティの観点からも有利です。
冗長性はマルチレイアウト設計であり、料金は有料です。セキュリティグループを使った制御も可能です。
AWS PrivateLink
AWS PrivateLink は、インターネット経由ではなく、Amazon Virtual Private Cloud (VPC) エンドポイント経由でアマゾン ウェブ サービス (AWS) サービスにアクセスする方法です。
AWS PrivateLink を使用すると、VPC 内でのみアクセスできるプライベート IP アドレスを介してサービスにアクセスできます。
Amazon S3 や Amazon RDS などの特定のサービスのエンドポイントを作成し、エンドポイントを介してそのサービスにトラフィックをルーティングできます。
これは、サービスへのアクセスを制御できる VPC エンドポイント ポリシーを使用して実行できます。
AWS PrivateLink はエンドツーエンドの暗号化もサポートしており、VPC とサービスの間で転送中のデータを暗号化するために使用できます。
さらに、トラフィックが公共のインターネットを通過する必要がないため、パフォーマンスを向上させることができます。
AWS PrivateLink は、Amazon S3、Amazon RDS、Amazon DynamoDB、Amazon SQS、Amazon SNS など、さまざまな AWS サービスで利用できます。 また、AWS Marketplace から入手できる一部のサードパーティ サービスでもサポートされています。
②VPC間の接続
VPC間の接続にはVPCピアリングという方法があります。
VPCピアリングを使うと、異なるアカウントや異なるリージョン間でもトラフィックルーティングをすることができ、単一障害点や帯域幅のボトルネックもなく、冗長性があり、接続を維持することができます。
ポイントは接続はそれぞれが接続されてなければ接続ができません。
トランジットゲートウェイ
トランジットゲートウェイは、AWSのネットワークサービスで、複数のAmazon VPCやオンプレミスのネットワークを一元的に管理するためのサービスです。
トランジットゲートウェイを使用することで、VPC間やVPCとオンプレミス間で、よりスケーラブルな接続を実現することができます。
また、トランジットゲートウェイを使用することで、VPC間のルーティングテーブルの設定やセキュリティグループの設定を簡略化することができます。
③外部のオンプレミス環境とVPCなどを接続するサービス
次に、外部のオンプレミス環境とVPCなどを接続するサービスについてです。
主に、AWS Direct ConnectとAWS VPNの2つがあります。
Direct Connect
Direct Connectは専用線を使って物理的に接続します。VPNはインターネットを使って、セキュアなIPSEC接続をして、特別なVPCバーチャルプライベートネットワークを構築します。
Direct Connectは、オンプレミス環境からプライベートネットワークへのVPC接続をサイト上で実現するサービスで、VPNはオンプレミスネットワークと接続するVPNを構成するものです。
Direct Connectはデータセンターやオフィスなどの専用線を使って、プライベートにデータベースに接続するサービスで、信頼性や帯域幅が高いことが特徴です。
自社のオンプレミス環境を直接リージョンに接続するのではなく、中継地点としてDirect Connectロケーションを使って接続します。
ダイレクトコネクトゲートウェイ
AWS Direct Connectゲートウェイは、AWS Direct ConnectとAmazon Virtual Private Cloud(VPC)間で、通信を接続するためのゲートウェイサービスです。
これにより、オンプレミスのデータセンターとAWSクラウド間で、高帯域幅、低遅延、高可用性の接続を実現することができます。
Direct Connectゲートウェイを使用することで、VPC間やオンプレミスとAWS間でのIPsec VPNトンネルを構築することなく、VPC間やオンプレミスとAWS間でのデータ転送を実現することができます。
AWSサイト間VPN
AWSサイト間VPNは、Amazon Web Services (AWS) を使用して、2つの自組織のサイト間でプライベートな通信を構成するためのVPN接続を提供します。
これにより、AWS Virtual Private Cloud (VPC) を使用して、自組織のデータセンターやオンプレミスのネットワークと AWS のリソースを統合することができます。
サイト間VPNは、AWS Direct Connect を使用して構成することもできます。これにより、高帯域幅、低遅延のプライベート接続を提供し、AWSと自組織のネットワーク間でデータをより迅速かつ安全に転送することができます。
VPN
AWS VPNについて話します。
この場合、直接インターネットを介して自社のネットワーク内にあるカスタマーゲートウエーから仮想プライベートゲートへ接続することができます。
だから、自社内にカスタマーゲートを用意していれば、短期間にVPSに接続ができ、より短く準備をすることができます。
一方で、VPNは安く素早く利用できますが、信頼性や品質は専用線のダイレクトコネクトの方が優れています。
ダイレクトコネクトは、第三者のキャリアサービスを利用して専用線を接続しますが、そのためにサービス利用料がかかり、VPSよりも割高です。基本的にはインターネット回線を利用するので、安価に利用することができます。
ただ、物理的な対応準備が必要で、リードタイムが1カ月ほどかかります。
帯域幅については、サイト間VPNはインターネットを介しているため暗号化の分のオーバーヘッドがかかりますが、ダイレクトコネクトは高速な帯域幅を実現することができます。
品質セキュリティについては、サイト間VPNはインターネット経由なので、ダイレクトコネクトの方が優れています。
5.VPCフローログ
VPC フローログは、Amazon Virtual Private Cloud (VPC) と Amazon Elastic Compute Cloud (EC2) インスタンスのネットワークトラフィックを記録し、監査、分析、およびトラブルシューティングに使用するための AWS のサービスです。VPC フローログは、VPC またはサブネットに適用され、それらに関連するすべてのインバウンドおよびアウトバウンドのトラフィックのログを収集します。
VPC フローログには、次のような機能があります。
- VPC フローログは、インバウンドおよびアウトバウンドのトラフィックのログを収集します。
- VPC フローログは、VPC またはサブネットに適用され、それらに関連するすべてのトラフィックのログを収集します。
- VPC フローログは、最新の 5 分間のトラフィックのみを記録します。
- VPC フローログには、スクリプトを使用して、ログの詳細を分析したり、インシデントを検出したりするためのAPIがあります。
- VPC フローログは、Amazon CloudWatch Logs に保存されるので、データを収集、検索、アーカイブ、および可視化できます。
VPC フローログを有効にすることで、VPC やEC2インスタンスのトラフィックの分析やトラブルシューティングに役立ちます。
これで、VPC フローログが表示されます。VPC フローログには、次のような情報が含まれています。
- タイムスタンプ: フローが記録された日時
- フローのタイプ: インバウンドまたはアウトバウンド
- アクション: ACCEPTまたはREJECT
- プロトコル: TCP、UDP、ICMPなど
- ソース IP アドレス: トラフィックの送信元 IP アドレス
- ソース ポート: トラフィックの送信元ポート
- デスティネーション IP アドレス: トラフィックの送信先 IP アドレス
- デスティネーション ポート: トラフィックの送信先ポート
- パケット数: トラフィックで転送されたパケット数
- バイト数: トラフィックで転送されたバイト数
これらの情報を使用して、VPC ネットワークのトラフィックを分析し、問題を特定し、解決することができます。
また、AWSのCLI や SDK を使用しても確認可能です。
というわけで、今回は以上です。
引き続きで、徐々に発信していきます。
コメントや感想を受け付けています。ちょっとした感想でもいいので嬉しいです。
それでは、以上です。