Skip to content

SRE-1539: CloudFlare CDNへのCloudFront移行によるPrefix List追加対応

チケット概要

JIRA URL: https://fastdoctor.atlassian.net/browse/SRE-1539

概要: CloudFlareとCloudFrontのPrefix ListをSecurity Groupに追加する作業において、既存のSecurity Group Rule数制限により直接的なルール追加が困難。そのため、CloudFront CDNからCloudFlare CDNへの移行を実施した後にPrefix Listの追加を行う。

課題・制約事項

Security Group Rule制限

  • AWSのSecurity GroupにはInbound/Outboundルール数に上限があり(デフォルト60ルール/方向)
  • 現状のSecurity Groupが既に上限に近い状態
  • CloudFlareとCloudFrontの両方のPrefix Listを同時に追加すると制限に抵触

解決アプローチ

既存のCloudFrontからCloudFlare CDNへ移行することで、CloudFrontのPrefix Listルールを削除し、CloudFlareのPrefix Listルールのみを追加する構成とする。

実装計画

Phase 1: CloudFront → CloudFlare CDN移行準備

  1. 現在のCloudFront設定の調査・ドキュメント化
  2. CloudFlare CDN設定の設計
  3. 移行計画の詳細化
  4. テスト環境での移行テスト

Phase 2: CloudFlare CDN移行実施

  1. CloudFlare CDN設定の実装
  2. DNS切り替え
  3. CloudFront設定の削除
  4. 動作確認

Phase 3: Security Group Prefix List更新

  1. CloudFrontのPrefix Listルールを削除
  2. CloudFlareのPrefix Listルールを追加
  3. 通信テスト・動作確認

関連リソース

AWS Resources

  • Security Groups: 対象となるSGのID一覧
  • CloudFront Distribution: 移行対象のDistribution ID
  • Route53: DNS設定

CloudFlare Resources

  • CDN設定: CloudFlare CDN設定情報
  • SSL証明書: SSL/TLS設定
  • キャッシュルール: Page Rules設定

Terraform Resources

  • Security Group モジュール: fastdoctor-template/template_modules/配下
  • CloudFront モジュール: 既存のCloudFront設定
  • Route53 モジュール: DNS設定用モジュール

作業記録・実装ログ

2025-09-02

  • 作業内容: タスクドキュメント作成
  • 実施者: Claude Code
  • 詳細:
    • CLAUDE.mdのファイル命名ルールに従い単一ファイル形式に変更
    • 課題整理と実装計画を記載
    • CloudFlare CDN移行によるPrefix List追加のアプローチを決定

課題・ブロッカー

Security Group Rule制限

  • 発見日: 2025-09-02
  • 詳細: AWS Security GroupのInbound/Outboundルール数制限(デフォルト60ルール/方向)により、CloudFlareとCloudFrontの両方のPrefix Listを同時追加不可
  • 対処方針: CloudFront → CloudFlare CDN移行により既存ルールを置換する方式に変更

進捗状況

  • [ ] Phase 1: 移行準備
    • [ ] CloudFront設定調査
    • [ ] CloudFlare CDN設計
    • [ ] 移行計画策定
    • [ ] テスト環境での移行テスト
  • [ ] Phase 2: CDN移行実施
    • [ ] CloudFlare CDN設定
    • [ ] DNS切り替え
    • [ ] CloudFront削除
    • [ ] 動作確認
  • [ ] Phase 3: Prefix List更新
    • [ ] CloudFrontルール削除
    • [ ] CloudFlareルール追加
    • [ ] 通信テスト・動作確認

完了条件

  1. CloudFrontからCloudFlare CDNへの完全移行
  2. CloudFlareのPrefix ListがSecurity Groupに適用済み
  3. 全てのサービスが正常動作
  4. CloudFront関連リソースの適切な削除
  5. ドキュメントの更新完了

リスク・注意事項

  1. DNS切り替え時のダウンタイム: TTL設定によるキャッシュ影響
  2. SSL証明書: CloudFlareでのSSL証明書設定確認必須
  3. キャッシュ設定: CloudFrontとCloudFlareでのキャッシュ動作差異
  4. ロールバック計画: 問題発生時の迅速な戻し手順の準備

技術メモ

AWS Security Group制限

  • デフォルトルール数: 60 (Inbound) / 60 (Outbound)
  • Prefix List使用時も1エントリ = 1ルールとしてカウント
  • 制限緩和申請も可能だが、アーキテクチャ変更の方が推奨される

CloudFlare vs CloudFront

項目CloudFrontCloudFlare
Prefix Listaws:cloudfrontaws:cloudflare
SSL終端対応対応
キャッシュ設定TTL/BehaviorPage Rules/Workers
料金モデル使用量課金定額+超過分

関連コマンド・スクリプト

bash
# Security Groupルール数確認
aws ec2 describe-security-groups --group-ids sg-xxxxxxxx --query 'SecurityGroups[0].[IpPermissions | length, IpPermissionsEgress | length]'

# CloudFront Distribution確認
aws cloudfront list-distributions --query 'DistributionList.Items[*].[Id, DomainName, Status]'

# Prefix List確認
aws ec2 describe-managed-prefix-lists --filters Name=prefix-list-name,Values=com.amazonaws.global.cloudfront.origin-facing

次回作業予定

Phase 1: 移行準備作業

  1. 現状調査

    • 対象Security Groupの特定と現在のルール数確認
    • CloudFront Distributionの設定詳細調査
    • 依存するサービス・アプリケーションの特定
  2. CloudFlare CDN設計

    • CloudFrontと同等機能の実現方法検討
    • SSL証明書設定方針決定
    • キャッシュルール設計
    • DNS切り替え手順策定
  3. テスト計画

    • 開発環境での移行テスト実施
    • 性能・機能テスト項目策定

最終更新日

2025-09-02