コンテンツへスキップ
HexaTransfer
ブログへ戻る
クラウドとストレージ

クラウドストレージ Cost Optimization: Save Up to 70%

クラウドストレージコストを削減する実証済みの最適化戦略。ストレージクラスの選択、ライフサイクルポリシー、コストモニタリング技術を解説します。

クラウドストレージの請求を50〜70%削減する方法は、5つのステップを順番に実行することです。S3 Standard(1GB当たり0.023ドル)からS3 Glacier Instant(0.004ドル)またはBackblaze B2(0.006ドル)へウォームデータを移動させる、ユーザー向けダウンロードをCloudflare R2(Egress無料)に切り替えてEgress費用を撤廃する、コールドデータをGlacier Deep Archive(0.00099ドル)にライフサイクル移行する、孤立したマルチパートアップロードと未完成のスナップショットを削除する、そしてCloudWatchまたはAzure Cost Managementのアラートでチームごとの予算を施行する。S3 Standardで月20万円かかっていた100TBのワークロードは、Glacier Instantで6万円に、Deep Archiveで9,000円になります。70%という数字はマーケティングではなく、単純な計算の結果です。

削減の前に支出をマッピングする

測定なしの最適化は推測に過ぎません。何かを変える前に、ストレージのインベントリを生成してください。

aws s3api list-buckets --query 'Buckets[].Name' --output text | \
  xargs -I{} aws s3 ls s3://{} --recursive --summarize

さらに有効なのはS3 Storage LensまたはAzure Cost ManagementのStorage Analyzerを実行することです。バケットごとのオブジェクト数・合計バイト数・平均オブジェクトサイズ・ストレージクラス別の分布が把握できます。80/20の法則はほぼ常に成り立ちます。1〜2つのバケットが支出の80%を占めており、そこが最適化の恩恵を受ける場所です。

ownerenvprojectlifecycle-policyですべてのバケットにタグを付け、コストレポートが実際にアクションを取れる担当者に紐づくようにしてください。

アクセスパターンに合わせた適切なストレージクラスを選ぶ

一律の価格ではすべてのワークロードに対応できないため、ストレージクラスが存在します。大まかな分類:

  • ホット(毎日アクセス):S3 Standard・Azure Hot・GCS Standard。低レイテンシに対するプレミアム。
  • ウォーム(月1回程度のアクセス):S3 Standard-IA・Azure Cool・GCS Nearline。40〜60%安価。
  • コールド(四半期ごとのアクセス):S3 Glacier Instant・Azure Archive・GCS Coldline。Standardより80%安価。
  • アーカイブ(年1回またはそれ以下):Glacier Flexible / Deep Archive。95%安価。

間違ったクラスにファイルを置くと二重のコストが発生します。プレミアムクラスで過剰な費用を払うか、コールドファイルに触れるたびに取り出し料金を払うかです。Glacier Deep Archiveは取り出し時にGB当たり0.02ドルのリクエスト料金が発生し、1TBのデータセットを一度引き出すだけでストレージ節約分を超えるコストがかかります。

新しいバケットの安全なデフォルト設定:S3 Intelligent-Tiering。利用状況に基づいてオブジェクトをアクセス層間で自動移動します。1,000オブジェクトあたり0.025セントのモニタリング料金は、アクセスパターンが予測しにくいワークロードには十分見合う投資です。

コストの多くを自動処理するライフサイクルポリシー

典型的なライフサイクルポリシー1つで支出の60%が削減されます。

