
【登壇レポート】ITインフラ集会『VPCに属するサービスと 属さないサービスは どう違うのだろうか?』
こんにちは!Koty-Mousa 矢坂幸太郎 です!
2025年5月24日、VRChatにて開催された ITインフラ集会に登壇してきました!
(登壇資料は末尾にあります)
VPC
以前、ITインフラ集会に登壇した際、「RDSとDynamoDBは、どちらもデータベース系なのにどうしてこんなに接続方法が異なるのか」というご質問をいただき、当ブログにて回答となるブログを執筆しました。
本ブログではあまり大きく触れていませんが、この2つの違いに、「VPCに属する (RDS) か、属さない (DynamoDB) か」という違いがあります。
VPCは、AWS上にお客様独自の仮想ネットワーク空間を作成できるサービスです。
LANやオンプレミスネットワークと同じように、独自のIPアドレス範囲を設定し、セキュアで分離されたネットワーク環境をクラウド上に構築することができます。
そして、VPCに属するサービスと属さないサービスの違いを、
他リソースとの接続の仕組みを VPCの仕組みを使うか、サービス自体で用意するか と考えます。
(Koty の個人的見解です)
今回はEC2・RDS・S3で比較してみましょう。
EC2はVPCを用いる代表的なサービスです。起動時には必ずVPCを指定する必要があります。
RDSも同様に、VPCを指定します。
一方で、S3ではVPCを設定する必要はありませんーーマネジメントコンソールにVPCの設定項目自体が存在しません。
では、EC2 – RDS と、EC2 – S3 の接続方法にはどのような違いがあるでしょうか?
EC2 – RDS
EC2とRDSはどちらもVPCに属します。
そのため、VPC内のIP通信が可能です。
RDSの接続エンドポイントのIPアドレスを求めると、10
から始まるローカルIP(=インターネットに出ない)であることがわかります。
EC2 – S3
S3はVPCに属しません。そのため、S3はVPC外に存在します。
インターネットゲートウェイ経由の場合、EC2はVPC外の(外部に公開されている)S3エンドポイントへ接続します。
S3バケットでWebサイト公開
S3単体で、静的Webサイトを公開できます。
S3はVPCに属しません。そのため、この構成の場合はVPCを使用しません。
VPCでは セキュリティグループやNACLでアクセス制御を行いますが、S3ではバケットポリシーや Block Public Access で制御します。
これらについては、ぜひ下記ブログもご覧ください。
S3のブロックパブリックアクセスをONにしても 設定可能なバケットポリシーは? | DevelopersIO
S3 – CloudFront
S3 と CloudFront は どちらも VPCに属しません。
S3側ではバケットポリシーや Block Public Access で、CloudFront側ではOrigin Access Control で制御・認証します。
まとめ
「他リソースとの接続の仕組みを VPCの仕組みを使うか、サービス自体で用意するか」でした。
各サービスごとに、様々な良い仕組みがございます。
なお、本ブログで案内している構成は、説明目的のため ベストプラクティスではない場合がございます。
実装の際には、より安全な構成をご検討ください。
必要最低限のリソースのみ許可するようにしましょう!(最小権限の原則)
また、今回は触れませんでしたが、IAMによる認可も非常に重要です。
以上、Koty-Mousa 矢坂幸太郎 がお伝えしました!
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。