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

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

ただいまの
回答率

90.76%

  • AWS(Amazon Web Services)

    1841questions

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

  • サーバ

    745questions

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

  • ネットワーク

    503questions

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

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

解決済

回答 2

投稿

  • 評価
  • クリップ 5
  • VIEW 1,371

GotHokLin

score 4

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ゲートウェイはどのサブネットに配置すべきでしょうか。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+4

・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/18 12: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サーバのサブネットは分けておくほうが融通が利きそうです。今回は分けることを検討します。

    すぐにでもベストアンサーにさせていただきたいのですが、もしかすると他の方のご意見もいただけるかと思い、失礼ながらもう少しだけ待たせていただきます。

    キャンセル

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    1841questions

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

  • サーバ

    745questions

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

  • ネットワーク

    503questions

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