こんにちは、ちゃりおです。
勉強会や資格勉強で、最近VPCについて考えることが多いです。
今回は、VPCを作成する際に個人的によくないと思っていることを書いてみます。
本番環境でデフォルトVPCを使っている
デフォルトVPCは、アカウントを作成した際最初からあるVPCです。
こちらは、「すぐに、インターネットに接続できるようにする」ことを目的に作られた特別なVPCです。
そのため、作成した際に必ずパブリックサブネットになります。
(IGWがデフォルトで割り振られる)
ルートテーブルのIGWのルートを消せば、プライベートサブネットにすることも可能です。
しかし、本来の用途と違うので、プライベートサブネットが必要な場合は別にVPCを作成するほうがいいです。
本番環境でデフォルトVPCを使っていると、「インターネットと直接やりとりする必要のないリソースがパブリックサブネットにいる」という自体も起きる可能性があります。
例えばDBサーバ(RDS)をおいた場合、セキュリティグループの設定を間違えたらインターネットからもアクセスできてしまいます。
セキュリティ的なリスクもあるので、本番環境は新しいVPCに作りましょう。
ステージング環境と本番環境が同一VPC内にいる
VPCを作成するのを面倒くさがって、ステージング環境と本番環境が同一VPCに作成してしまったパターンです。
- ステージング環境に攻撃を受けた際、本番環境にも影響がでる
- 通信経路・セキュリティグループがカオスになる
- ステージング環境と本番環境のネットワーク構成に差異がでる
「ステージング環境に攻撃を受けた際、本番環境にも影響がでる」
ステージング環境のほうがセキュリティがゆるいケースが多いと思います。
同一VPCだと、ステージング環境のいずれかのサーバに侵入された際そのまま本番にもアクセスできる可能性があります。
VPCを分けることで、ネットワーク的に分離することが可能です。
そのため、VPC内に影響をおさえることができます。
「通信経路・セキュリティグループがカオスになる」
VPC内のセキュリティグループが増えてしまうので、運用がしづらいです。
「ステージング環境と本番環境のネットワーク構成に差異がでる」
別VPCにすれば、プライベートIPアドレスも同一な構成にすることが可能です。
アカウントごとに環境を分けるパターンもありますが、最低限VPCは分けたいものです。
まとめ
VPCのアンチパターンについて書いてみました。
まだまだ、ありそうですが今回は2点です。
- 本番環境でデフォルトVPCを使っている
- ステージング環境と本番環境が同一VPC内にいる
VPCをあとから変更するのは、労力が大きいので構築する段階で
上記のことは気をつけたいです。
参考書籍