🕶️

クラウドストレージにおけるEgress料金の影響と代替案を整理する

2024/05/29に公開

はじめに

nextcloudなどのOSSでクラウドストレージサービスをパブリッククラウドのストレージを利用して構築する際、
Egress料金は無視できないコストとなり得ます。
場合によっては、サービス全体の収益性や競争力を左右する重要な問題となる可能性もあります。
本記事では、クラウドストレージをセルフホスト構築する際のEgress料金の影響についてまとめます。

nextcloud

https://nextcloud.com/
以下に構築の記事も作成しました
https://zenn.dev/persona/articles/a2872e6adb2022

Egress料金とは何か?

Egress料金とは、クラウドストレージサービス上で保存されているデータを、
クラウド外部へ転送する際に発生する料金です。具体的には、以下の操作時に発生します。

  • ダウンロード
    ユーザーがクラウドストレージからファイルをダウンロードする場合
  • APIアクセス
    アプリケーションがクラウドストレージ上のデータにアクセスする場合
  • データ移行
    クラウドストレージ間でデータを移行する場合
  • データ分析
    クラウドストレージ上のデータを外部の分析ツールで分析する場合

これらの操作によって、クラウドプロバイダーはネットワーク帯域幅やストレージリソースを消費するため、
その対価としてEgress料金が課金されます。
クラウドストレージに焦点を当てると、主にダウンロード転送量が高コストになりがちです。

パブリッククラウド転送料目安

クラウドプロバイダ Egress転送(下り) Ingress転送(上り)
GCP $0.12〜0.14/GB 無料
AWS $0.084〜$0.114/GB 無料
Azure $0.06〜$0.11/GB 無料

※各社、転送量によってEgress料金が段階的に変動します

Egress料金がボトルネックとなる理由

主に以下の3つが挙げられます。

1.予期せぬ高額な請求

Egress料金は、データ転送量に応じて課金されるため、
利用状況によっては、予期せぬ高額な請求が発生する可能性があります。
特に、以下のようなケースでは、Egress料金が急増するリスクが高くなります。

  • 大量のデータをダウンロードする必要がある場合
    顧客向けの大規模なデータセットを提供する場合、
    クラウドストレージで大量・多量のファイルをダウンロードする場合など
  • 外部サービスとの連携が多い場合
    APIを介して他のクラウドサービスやアプリケーションと連携する場合など
  • データ分析を頻繁に行う場合
    ビッグデータ分析や機械学習のためにクラウドストレージ上のデータを活用する場合など

予期せぬ高額な請求は、サービスの収益性を悪化させ、
場合によっては事業継続を脅かす可能性すらあります。

2.サービス利用の制限

Egress料金を抑制するために、サービス利用を制限してしまうケースがあります。

  • ダウンロード速度の制限
    ユーザーがファイルをダウンロードする速度を制限することで、データ転送量を抑制する
  • APIアクセス制限
    アプリケーションがクラウドストレージにアクセスできる回数を制限することで、データ転送量を抑制する
  • データ分析機能の制限
    クラウドストレージ上のデータを分析できる機能を制限することで、データ転送量を抑制する

このような制限は、ユーザーにとって利便性を低下させ、サービスの価値を損なう可能性があります。

3.マルチクラウド戦略の阻害

近年、企業は複数のクラウドサービスを組み合わせるマルチクラウド戦略を採用するケースが増えています。
しかし、Egress料金の存在は、マルチクラウド戦略を阻害する要因となる可能性があります。
異なるクラウド間でデータを移行する場合、高額なEgress料金が発生する可能性があるため、
データ連携が困難になるだけでなく、コスト増にもつながります。

Egress料金によるボトルネックを回避するための対策

Egress料金によるボトルネックを回避するためには、以下の対策が有効だと想定します。

データ転送量の削減

データ転送量を削減することで、Egress料金を抑えることができます。

  • 圧縮
    転送するデータを圧縮することで、データ量を削減することができます。
  • キャッシュ
    頻繁にアクセスされるデータをキャッシュすることで、転送回数を減らすことができます。
  • コンテンツデリバリーネットワーク (CDN) の利用
    静的コンテンツをCDNに配信することで、ユーザーに近い拠点からコンテンツを配信することができ、
    転送距離を短縮することができます。

ストレージクラスの最適化

ストレージクラスによって、Egress料金が異なる場合があります。
例えば、頻繁にアクセスされるデータには高性能なストレージクラス、
アクセス頻度の低いデータには低コストなストレージクラスを選択することで、
Egress料金を最適化することができます。

代替ソリューションの検討

Egress料金が無料または低コストな代替ソリューションを検討するのも有効です。
私はEgress無料となる既存のストレージサービスを利用するのが
最適解ではないかなと個人的には思っています。

MinIO

オープンソースのオブジェクトストレージです。
https://min.io/

Cloudflare R2

Egress無料を謳うクラウドストレージです。
https://www.cloudflare.com/ja-jp/developer-platform/r2/

参考比較

比較ツールが提供されているので試してみるとわかりやすいです。
Egress量を変動させてもR2の料金は一定です。

wasabi

ストレージ利用領域サイズと同じ容量分のEgress転送量が無料です。
(名前はわさびですが確かアメリカのオブジェクトストレージサービス事業者です)
https://wasabi.com/ja/

VPSのオブジェクトストレージ

容量単位あたりの利用料金は少し高めですが、Egress無料です。
必要なサイズ分だけストレージを追加できるので容量・コストの最適化は計りやすいかもしれません。
https://www.conoha.jp/objectstorage/

まとめ

Egress料金は、クラウドストレージサービスにとって重要なコスト要素であり、
場合によってはサービス全体の収益性や競争力を左右する可能性があります。

Egress料金によるボトルネックを回避するためには、
データ転送量の削減、ストレージクラスの最適化、代替ソリューションの検討など、
様々な対策を講じることが重要です。

これらの対策を適切に実施することで、Egress料金を抑制し、
コスト効率の高いクラウドストレージサービスを実現することができます。

合同会社カメレオンミーム Tech Blog

Discussion