見出し画像

AWS VPC 作成

AWS VPC 作成

Amazon Web Services(AWS)で仮想プライベートクラウド(VPC)を作成する方法を説明します。VPC は、AWS のリソースを論理的に分離し、カスタムのネットワーク環境を構築するためのサービスです。

ステップ 1: VPC の CIDR ブロックを決定

まず、VPC の CIDR ブロックを決定します。例えば、10.0.0.0/16 とします。これにより、10.0.0.0 から 10.0.255.255 までの IP アドレス範囲が利用可能になります。

ステップ 2: サブネットの CIDR ブロックを設定

次に、パブリックサブネットとプライベートサブネットの CIDR ブロックを、VPC の CIDR ブロック内に収まるように設定します。例えば、次のように設定できます。

  • ap-northeast-1a パブリックサブネット: 10.0.0.0/2010.0.0.0 から 10.0.15.255 までの IP アドレス範囲)

  • ap-northeast-1a プライベートサブネット: 10.0.16.0/2010.0.16.0 から 10.0.31.255 までの IP アドレス範囲)

各サブネットには 4,096 の IP アドレスがあり、CIDR ブロックが重複せず、VPC の範囲内に収まります。

ステップ 3: 他のアベイラビリティーゾーンでサブネットを作成

さらに他のアベイラビリティーゾーン(AZ)でサブネットを作成する場合、続く IP アドレス範囲を使用して CIDR ブロックを割り当てます。例えば:

  • ap-northeast-1b パブリックサブネット: 10.0.32.0/2010.0.32.0 から 10.0.47.255 までの IP アドレス範囲)

  • ap-northeast-1b プライベートサブネット: 10.0.48.0/2010.0.48.0 から 10.0.63.255 までの IP アドレス範囲)

各 AZ のサブネットが互いに重複しないように、IP アドレス範囲を選択してください。

ステップ 4: VPC とサブネットの作成

以下のコマンドを実行して VPC とサブネットを作成します。${VPC_ID} には、ステップ 1 で作成した VPC の ID を入力してください。

cssCopy code# VPC の作成
aws ec2 create-vpc --cidr-block 10.0.0.0/16 --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=my-vpc}]'

# ap-northeast-1a パブリックサブネットの作成
aws ec2 create-subnet --vpc-id ${VPC_ID} --availability-zone ap-northeast-1a --cidr-block 10.0.0.0/20 --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=my-public-subnet-a}]'

# ap-northeast-1a プライベートサブネットの作成
aws ec2 create-subnet --vpc-id ${VPC_ID} --availability-zone ap-northeast-1a --cidr-block 10.0.16.0/20 --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=my-private-subnet-a}]'

同様に、他の AZ のサブネットも作成してください。

ステップ 5: インターネットゲートウェイの作成と VPC へのアタッチ

インターネットゲートウェイを作成し、VPC にアタッチして、パブリックサブネットからインターネットへのアクセスを可能にします。

bashCopy code# インターネットゲートウェイの作成
aws ec2 create-internet-gateway --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=my-internet-gateway}]'

# VPC にインターネットゲートウェイをアタッチ
aws ec2 attach-internet-gateway --internet-gateway-id ${INTERNET_GATEWAY_ID} --vpc-id ${VPC_ID}

ステップ 6: ルートテーブルの設定

パブリックサブネットに対してルートテーブルを設定し、インターネットゲートウェイへのルートを追加します。

cssCopy code# ルートテーブルの作成
aws ec2 create-route-table --vpc-id ${VPC_ID} --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=my-public-route-table}]'

# インターネットゲートウェイへのルートを追加
aws ec2 create-route --route-table-id ${ROUTE_TABLE_ID} --destination-cidr-block 0.0.0.0/0 --gateway-id ${INTERNET_GATEWAY_ID}

# パブリックサブネットとルートテーブルを関連付け
aws ec2 associate-route-table --subnet-id ${PUBLIC_SUBNET_ID} --route-table-id ${ROUTE_TABLE_ID}

以上で、AWS で VPC を作成し、パブリックサブネットとプライベートサブネットを設定する方法が完了しました。これにより、AWS のリソースを論理的に分離し、カスタムのネットワーク環境を構築できます。

ステップ 7: NAT ゲートウェイの設定(オプション)

プライベートサブネット内のリソースがインターネットへアクセスできるようにするには、NAT ゲートウェイを設定します。ただし、NAT ゲートウェイは料金が発生するため、必要に応じて設定してください。

cssCopy code# エラスティック IP の作成
aws ec2 allocate-address --domain vpc

