
EC2インスタンスをIPv6化してAWSコストを削減した話
目次
事前説明
なぜ今回の作業をやる必要があるのか?事前説明です。
結論:IPv6化で固定費をカット!
背景と課題
新しいアーキテクチャの概要
東京リージョン (ap-northeast-1) のポイント
- Dual-Stack VPC: IPv4 (10.0.0.0/16) とIPv6の両対応ですが、EC2はパブリックIPv4アドレスを割り当てない構成(IPv6-primary / Dual-stack VPC内での運用。
- EC2 Instance Connect Endpoint (EIC): これが便利!パブリックIPv4アドレスがなくても、マネジメントコンソールやAWS CLIから安全にSSH接続が可能です。
- セキュリティグループ: CloudFrontのManaged Prefix List (IPv6) からのHTTP(3000)のみを許可し、セキュリティも強固に。
バージニアリージョン (us-east-1) のポイント
- CloudFront: HTTP/2, HTTP/3対応に加え、IPv6を有効化。カスタムオリジンとしてEC2のIPv6 DNS名 を指定しています。
- 夜間リダイレクト: CloudFront Functionを使い、日本時間の夜間(21:00〜07:00)はアクセスしてもリダイレクトページ(S3)へ飛ばすようにしました。働きすぎ防止です(笑)。夜間はEC2を停止する前提です!
AWS CDKによるIaC実装
今回は開発体験の向上も兼ねて、最新のPythonパッケージマネージャーである uv と AWS CDK v2 を組み合わせました。
技術スタック
- 言語: Python 3.13
- パッケージマネージャー: uv
- IaC: AWS CDK v2
- テスト: pytest + Hypothesis
プロジェクト構成
デプロイモードで安全に!
# 検証時はこちら
$ uv run cdk deploy RocketChat-IPv6-Tokyo -c deploy_mode=staging
IPv6環境でのハマりポイントと工夫
IPv6オンリーの世界は非常にシンプルですが、いくつか工夫が必要な点もありました。
1.S3へのアクセス
EC2からS3へアクセスする際、通常のままだとIPv4でつなぎにいこうとして失敗します。RocketChatの設定でデュアルスタックエンドポイントを明示的に指定しました。
https://s3.dualstack.ap-northeast-1.amazonaws.com
2.API Gatewayへのアクセス
RocketChatにはボットが住み着いており外部にあるAPI Gatewayと連携をしています。よってAPI Gatewayもデュアルスタック化しました。
運用はどうするか?
実装が出来た後に運用面も考える必要があります。
今回は以下2つの対処をしました(実は前からすでに一つは実装済み)
1.運用コストのさらなる削減(平日のみ稼働)
2.SSH接続はどうする?
$ aws ec2-instance-connect ssh \ --instance-id i-xxxxxxxxxxxxxxxxx \ --region ap-northeast-1 \ --connection-type eice \ --os-user ubuntu
成果と気づき
コスト削減
技術的メリットと学び
まとめ
トレノケートのAWS研修で、学びを実践力に変える
トレノケートの AWS認定トレーニング では、AWS社の厳格な基準を満たした認定講師が、体系的かつ実践的な学習をサポートします。
基礎から応用、そして認定資格取得まで。
目的やレベルに応じて最適なコースをお選びいただけます。
AWSの基本を知りたい方や、AWSについて詳しく知りたいという 方は、弊社のAWS認定インストラクターが解説するこちらの記事がおすすめです。
▶「 AWSとは?AWS認定講師が解説」 を確認する
体系的な学びを通じて、AWSを“理解する”から“使いこなす”へ。
トレノケートは、皆さまのクラウドスキル成長を全力でサポートします。
久保玉井 純
AWS & OCI 認定インストラクター
2025/2024/2023 Japan AWS All Certifications Engineer
好きなラーメンは二郎系です。 https://maijun.net/




