このページは、特にAWSのネットワーク設計について説明する。あまりAWSに慣れていない人に対して記事を書くつもりだ。
このサイトでは先にAzureのネットワークについても記事にしているため、そちらの記事も参照しながらだと、よりクラウド環境のネットワーク設計への理解が深まるだろう。
-
-
Azure - 仮想ネットワークとネットワーク(NSG)
仮想ネットワークは、オンプレでいうところのサーバラックとスイッチであり、ネットワークセキュリティグループがFWだ。そして仮想ネットワークは、AWSでいうところのVPCである。 目次 仮想ネットワーク( ...
続きを見る
AWSのネットワーク概念
AWS上にネットワークを設計・構築するにあたり、まず初めにVPCとネットワークセキュリティグループの二つについて理解しよう。
AWS よくあるシステム構成図
多くのシステムを開発してきたが、以下の基本構成を理解し、構築できるようになれば、初心者は脱したと言えるだろう。
メモ
自分の中で、何個か基本パターンを持っておくことはエンジニアとしての信頼に繋がるため一つの技術スキル指標としておこう。
時間を作って、このページでは説明していないVPC peering(ピアリング)やInternet Gateway(インターネットゲートウェイ)についても、ネットで調べてみてほしい。セキュリティ観点で提案する場面が多いサービスだからだ。
VPCとは
VPCとは、オンプレでいうところのデータセンターにあるサーバラックとL3スイッチを一つにした概念である。サーバをラックに配置して、LANを結線して、L3スイッチでネットワークセグメントとルーティングを決めて・・・といった具合である。
VPCの設計方針
VPCを設計する場合は、どこまでを一つのネットワークとして区別するのか。ということを念頭に置いて考えましょう。
ポイント
通常は、開発環境でVPC一つ。本番環境でVPC一つ。という大きな区分で分けます。
セキュリティをさらに強化にしたい場合、サーバシステムがインターネットに接しないように、サーバシステムのVPCと踏み台サーバ用のVPCとして周辺系システムのVPCを分けて作ることもあります。DMZの考え方です。上の図をもう一度見てみてください。
参考
AWSでインターネットに接続する場合、VPCにインターネットゲートウェイをアタッチしないといけない。サーバシステム側のVPCはインターネットに晒したくない場合は、間に一つVPCを設けることでセキュリティが強固になります。
また、VPCはシステムのルーティングとセキュリティに大きくかかわってきます。Azureの場合は、Vnet(仮想ネットワーク)と言いいますが、AWSの場合は、VPCと言います。これら二つのサービスの違いはほぼないです。
参考:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html
補足)
AWSにはAzureに存在するリソースグループと同じサービスはありません。そのためAWSは、使用しているサービスをまとめて確認することができません。全体を俯瞰してみたい。まとめて管理したい。網羅したい。というエンジニアの性質に答えられません。ここは要改善点かな。
両方の違いを知りたいという人はこちらの記事も参照してください。
-
-
Azure - 仮想ネットワークとネットワーク(NSG)
仮想ネットワークは、オンプレでいうところのサーバラックとスイッチであり、ネットワークセキュリティグループがFWだ。そして仮想ネットワークは、AWSでいうところのVPCである。 目次 仮想ネットワーク( ...
続きを見る
サブネット
VPCをさらにサーバ種別等で分割する場合、サブネットの設定を使用します。
ポイント
アプリケーションサーバの層で一つ。データベースの層で一つ。クライアントの層で一つ。という具合に分けるのがセオリーです。
AWSを使い始めの頃は、サーバ種別(AP/DB/監視)で分けるというように理解しておきましょう。
参考:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html
セキュリティグループ
これは、オンプレでいうところのFW(ファイアウォール。)です。EC2などのサーバサービスに紐づけます。よく出てくる通信プロトコルとポートは、以下の通りなので覚えておきましょう。
ポイント
- httpsのポート443
- httpのポート80
- SQL Serverのポート1433
- リモートデスクトップのポート3389
参考:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html
以上を踏まえて、もう一度システム構成を見た時に、理解できていることを実感できると思う。
AWSのネットワーク設計のポイント
VPCをどうやって分けるか。サブネットを活用して、階層を分けて、どうやってセキュリティグループでセキュリティを確保するか。
特にクラウドは防御が大切です。VPC一つ、サブネット一つ、セキュリティグループ一つ。という一番楽な設計もあります。しかし、これでは拡張性や安全性を考慮するとあまりお勧めする構成ではありません。
以下を考慮して、まず最初に絵をかいてから構築作業に移りましょう。慣れてきてから頭の中で、イメージを作るようにすればよいです。
まずは、絵を描いてみましょう。
ポイント
VPCの中、サーバ種別でサブネットを分ける。
将来含めて使用するIPアドレスの数でネットワークアドレスを分ける。
接続の方向とプロトコルを確認して、ポートを設定する。
セキュリティを意識して、接続元と先のIPアドレスを絞る。