1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

70%コスト削減!クラウドアーキテクチャの段階的最適化実録

Posted at

はじめに

R7年5月12日からプログラミングを始め、AWSでWebアプリを公開運用している私が、段階的なアーキテクチャの見直しで月額費用を約70%削減した実例を紹介します。

結論から言うと:約100〜200ドル/月 → 約70ドル/月 まで削減できました。

運用しているアプリケーション

現在、以下の4つのアプリをLightsail Containerで公開中:

  • Chatbot: ChatGPT活用の車検証OCR処理システム
  • emergency: Flask製避難所マッピングアプリ
  • Bikefinder: バイク検索アプリ
  • snowdeep: 機械学習による降雪量予測ツール

アーキテクチャ進化の3段階

【第1段階】初回構成:R53 + ACM + EC2 + RDS

Route 53 → ACM → EC2 (t3.micro) → RDS (db.t3.micro)
                  ↓
                 ALB

月額コスト: 約$80〜100

  • EC2 (t3.micro): $7〜10/月
  • RDS (db.t3.micro): $22〜30/月
  • ALB: $16〜20/月
  • EBS: $2〜5/月
  • データ転送料: 変動費
  • Route 53: $0.5/月

課題:

  • インフラ管理が複雑
  • RDS + ALB のコストが重い
  • 細かい料金が積み重なる
  • 直ぐにキャパオーバーになり動作が重くなる

【第2段階】次回構成:R53 + ACM + ECS + RDS

Route 53 → ACM → ALB → ECS (Fargate) → RDS (db.t3.micro)

月額コスト: 約$120〜180

  • ECS Fargate x4アプリ (0.25vCPU, 0.5GB): $10〜15/月 ×4アプリ=$40-60
  • RDS (db.t3.micro): $22〜30/月
  • ALB: $16〜20/月
  • データ転送料: 変動費
  • Route 53: $0.5/月

改善点:

  • EC2管理からの解放
  • コンテナ化による柔軟性向上

依然として残る課題:

  • RDS + ALB のコストが高い
  • 小規模アプリには過剰スペック
  • 料金予測が難しい
  • EC2構成よりもコスト高になる

【第3段階】現在構成:R53 + Lightsail Container

Route 53 → Lightsail Container (SSL + DB + 全部入り!)

月額コスト: $70(固定!)

  • Lightsail(1GBメモリ/2仮想CPU/4GB SSD/2TB転送): = $7/月
  • Container (Micro): $7/月 × 4アプリ = $28/月
  • Database(PostgreSQL/1GB/2vCPU/40GB SSD/100GB転送): $15/月
    • 0.25 vCPU
    • 1 GB RAM
    • MySQL込み
    • SSL証明書込み
    • 500GB転送/月込み
  • Route 53: $0.5/月

メリット:

  • 固定費で予算管理が超簡単
  • 1アプリ = 1コンテナで管理シンプル
  • SSL証明書、DBすべて込み
  • 転送量500GB/月で十分
  • デプロイが爆速

コスト比較表

項目 第1段階
(EC2+RDS)
第2段階
(ECS+RDS)
第3段階
(Lightsail)
月額費用 $80〜100 $120〜180 $70
管理複雑度
料金予測 容易
スケール性 手動 自動 自動
デプロイ速度 普通

デプロイフロー

現在の運用フローは超シンプル:

# 1. ローカルでDockerイメージをビルド
docker build -t my-app:latest .

# 2. Docker Hubにプッシュ
docker push username/my-app:latest

# 3. Lightsailで新しいデプロイメントを作成
aws lightsail create-container-service-deployment \
  --service-name chatbot \
  --containers file://containers.json \
  --public-endpoint file://public-endpoint.json

たったこれだけ! VPC、セキュリティグループ、ALB設定は一切不要です。

学んだこと

✅ 何が効果的だったか

  1. 必要十分なリソース選択

    • ポートフォリオ公開には最小プランで十分
    • 過剰なスペックは不要
  2. 固定費の威力

    • 予算管理が圧倒的に楽
    • データ転送料の心配不要
  3. サービスの統合

    • DB、SSL、転送量が全部セットは神
    • 複数サービスの組み合わせによる料金爆発を回避

⚠️ 注意点

  1. Lightsailの制約

    • 大規模トラフィックには不向き
    • メモリ上限4GBまで
    • 高度なネットワーク制御不可
  2. 移行タイミング
    以下の場合はECS/EC2への移行を検討:

    • 月間100万PV超え
    • コンテナメモリ4GB超が必要
    • マイクロサービス化(10+サービス)
    • 高度なネットワーク制御が必要

結論

「最初から完璧を目指さない」 ことが重要です。

私のように、段階的に構成を見直すことで:

  • ✅ 無駄なコストを削減
  • ✅ 運用負荷を軽減
  • ✅ アプリ開発に集中

53歳からのプログラミング学習でも、月額$28で4つのWebアプリを本番運用できています。

皆さんも、過剰スペックになっていないか、一度見直してみてはいかがでしょうか?

参考情報


📝 この記事が役立ったら、ぜひLGTMお願いします!
💬 質問やコメントもお待ちしています!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?