# NAT ゲートウェイの作成
aws ec2 create-nat-gateway --subnet-id ${PUBLIC_SUBNET_ID} --allocation-id ${EIP_ALLOCATION_ID} --tag-specifications 'ResourceType=nat-gateway,Tags=[{Key=Name,Value=my-nat-gateway}]'

NAT ゲートウェイが作成されたら、プライベートサブネット用のルートテーブルを作成し、NAT ゲートウェイへのルートを追加します。

cssCopy code# プライベートサブネット用のルートテーブル作成
aws ec2 create-route-table --vpc-id ${VPC_ID} --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=my-private-route-table}]'

# NAT ゲートウェイへのルート追加
aws ec2 create-route --route-table-id ${PRIVATE_ROUTE_TABLE_ID} --destination-cidr-block 0.0.0.0/0 --nat-gateway-id ${NAT_GATEWAY_ID}

# プライベートサブネットとルートテーブルを関連付け
aws ec2 associate-route-table --subnet-id ${PRIVATE_SUBNET_ID} --route-table-id ${PRIVATE_ROUTE_TABLE_ID}

これで、プライベートサブネット内のリソースがインターネットへアクセスできるようになりました。

まとめ

このガイドでは、AWS で VPC を作成し、パブリックサブネットとプライベートサブネットを設定する方法を説明しました。これらの手順に従って、独自のネットワーク環境を構築し、AWS のリソースを論理的に分離することができます。


用語の説明

サブネット


サブネットとは、コンピューターネットワークの一部で、インターネット上のコンピューターやデバイスが通信するために使用されるIPアドレスをグループ化する方法です。簡単に言うと、サブネットは、大きなネットワークを小さな部分に分割するために使用されます。これにより、ネットワーク管理が簡単になり、データの転送速度が向上し、セキュリティが強化されます。

中学生に例えると、学校の校舎を考えてみてください。学校全体が大きなネットワークであり、各教室がサブネットに相当します。学校では、教室ごとに生徒たちが分かれて授業を受けるため、全体の管理がしやすくなります。また、同じ教室内でのコミュニケーションは、他の教室と比べてスムーズに行われます。さらに、各教室ごとにドアや鍵があることで、教室内のセキュリティが確保されます。

同様に、サブネットを使用することで、ネットワークの管理が容易になり、データの転送速度が向上し、セキュリティが強化されるのです。サブネットは、インターネット上のさまざまなデバイスが効率的かつ安全に通信するために重要な役割を果たしています。

NAT(Network Address Translation)ゲートウェイ


NAT(Network Address Translation)ゲートウェイは、AWS VPC内のプライベートサブネットにあるリソースがインターネットや他のAWSサービスにアクセスできるようにするためのAWSサービスです。これにより、プライベートサブネット内のリソースがインターネットから直接アクセスされるのを防ぎながら、インターネットへのアウトバウンド接続を可能にします。

NATゲートウェイは、以下のような機能を提供します。

  1. スケーラビリティ: NATゲートウェイは、プライベートサブネット内のリソースからのインターネットアクセスの増加に自動的にスケーリングし、高可用性と高性能を維持します。

  2. 高可用性: NATゲートウェイは、使用するアベイラビリティーゾーン(AZ)に対して冗長構成が可能です。これにより、単一のAZに障害が発生しても、他のAZのNATゲートウェイが引き続きインターネットへのアクセスを提供できます。

  3. セキュリティ: NATゲートウェイを使用することで、インターネットからプライベートサブネット内のリソースへの直接アクセスを防ぐことができます。また、セキュリティグループを使用して、インターネットへのアウトバウンドトラフィックの種類と量を制限することもできます。

NATゲートウェイの使用にはコストがかかります。通常、アベイラビリティーゾーン(AZ)ごとにNATゲートウェイを作成し、それぞれのAZ内のプライベートサブネットがそのNATゲートウェイを使用するように設定します。これにより、AZ全体の冗長性が向上し、単一のAZに障害が発生しても、他のAZのNATゲートウェイがインターネットアクセスを維持できるようになります。ただし、NATゲートウェイごとに料金が発生するため、必要なAZの数だけNATゲートウェイを作成してください。

アベイラビリティゾーン(AZ)

アベイラビリティゾーン(AZ)は、AWSインフラストラクチャの一部で、地理的に分散されたデータセンター群です。それぞれのアベイラビリティゾーンは、独立した電源、冷却設備、ネットワーク接続を持ち、他のアベイラビリティゾーンとは物理的に離れています。これにより、一部のインフラストラクチャに障害が発生した場合でも、他のアベイラビリティゾーンは引き続き正常に機能します。