{
  "Rules": [{
    "ID": "age-out",
    "Status": "Enabled",
    "Transitions": [
      { "Days": 30,  "StorageClass": "STANDARD_IA" },
      { "Days": 90,  "StorageClass": "GLACIER_IR" },
      { "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
    ],
    "Expiration": { "Days": 2555 },
    "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 }
  }]
}

しきい値は実際のアクセス減衰に合わせてください。トランザクションログには14日ホット・30日ウォーム・90日コールドが機能します。メディアアーカイブには最初の移行を90日以降にできます。AbortIncompleteMultipartUploadの行は重要です。破棄されたマルチパートセッションは、誰も把握していないまま数百GBの課金対象ストレージを蓄積することがあります。

Egressコストの排除

Egressはクラウドストレージの請求の30〜50%を占めることが多く、最も攻略しやすい単一の項目です。選択肢:

  • Cloudflare R2:Egress無料、S3互換、ストレージ0.015ドル/GB。ユーザー向けCDNバックダウンロードには最も合理的な選択肢。
  • Backblaze B2 + Cloudflare Bandwidth Alliance:Cloudflareへのエグレスが無料、その後はCDNがユーザーに配信。
  • Wasabi:月間保存量の1倍まではEgress無料。
  • AWS S3 + CloudFront:CloudFrontのEgress(0.085ドル/GB)はS3からの直接Egressより安価で、同一リージョン内のS3とCloudFront間はゼロ。

社内ワークロードには、S3用のVPC Gateway Endpointを有効にしてください。NATゲートウェイの処理料金(注意しないとストレージ料金を超えることがあります)が排除されます。クロスリージョンレプリケーションは、必要なリージョンを明示し、クロスリージョンEgressを0.02ドル/GB以下に抑えるよう転送量を最小化してください。

圧縮と重複排除

保存の料金を払う前に、保存量を削減してください。

  • テキストとログ:zstd圧縮は典型的に8:1の比率を達成します。10TBのログは1.25TBになります。
  • 画像:PNGをWebPまたはAVIFに再エンコードして、ユーザー向けアセットを60〜80%削減。
  • 動画:H.264に対してH.265またはAV1で、同等品質のファイルを30〜50%小型化。
  • バックアップ:resticとBorgはスナップショット間で重複排除します。日次バックアップ付きの1TB作業セットは30日保持で合計約1.2TBに圧縮されます。

圧縮はバイトのためにCPUを使います。ストレージコストが0.023ドル/GB/月に対し、EC2は約0.05ドル/時間であることを考えると、圧縮はほぼ常に数日以内に元が取れます。

忘れていたものを削除する

長期稼働しているアカウントには、監査しないと見えない無駄が蓄積します。

  • 孤立したEBSスナップショット:ソースボリュームより古いスナップショット、またはタグのない90日以上前のもの
  • 古いAMI:デプロイのたびに新しいAMIが発行されますが、古いものは登録解除するまで課金が続きます
  • ライフサイクルのないバージョニングバケット:すべてのオブジェクトバージョンがストレージとして計算され、バージョニングはデフォルトで有効です
  • ログの保持期間:CloudWatch LogsはデフォルトでKfr削除なしであり、何年分もの課金対象ログが溜まります
  • 放置されたバケット:退職した社員のプロジェクト、数年前の移行時のテスト環境

AWS Trusted AdvisorまたはKfr本番アカウントでaws-nukeを使う四半期スイープで候補を特定します。本番環境では、削除前に所有者に2週間の廃止通知を送り、削除後30日間は回復用スナップショットを保持してください。

リザーブドキャパシティとSavings Plans

AWSとAzureはともに予測可能なストレージに対して前払い割引を提供しています。AWS S3のストレージクラスにはリザベーションがありませんが、EBSとEFSはCompute Savings Plans経由でリザーブできます。AzureはBlob Storageのリザーブドキャパシティを提供しており、100TBを1年コミットすると約17%の節約になります。

リザベーションは利用量を自信を持って予測できる場合のみ効果があります。まだ最適化中であれば、先にそちらを完了してください。非効率なストレージにリザーブキャパシティを設定するのは、無駄のために前払いしているだけです。

支出のモニタリングとアラート

月次のコストレビューでは遅すぎます。日次のシグナルが必要です。設定すべきもの:

  • 日次異常アラート:AWS Cost Anomaly DetectionまたはAzure Anomaly Detection経由。7日間の平均からいずれかのサービスの日次支出が20%以上乖離した場合にLINEやSlackへ通知。
  • バケットごとの予算:予測月次支出の80%・100%・120%でハードアラームを設定。
  • Egressスパイクアラート:1時間でいずれかのバケットのGETトラフィックがベースラインの2倍を超えた場合、URLの漏洩またはスクレイパーの兆候。
  • 成長予測:ストレージの成長を6か月先まで外挿し、現在の推移で月1,000万円を超えるバケットにフラグを立てる。

ダッシュボードは良いですが、アラートはダッシュボードより優れています。誰も請求書が届くまでダッシュボードを確認しません。

ガバナンス:コストをKPIにする

継続しないコスト最適化は元に戻ります。節約を定着させる3つのプラクティス:

  • FinOpsレビュー:チームごとに月1回30分の会議を開催し、上位3つのコスト要因と1つのアクションアイテムを取り上げる。
  • チャージバックまたはショーバック:クラウドコストをプロダクトラインに配分する。新しい分析機能を出荷するチームはS3のPUT料金を実感する。
  • コスト見積もりを必須とするPRテンプレート:Terraform PRの新しいインフラには月次差分の見積もり行を含める(Infracostがここで機能します)。

HexaTransferは暗号文のみを保存する(プレビュー生成なし・サーバーサイドの復号なし)ことでコストを低く保ち、Egress無料のオブジェクトストレージを活用しています。hexatransfer.com で試せます — 無料、アカウント不要、最大10GB。

全体を組み合わせる

100TBのワークロードに向けた現実的な6か月計画:1週目はすべてのバケットのインベントリ作成とタグ付け、2〜3週目は30/90/365日移行のライフサイクルポリシー適用、2か月目はユーザー向けダウンロードをR2に移行してEgressを排除、3か月目はzstdでログを圧縮しメディアを再エンコード、4か月目は孤立したスナップショット・古いAMI・放置バケットを掃除、5か月目はFinOpsレビューと日次コストアラートを開始、6か月目は支出が安定したらリザーブキャパシティを評価。このプランを完遂したチームは通常、大規模な再設計なしに50〜70%の節約域に着地します。英雄的な努力ではなく、小さくて明確に絞られた手順に対する規律の積み重ねの結果です。

エンドツーエンド暗号化で大容量ファイルを安全に送信

エンドツーエンド暗号化で最大10GBのファイルを無料で転送。アカウント不要。ファイルはアップロード前にブラウザで暗号化されるため、他の誰にも読まれません。

ファイルを送信