AWS SES(Simple Email Service)の導入時、避けて通れないのが「サンドボックス解除(プロダクション移行)」の申請です。
通常、この申請をCLI/CUIで行おうとすると、多くの技術資料では aws support create-case コマンドが紹介されています。しかし、このコマンドを実行すると、ベーシックサポートプラン(無料枠)のユーザーは以下のエラーに遭遇します。
An error occurred (SubscriptionRequiredException) when calling the CreateCase operation:
Amazon Web Services Premium Support Subscription is required to use this service.
「CLIで手続きを完結させたければ、月額$100以上のビジネスサポートプランを契約しろ」というプラットフォーム側の制約です。しかし、実は有料サポートプランを契約することなく、無料プランのままCLIから直接申請を完遂できる代替ルートが存在します。
課題:サポートAPIに立ちふさがる課金の壁
AWSの汎用サポートAPI(aws support)を利用してケースを作成する権限は、有料のサポートプラン(Business以上)にのみ付与されています。
マネジメントコンソール(GUI)の専用フォームからの申請は無料プランでも可能ですが、インフラのコード化(IaC)やプロビジョニングの自動化を目指す場合、この「手動操作の介入」が大きなブロッカーとなります。
解決策:SESv2 APIの直接実行
結論から言うと、support APIではなく、sesv2 サービス固有のAPIを使用することで、サポートプランの制約を受けずに申請を飛ばすことが可能です。
使用するコマンドは aws sesv2 put-account-details です。
実行コマンド例
aws sesv2 put-account-details \
--production-access-enabled \
--mail-type TRANSACTIONAL \
--website-url [https://your-verified-domain.com](https://your-verified-domain.com) \
--use-case-description "This is for a personal mail-hub project.
It fetches emails from a legacy server via Lambda and forwards them
to a single verified Gmail address. Sending volume is minimal and
dependent on incoming mail volume." \
--contact-language EN
なぜこの方法で通るのか
aws support create-case は「サポートセンターへの汎用的な問い合わせ」という枠組みであり、API利用自体が有料プランの特典とされています。
一方、aws sesv2 put-account-details は 「SESというサービス自体の設定(アカウント属性)の更新」 を行うコマンドです。このAPIは support APIの課金体系とは独立しているため、無料サポートプランのままでも「プロダクション移行申請」という属性変更を直接SESサービス側へリクエストできるのです。
導入のメリット
- 完全無料: 手続きのためにサポートプランをアップグレードする必要がありません。
- 自動化の継続: サンドボックス解除というクリティカルな手順を、デプロイメントスクリプトの中にコードとして組み込めます。
- 再現性: 手動操作による入力ミスを防ぎ、一貫したインフラ構築が可能です。
まとめ
AWSのCLIにおいて「CUIでは有料だがGUIでは無料」というケースに遭遇した場合、汎用的な support APIではなく、各サービス固有の管理API(この場合は sesv2)を探すことで、設計思想(CUI完結)を貫きつつコストを抑えることが可能です。