AWS VPCについて
参考
VPCとは
VPCとは、
Amazon Virtual Private Cloud (Amazon VPC) を使用すると、論理的に隔離されている定義済みの仮想ネットワーク内で AWS リソースを起動できます。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。
次の図表は、VPC の例を示しています。VPC には、リージョンの各アベイラビリティーゾーンに 1 つのサブネット、各サブネットに EC2 インスタンス、VPC 内のリソースとインターネットとの通信を可能にするインターネットゲートウェイがあります。
Amazon VPC とは?
引用をかみ砕くと、
「リージョンの各アベイラビリティーゾーンに 1 つのサブネット」 =
外部に公開する部分(public)と公開しない部分(private)に細かく分けることができる(サブネット)
例えば、webサーバーはpublicにrds等の外部から触られたくない物はprivateに配置などをユーザーが任意に設定することができる。
つまり、ユーザー専用のネットワークを構築できるシステムになる。
VPCを使う場合とそうでない場合
しかし上記の説明だけでは、それができて何がうれしいのかがよくわからない。
なのでVPCを使用しない場合と使用した場合で簡単に比べてみる。
使用しない場合
使用しない場合、つまりVPCを使わずにEC2やRDSを立てる場合。
この場合、AWSのデフォルトのネットワーク上で動作をすることになる。
デフォルトのネットワークは、他のAWSユーザーのインスタンスと同じ環境で動作をする、
つまり自分のEC2やRDSがインターネットから直接アクセスできる形になり、セキュリティ設定が甘いと外部から攻撃される可能性が増える。
また、他のユーザーと共有された環境の為、細かいアクセス制御やネットワークの制御が難しい。
基本的には、この状態では最低限のセキュリティとネットワーク管理しかできないので、AWSのメリットを十分に活用ができていない状態になる。
使用する理由
次に、VPCを使用した場合。
他のAWSユーザーと隔離された、ユーザー専用のネットワークを構築できる。
これにより、
- webサーバー: publicサブネットにして誰でもアクセスができるように
- RDS: privateサブネットに配置して、限定されたユーザーしかアクセスができないように
という形で構築することが可能になる。
また細かいアクセス制御が可能になる。
アクセス制御リストを使用して、
誰がどこからどのリソースにアクセスできるかを細かく設定できる。
例えば、EC2インスタンスにアクセスできるIPアドレスを限定したり、データベースにはアプリケーションサーバーからだけアクセスできるように設定などが可能になる。
まとめると
VPCを使わずにEC2やRDSをそのまま立てると、外部からのアクセスが容易になり、セキュリティのリスクが大きくなる。
一方で、VPCを使うとクラウド上に自分専用のセキュアなネットワークを構築し、アクセス制御、セキュリティ、ネットワークの柔軟性を高めることができるので、より安全で信頼性の高いサービス運用が可能になる。
Discussion