AWSでは、アプリケーションやリソースの可用性を高めるために、複数のアベイラビリティゾーンを利用することが推奨されています。少なくとも2つのAZを使用することで、以下のようなメリットがあります。

  1. 高い耐障害性: 一部のAZに障害が発生した場合でも、他のAZが正常に機能し続けるため、アプリケーションのダウンタイムを最小限に抑えることができます。

  2. ロードバランシング: 複数のAZにリソースを分散させることで、トラフィックやリクエストを均等に分散することができ、アプリケーションのパフォーマンスを向上させることができます。

  3. システムのスケーラビリティ: 複数のAZを利用することで、システム全体のリソースを増やすことが容易になり、需要が急増した場合でもスムーズに対応できます。

サブネットをプロビジョニングする際に、複数のAZを使用することで、これらの利点を活用し、アプリケーションの可用性、耐障害性、パフォーマンスを向上させることができます。少なくとも2つのAZを使用することが推奨されていますが、アプリケーションの要件や予算に応じて、さらに多くのAZを利用することも検討できます。

IPv4 CIDR(Classless Inter-Domain Routing)ブロック

IPv4 CIDRブロックは、インターネット上で使われる住所(IPアドレス)の範囲を示す方法です。CIDR表記は、住所の始まりと範囲の大きさを決めるのに役立ちます。

例えば、家族で使う家の住所があるとしましょう。家の住所は、通りの名前と家の番号で表されます。IPv4 CIDRブロックは、IPアドレス(インターネット上の住所)の範囲を表すために使われます。これによって、どこからどこまでの住所があるのかがわかります。

CIDR表記は、次のように見えます:[始まりのIPアドレス]/[範囲の大きさ]

例:10.0.0.0/16

  • 始まりのIPアドレス:10.0.0.0(範囲の最初の住所)

  • 範囲の大きさ:16(範囲の大きさを示す数字。小さいほど範囲が広く、大きいほど範囲が狭くなります)

この例では、10.0.0.0から10.0.255.255までの65,536個の住所が含まれています。

VPC(仮想プライベートクラウド)を作るときには、IPv4 CIDRブロックを使って、どのIPアドレスを使えるかを決めます。そして、VPCの中にサブネット(小さな住所のグループ)を作るときにも、CIDRブロックを指定します。このとき、サブネットのCIDRブロックは、VPCのCIDRブロックの中に入るようにしなければなりません。

IPv4 CIDR(Classless Inter-Domain Routing)についてもう少し詳しく説明します

IPv4 CIDR(Classless Inter-Domain Routing)ブロックは、インターネットプロトコルバージョン4(IPv4)アドレスを表す表記法です。CIDRブロックは、アドレス空間を効率的に割り当てるために使用され、ネットワークアドレスとサブネットマスクの組み合わせで構成されます。

CIDR表記は、次の形式で表されます:[ネットワークアドレス]/[プレフィックス長]

  • ネットワークアドレス: IPアドレスの範囲の開始点を表すIPv4アドレスです。

  • プレフィックス長: サブネットマスクのビット数で、ネットワークアドレスのどの部分がネットワークを識別するために使用されるかを示します。

例えば、192.168.0.0/16というCIDRブロックがあります。

  • ネットワークアドレス: 192.168.0.0(範囲の開始点)

  • プレフィックス長: 16(最初の16ビットがネットワークを識別するために使用される)

このCIDRブロックは、192.168.0.0から192.168.255.255までの65,536個のIPアドレスを含んでいます。

VPC(Virtual Private Cloud)を作成するときには、IPv4 CIDRブロックを指定する必要があります。これによって、VPC内で使用できるプライベートIPアドレスの範囲が定義されます。その後、VPC内のサブネットを作成する際にもCIDRブロックを指定する必要があり、VPCのCIDRブロック内である必要があります。

IPv6

IPv6は、インターネットプロトコル(IP)の最新バージョンであり、デバイスがインターネット上で互いに通信するためのアドレスを提供します。IPv6は、IPv4と比較して膨大な数のアドレスを提供することができるため、インターネットの成長に対応できます。IPv6アドレスは128ビットの長さで、IPv4の32ビットよりもはるかに長くなっています。
IPv6 CIDRブロックについて説明します。

  1. IPv6 CIDR ブロックなし: これは、VPCやサブネットにIPv6アドレスが割り当てられていないことを意味します。この場合、インターネット上のIPv6対応デバイスと通信することはできません。ただし、IPv4アドレスを使用して通信することは可能です。

  2. Amazon 提供の IPv6 CIDR: このオプションを選択すると、Amazonが自動的にIPv6 CIDRブロックをVPCやサブネットに割り当てます。これにより、インターネット上のIPv6対応デバイスとの通信が可能になります。Amazonが提供するIPv6 CIDRブロックは、一般的に/56の範囲で提供され、その中には多くのIPv6アドレスが含まれます。

