質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

6008閲覧

AWSでのLB・Web/AP・DB構造のWebサービス向けネットワーク構成について

GotHokLin

総合スコア34

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

5クリップ

投稿2018/01/17 05:56

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サービス
LBELB
Web/APサーバEC2 (Amazon Linux1)
DBサーバRDS

全て東京リージョンで構築します。

VPCは10.0.0.0/16としサブネットを4つ、以下のように定義しております。
frontにはWeb/APサーバを設置、backにはRDSを配置したいと考えております。

ネットワーク名称配置予定のサーバ
10.0.1.0/24front-1aWeb/APサーバ、管理用サーバ
10.0.2.0/24front-1bWeb/APサーバ
10.0.11.0/24back-1aRDS (Multi A-Z)
10.0.12.0/24back-1bRDS (Multi A-Z)

末尾のa/bはのAZの名称をサブネット名です。

VPCにはインターネットゲートウェイを配置済みです。

ルートテーブルは以下のようになっています。

宛先ターゲット
10.0.0.0/16local
0.0.0.0/0上記記載のインターネットゲートウェイ

上記ルートテーブルには以下のようにサブネットの関連付けております。

宛先IPv4 CIDR
front-1a10.0.1.0/24
front-1b10.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ゲートウェイはどのサブネットに配置すべきでしょうか。

以上となります。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

・Web/APサーバはどのサブネットに配置すべきでしょうか。(現在は管理用のサーバと一緒のサブネットにありますが、管理用のサーバとはまた別のサブネットを設けるべきでしょうか)

どちらでもいいと思います。
同じでも別でも、基本的にはセキュリティグループでアクセス制御することになります。
セキュリティグループの接続元の制限は、ネットワークアドレスで制限する以外に、セキュリティグループで制限することもできます。
(例: RDS は Web/APサーバ(のセキュリティグループ)からのみ許可、ELB(のセキュリティグループ)および管理用のサーバ(のセキュリティグループ)からは禁止)

管理用のサーバ→RDS を禁止するのであれば、別サブネットにした方がわかりやすいかもしれません。
Network ACL も併用できますし。

・Web/APサーバがパッケージのアップデートなどのためにはNATゲートウェイは必要でしょうか。その場合、NATゲートウェイはどのサブネットに配置すべきでしょうか。

Web/APサーバに Public IP を付けないのであれば、NATゲートウェイは必要です。
「自己レス」にもありますが、AZ 障害を考慮すると、それぞれの AZ に配置した方がいいでしょう。

あるいは、EIP ではなくても、Public IP を有効にして Web/APサーバの EC2インスタンスを起動し、ルーティングテーブルで 0.0.0.0/0→igw とすれば、インターネットへの outbound 通信ができるので、NATゲートウェイは必要なくなります。

インターネットから Public IP への inbound 通信はセキュリティグループで拒否することになります。
HTTP も 0.0.0.0/0 ではなく、10.0.0.0/16 に絞るか、ELB、管理用サーバのセキュリティグループのみにします。
そこは、うっかり穴を開けないように注意するしかないかと。

また一般的な形で、という質問になりますが、RDSのためサブネットは分けた方がよいのでしょうか。

どちらでもいいと思います。
RDS や ELB はサブネット内の IPアドレスをランダムに使っていくので、EC2インスタンスの private IP を固定して使いたいとか、EC2インスタンスを 250 起動したい(RDS, ELB の消費で足りなくなる)とかであれば、RDS, ELB 用のサブネットを分けた方がいいと思います。

投稿2018/01/17 15:31

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GotHokLin

2018/01/18 03:02

TaichiYanagiyaさん、ご丁寧なご回答誠にありがとうございます。 疑問だった点が一気に解消いたしました。 Web/APサーバにむしろEIPではないにしろ(動的な)Public IPを割り当て、ルーティングテーブルで0.0.0.0/0をigwに割り振るというのは目からうろこでした。 Web/APサーバからしてみるとLBを通ったアクセスに関してはVPC内部のPrivate IPからのアクセスですから、デフォルトゲートウェイはigwで大丈夫なんですね。 検証などで各サーバへ直接アクセスしたい場合など便利かなと感じました。 あまり大規模(EC2などが数多く起動する状況)になることは現時点では想定されていないため、サブネット内のIPが足りなくなることはないのではないかと考えております。 また今のところはセキュリティーグループのみで制御できるレベルですが、Network ACLも併用できるという事を考えておくと、アクセス元・用途が異なるWeb/APサーバとDBサーバのサブネットは分けておくほうが融通が利きそうです。今回は分けることを検討します。 すぐにでもベストアンサーにさせていただきたいのですが、もしかすると他の方のご意見もいただけるかと思い、失礼ながらもう少しだけ待たせていただきます。
guest

0

自己レスです。

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、という形が一般的でしょうか。

投稿2018/01/17 06:15

GotHokLin

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問