AWSの請求額を見て驚いた経験はありませんか?クラウドの「使った分だけ」は、裏を返せば「気づかないうちに使いすぎる」リスクと表裏一体です。この記事では、実際にAWS月額料金を30%以上削減できた具体的なテクニックを紹介します。
1. 使われていないリソースの棚卸し
まず最初にやるべきは、使われていないリソースの洗い出しです。AWS Cost Explorerで「サービス別」の内訳を確認し、Trusted Advisorのコスト最適化カテゴリをチェックします。
# 未アタッチのEBSボリュームを検索
aws ec2 describe-volumes \
--filters Name=status,Values=available \
--query 'Volumes[*].{ID:VolumeId,Size:Size,Created:CreateTime}' \
--output table
# 未使用のElastic IPを検索
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].{IP:PublicIp,AllocId:AllocationId}' \
--output table
# 14日以上停止しているEC2インスタンス
aws ec2 describe-instances \
--filters "Name=instance-state-name,Values=stopped" \
--query 'Reservations[*].Instances[*].{ID:InstanceId,Type:InstanceType,Stopped:StateTransitionReason}'2. EC2のRight Sizing
CloudWatchのCPU/メモリ使用率を1ヶ月分確認し、常に20%以下のインスタンスはサイズダウンの候補です。AWS Compute Optimizerを使えば、使用パターンに基づいた推奨インスタンスタイプを提示してくれます。
3. リザーブドインスタンス / Savings Plans
1年以上稼働し続けるEC2やRDSは、リザーブドインスタンスで最大40%、Savings Plansで最大30%のコスト削減が可能です。全額前払いが最も安くなりますが、キャッシュフローとの相談になります。
4. S3ストレージクラスの最適化
アクセス頻度に応じてストレージクラスを使い分けます。S3 Intelligent-Tieringを使えば自動的に最適なクラスに移動してくれますが、ライフサイクルポリシーを手動で設定した方がコスト予測がしやすいです。
resource "aws_s3_bucket_lifecycle_configuration" "logs" {
bucket = aws_s3_bucket.logs.id
rule {
id = "log-lifecycle"
status = "Enabled"
transition {
days = 30
storage_class = "STANDARD_IA"
}
transition {
days = 90
storage_class = "GLACIER"
}
expiration {
days = 365
}
}
}5. NATゲートウェイのデータ転送料
意外と高額になるのがNATゲートウェイのデータ転送料です。VPCエンドポイント(Gateway型はS3/DynamoDB向けで無料)を設定するだけで、NATゲートウェイを経由するトラフィックを大幅に削減できます。
resource "aws_vpc_endpoint" "s3" {
vpc_id = aws_vpc.main.id
service_name = "com.amazonaws.ap-northeast-1.s3"
vpc_endpoint_type = "Gateway"
route_table_ids = [aws_route_table.private.id]
}6. 開発環境の自動停止
開発・検証環境を24時間365日稼働させる必要はありません。EventBridge + Lambda で平日の業務時間外に自動停止する仕組みを作れば、約65%のコスト削減になります(24時間 → 8時間稼働)。
7. コスト異常検知の設定
AWS Cost Anomaly Detectionを有効にしておくと、通常と異なるコストパターンを検知してアラートを送ってくれます。設定ミスによる意図しないリソース作成を早期発見できるため、全AWSアカウントで有効にすべきです。
まとめ
コスト最適化は一度やって終わりではなく、毎月の請求書をレビューする習慣が大切です。この記事で紹介した7つのポイントを順番に実施するだけでも、月額料金の20〜30%削減は十分に実現可能です。まずは未使用リソースの棚卸しから始めましょう。

コメント