【要約】GenU閉域モードを深掘りする~フロントエンド・認証編~ [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者は、インターネット接続を制限された閉域環境において、セキュアなフロントエンド配信と認証基盤を構築しなければならない。この要件を満たすには、以下の技術的課題を解決する必要がある。
- ・CloudFront等のパブリックサービスが利用できない制約下でのコンテンツ配信。
- ・API Gatewayへのリクエストと、ストリーミング応答等のAWS SDK直接呼び出しにおける、異なる認証方式の共存。
- ・オンプレミス環境からの名前解決と、閉域内でのセキュアな通信経路の確保。
// Approach
設計者は、AWSの閉域リソースを組み合わせることで、ネットワーク経路と認証フローを最適化した構成を採用した。具体的な手法は以下の通りである。
- ・ネットワーク層:Route 53プライベートホストゾーンとVPCエンドポイントを用い、インターネットを経由しない通信経路を確立。
- ・フロントエンド層:ALB、ECS Fargate、S3を組み合わせ、CloudFrontなしで静的ファイルを配信。
- ・認証層:Cognito User PoolでID Tokenを発行し、Identity Poolで一時クレデンシャルを取得。
- ・認証の使い分け:API GatewayにはID Tokenを、Polly等のAWS SDK直接呼び出しには一時クレデンシャルを使用。
// Result
この設計により、閉域環境下で高いセキュリティとスケーラビリティを両立したフロントエンド基盤を実現した。具体的な成果は以下の通りである。
- ・FargateのAuto Scaling(1〜20タスク)により、負荷に応じた柔軟なリソース調整が可能。
- ・認証方式を分離することで、APIアクセスとストリーミング等のSDKアクセスを安全に両立。
- ・SPAのフォールバック処理の実装により、閉域内でのスムーズなユーザー体験を提供。
Senior Engineer Insight
> 閉域環境における「認証の使い分け」が極めて実践的だ。API Gateway(JWT検証)とAWS SDK(SigV4署名)の使い分けは、ストリーミング応答を扱うモダンなAIアプリでは必須の設計である。CloudFrontを排除し、Fargate+S3で静的配信を行う構成は、閉域制約下での最適解と言える。ただし、Fargateのタスク数増大に伴うコスト管理と、VPCエンドポイントの管理コストには留意が必要だ。