IPv6を使用することで、インターネットの成長に対応し、デバイス間の通信をより効率的に行うことができます。ただし、IPv6を導入する際には、ネットワーク機器やソフトウェアがIPv6に対応していることを確認し、適切な設定が行われていることが重要です。

ライベートサブネットCIDRブロック


ap-northeast-1aは、Amazon Web Services (AWS) で利用可能なアベイラビリティーゾーン (AZ) の一つです。アベイラビリティーゾーンは、データセンターのグループであり、それぞれのグループは地理的に離れており、独立したインフラストラクチャを持っています。これにより、障害が発生した場合でもサービスの継続性が保たれます。

プライベートサブネットとは、仮想プライベートクラウド (VPC) 内の一部で、プライベートなネットワーク領域を提供するものです。この領域内のリソースは、インターネットから直接アクセスできないように設定されています。プライベートサブネットは、データベースや内部アプリケーションなど、セキュリティが重要なリソースを配置するのに適しています。

プライベートサブネットCIDRブロックは、そのサブネット内で使用できるIPアドレスの範囲を定義します。例えば、10.0.1.0/24のCIDRブロックを持つプライベートサブネットがある場合、そのサブネット内では10.0.1.0から10.0.1.255までのIPアドレスが使用できます。

「ap-northeast-1aのプライベートサブネットCIDRブロック」は、ap-northeast-1aアベイラビリティーゾーンに配置されたプライベートサブネットで利用可能なIPアドレスの範囲を指します。このCIDRブロックは、サブネットを作成する際に指定されます。

ap-northeast-1a のパブリックサブネット CIDR ブロック設定方法

ap-northeast-1a のパブリックサブネット CIDR ブロック: このサブネットは、CIDR ブロック 172.168.0.0/20 を持っています。これは、172.168.0.0 から 172.168.15.255 までの IP アドレス範囲を意味します。このサブネットには、合計で 4,096 の IP アドレスがあります。パブリックサブネットは、インターネットに直接アクセス可能なリソース(ウェブサーバーやロードバランサーなど)を配置するために使用されます。

  1. 「CIDR が別のサブネットと重複します」というメッセージは、同じ IP アドレス範囲を持つ別のサブネットが既に存在することを示しています。これは問題です。異なるサブネットは、互いに重複しない IP アドレス範囲を持つ必要があります。

  1. ap-northeast-1a のプライベートサブネット CIDR ブロック: このサブネットは、CIDR ブロック 172.168.0.0/16 を持っています。これは、172.168.0.0 から 172.168.255.255 までの IP アドレス範囲を意味します。このサブネットには、合計で 65,536 の IP アドレスがあります。

    1. 「CIDR は VPC CIDR のサブセットではありません」というメッセージは、このプライベートサブネットの CIDR ブロックが、対応する VPC の CIDR ブロックの範囲内にないことを示しています。サブネットの CIDR ブロックは、親となる VPC の CIDR ブロックのサブセットである必要があります。

これらの問題を解決するには、重複しない IP アドレス範囲を持つ新しいサブネットを作成し、プライベートサブネットの CIDR ブロックが VPC の CIDR ブロックの範囲内になるように設定する必要があります。

設定方法の例

以下の手順で、CIDR ブロックの重複を避け、VPC の範囲内にサブネットを設定できます。

  1. VPC の CIDR ブロックを決定します。例えば、10.0.0.0/16 とします。これにより、10.0.0.0 から 10.0.255.255 までの IP アドレス範囲が利用可能になります。

  2. パブリックサブネットとプライベートサブネットの CIDR ブロックを、VPC の CIDR ブロック内に収まるように設定します。例えば、次のように設定できます。

    • ap-northeast-1a パブリックサブネット: 10.0.0.0/20 (10.0.0.0 から 10.0.15.255 までの IP アドレス範囲)

    • ap-northeast-1a プライベートサブネット: 10.0.16.0/20 (10.0.16.0 から 10.0.31.255 までの IP アドレス範囲)

  3. さらに他のアベイラビリティーゾーン (AZ) でサブネットを作成する場合、続く IP アドレス範囲を使用して CIDR ブロックを割り当てます。例えば:

    • ap-northeast-1b パブリックサブネット: 10.0.32.0/20 (10.0.32.0 から 10.0.47.255 までの IP アドレス範囲)

    • ap-northeast-1b プライベートサブネット: 10.0.48.0/20 (10.0.48.0 から 10.0.63.255 までの IP アドレス範囲)

この方法で、CIDR ブロックの重複を避け、VPC の範囲内にサブネットを設定することができます。



この記事が気に入ったらサポートをしてみませんか?