AWSアカウント作成と無料枠の確認+CLIで請求アラート設定
アドベントカレンダー2日目は、アカウントを作ったら即やっておくべき「請求アラート設定」まで踏み込みます。無料枠で学ぶなら、予算超過の通知は保険として必須。GUIでも設定できますが、今回はAWS CLIで自動化できる手順を紹介します。
✅ この記事でやること
- AWSアカウント作成〜Free Tier確認(概要)
- 無料枠の落とし穴(2日目のポイント)
- AWS CLIでBudgetsを作成して、$1超過でメール通知までを実装
✅ 前提(準備)
-
AWS CLIがセットアップ済み(
aws configureで認証済み) -
IAM権限:Budgets操作が可能(
budgets:*、ce:*) - 通知先メールアドレスが受信可能(検証メールが届きます)
1. アカウント作成と無料枠(要点だけ)
-
AWSのアカウント作成
→ クレカ登録&電話認証、サポートは「ベーシック」 -
Free Tierの種類
- 12か月無料枠:EC2/RDSなどの「時間」や「サイズ」制限(例:EC2 t2.micro/t3.micro合計750時間/月、RDS 750時間/月)
- 常時無料枠:Lambda(100万リクエスト/月)、S3(5GB)など
-
落とし穴
- EC2を停止してもEBSが課金される → 不要なら削除
- Elastic IPは未アタッチや停止中で課金されることがある
- CloudWatchのカスタムメトリクスは有料
- リージョンを跨ぐと想定外の料金が出ることがある
2. CLIで請求アラート(AWS Budgets)を作る
Budgetsはアカウント単位で「月予算」を定義し、しきい値を超えたら通知します。今回は月額$1の予算で、実績が80%($0.8)を超えたらメール通知します。
1. アカウントIDを取得
aws sts get-caller-identity --query Account --output text
2. 予算定義のJSONを用意
budget.jsonを作成して、予算・通知・宛先をまとめて定義します。
{
"Budget": {
"BudgetName": "Monthly-1USD-Budget",
"BudgetLimit": {
"Amount": 1,
"Unit": "USD"
},
"CostFilters": {},
"CostTypes": {
"IncludeTax": true,
"IncludeSubscription": true,
"UseBlended": false,
"IncludeRefund": true,
"IncludeCredit": true,
"IncludeUpfront": true,
"IncludeRecurring": true,
"IncludeOtherSubscription": true,
"IncludeSupport": true,
"IncludeDiscount": true
},
"TimeUnit": "MONTHLY",
"TimePeriod": {
"Start": "2025-01-01T00:00:00Z",
"End": "2087-12-31T23:59:59Z"
},
"BudgetType": "COST"
},
"NotificationsWithSubscribers": [
{
"Notification": {
"NotificationType": "ACTUAL",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 80,
"ThresholdType": "PERCENTAGE"
},
"Subscribers": [
{
"SubscriptionType": "EMAIL",
"Address": "you@example.com"
}
]
}
]
}
3. Budgetsを作成
ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
aws budgets create-budget --account-id "${ACCOUNT_ID}" --budget file://budget.json
4. 作成状態の確認
aws budgets describe-budgets --account-id "${ACCOUNT_ID}" --query 'Budgets[?BudgetName==`Monthly-1USD-Budget`]'
5. 削除(不要になったら)
aws budgets delete-budget --account-id "${ACCOUNT_ID}" --budget-name "Monthly-1USD-Budget"
✅ 今日のコスト
$0.00(アカウント作成のみ)
✅ 運用のコツ(無料枠を守る)
- 月初にEC2を起動しっぱなしにしない
- Cost Explorerで定期チェック
- 未使用リソースの削除(EBS、EIP、ALBなど)
✅ トラブルシュート
-
AccessDeniedException→ Budgets権限不足 - メールが届かない → 迷惑メール/フィルタ確認
- Costデータ反映遅延 → アカウント作成直後は最大48時間遅延
✅ 次回予告(3日目)
「IAMで安全な権限管理を始める」
- ルートユーザーは使わない
- 管理者ロール+MFA
- 最小権限のベストプラクティス
✅ まとめ
- AWSアカウント作成は簡単だが、無料枠の理解が重要
- 請求アラート設定で課金リスクを回避
- CLIでBudgetsを自動化すれば、GUIより速く再利用可能