質問: AWSやネットワーク設計にあまりなれておらず、いくつかの点で困っております。 ### 前提・実現したいこと インターネット - LB - Web/APサーバ(AZの異なるサブネットそれぞれに複数台)- DBサーバ という形のごく一般的なWebサービス向けのサーバをAWSにて構築する計画です。 Web/APサーバは直接グローバルIPからの接続を受け付ける必要がないため、EIPは付与しません。 またWeb/APサーバの他に、sshログイン用やデータの管理用のためサーバを1台立てています。このサーバはLB配下である必要がなく、グローバルIPからアクセスする必要があるためEIPを付与します。(今後、別目的の管理用のサーバも立てる予定です) この管理用のサーバに1台ついては、既に別のレンタルサーバで稼働しているZabbixサーバ向けのZabbix Proxyを設置し、今回稼働させるAWS内の各サーバのデータを収集したいと考えております。 AWSの以下のサービスを利用する予定です。 | 機能 | AWSサービス | | --- | --- | | LB | ELB | | Web/APサーバ | EC2 (Amazon Linux1) | | DBサーバ | RDS | 全て東京リージョンで構築します。 VPCは10.0.0.0/16としサブネットを4つ、以下のように定義しております。 frontにはWeb/APサーバを設置、backにはRDSを配置したいと考えております。 | ネットワーク | 名称 | 配置予定のサーバ | | --- | --- | --- | | 10.0.1.0/24 | front-1a | Web/APサーバ、管理用サーバ | | 10.0.2.0/24 | front-1b | Web/APサーバ | | 10.0.11.0/24 | back-1a | RDS (Multi A-Z) | | 10.0.12.0/24 | back-1b | RDS (Multi A-Z) | 末尾のa/bはのAZの名称をサブネット名です。 VPCにはインターネットゲートウェイを配置済みです。 ルートテーブルは以下のようになっています。 | 宛先 | ターゲット | | --- | --- | | 10.0.0.0/16 | local | | 0.0.0.0/0 | 上記記載のインターネットゲートウェイ | 上記ルートテーブルには以下のようにサブネットの関連付けております。 | 宛先 | IPv4 CIDR | | --- | --- | | front-1a | 10.0.1.0/24 | | front-1b | 10.0.2.0/24 | セキュリティーグループについては、現状はアウトバウンドは全て開放している状況です。 インバウンドは以下の通りです。 | サーバ | 設定 | | --- | --- | | 管理用サーバ | sshログイン用接続元グローバルIP | | Web/APサーバ | ssh 10.0.0.0/16 , http 0.0.0.0/0 | ### 発生している問題 上記で書いた通り、管理用サーバはfront-1aに配置しEIPを付与しているため、sshでのログインやyumコマンドでのパッケージのアップデートが可能な状態です。 Web/APサーバへは管理用サーバを踏み台にしてsshでログインできるものの、パッケージのアップデートのため、yumコマンドを利用しても外部にアクセスできない状況です。 ### 試したこと Web/APサーバがVPC外部とやり取りをするためにはNATゲートウェイが必要かと思い、front-1aサブネット内に作成、EIPを付与。 しかしルートテーブルを編集しようとしましたが、サブネット毎の関連付けとなり、front-1aサブネットはすでにインターネットゲートウェイを向いているため、関連付けができません。 またback-1aサブネットにEC2、NATゲートウェイを作成、ルートテーブルを新規に作成し、サブネットの関連付けから、back-1aの0.0.0.0/0を作成したback-1aのNATゲートウェイを指定しても、back-1aのEC2からはyumコマンドなどが利用できませんでした。 ### 質問内容 * Web/APサーバはどのサブネットに配置すべきでしょうか。(現在は管理用のサーバと一緒のサブネットにありますが、管理用のサーバとはまた別のサブネットを設けるべきでしょうか) * Web/APサーバがパッケージのアップデートなどのためにはNATゲートウェイは必要でしょうか。その場合、NATゲートウェイはどのサブネットに配置すべきでしょうか。 以上となります。よろしくお願いいたします。
回答: 自己レスです。 NATゲートウェイをfront-1a作成しEIPを付与、Web/APサーバのEC2をback-1aに配置、ルートテーブルを新たに作成し、サブネットの関連付けからback-1a、back-1bのサブネットを0.0.0.0/0の宛先をfront-1aに作成したNATゲートウェイに向けたところ、back-1aのEC2からyumコマンドでのアップデートが可能になりました。 大変失礼いたしました。 この場合ですが、NATゲートウェイは今回1aというアベイラビリティゾーンに配置しましたが、仮にこの1aアベイラビリティゾーンに障害があった場合は、このNATゲートウェイを通過するようルートテーブルを設定したサブネットのサーバからは外部への通信はできなくなるという事でしょうか。 もしそうだとしたら、NATゲートウェイを冗長化するようなことが必要になるのでしょうか。 また一般的な形で、という質問になりますが、RDSのためサブネットは分けた方がよいのでしょうか。 分けるとなると、 * 管理用などのサーバのため、グローバルIPから直接入ることができるサーバを置くサブネット * Web/APサーバを置くサブネット * RDSを置くサブネット かつ、アベイラビリティゾーンをまたいで配置したいと考えていますので、上記3つx2、という形が一般的でしょうか。