ビッグデータのクラウドストレージに関する5点
- ビッグデータとは、様々なプログラムから出される、通常のコンピューターでは保存できないほどの大きなデータセットを指す。
- クラウドコンピューティングとは、ビッグデータをクラウド上で処理することを指す。
- クラウドとは、大規模なデータセットを保存・照会できる高性能なサーバーの集合体を指す。
- 多くの企業が、自社のビッグデータを扱うために、従来のストレージシステムからクラウドストレージサービスに移行している
- Integrate.ioだと、ETL機能とデータ管理により、従来のストレージシステムからクラウドソリューションやクラウドストレージプロバイダーへの大量データの移行が簡単になる。
21世紀は、データがあらゆるビジネスの中心です。そのため、企業が貴重なビジネスデータをどのように扱い、最適化し、自動化するかがますます重要になってきています。そこで、多くの企業がビッグデータの保管を簡単にすべく、クラウドベースのデータセンターへの移行を進めています。
ビジネスデータのクラウドへの移行には、さまざまな利点がありますが、多くの場合、クラウドストレージサービスプロバイダーを探す際に価格が懸念されます。残念ながら、クラウド・コンピューティング・サービスの正確なコスト計算は、複雑な価格設定モデルや、完全なクラウドデータ管理に必要なリソース数の予測のための総合的な課題により、困難であることが証明されています。
ビッグデータのロギングに関連するクラウドストレージのコストを検討する場合、ビッグデータをクラウド上に保存する方法は、基本的に「データベースへの直接保存」、「ログファイルのアップロード」、「S3/CloudFront経由のロギング」の3つがあります。
全てを考慮すると、クラウドストレージのコストの正確な把握は困難ですが、本記事では、クラウドストレージのコストを少しでも理解するために、ビッグデータをクラウドに保存することで実際にどれだけのコストがかかるかをご紹介します。
ビッグデータ保存の価格を仮定してみよう
まず、ストレージの価格設定モデルの変数を設定し、ユースケースをいくつか概説しましょう。もちろん、これらの変数は世の中のすべての状況を反映しているわけではありませんが、この練習の目的として、簡単な仮定をいくつか設定したいと思います。
以下はその内容です:
- AWS(Amazon Web Services)、米国東部
- 24時間365日利用、1年予約インスタンス、高い使用率
- 1日10億行をログ、1行あたり平均1,000バイト、合計1日あたり1テラバイト、又は1ヶ月あたり30テラバイト。
- 保存費用のみ(加工費は含まず)
- 価格はAWS Pricing Calculatorで算出(単位はすべてUSD)
繰り返しますが、これらはあくまで目安です。あなたのニーズはここに挙げたものとは異なるかもしれませんし、パフォーマンスを調整することで必要なハードウェアが変わるかもしれませんし、Amazonはいつでも価格の変更ができます。
データベースへの直接保存
AWSには、クラウド上でのリレーショナルデータベース実行のために、RDS(Relational Database Service)とEC2(Elastic Compute Cloud)上のカスタムインストールという2つのオプションがありますが、どちらの場合も、ログを収集、生成、保存するためのログサーバーが必要です。
ログサーバー
ログサーバーは、1日あたり10億件、平均して1秒あたりおよそ11,000件のログの処理能力が必要です。社内ソリューションを使う企業もありますが、開発や維持に十分な時間とコストがかかるということで、Fluentdのような市販のロガーを使って、プラグインでデータベースと統合することにしましょう。
Intel Xeon E5-2686 v4(Broadwell)プロセッサー(4 vCPU)と30.5ギガバイトのRAMを搭載したAmazon EC2 r4largeインスタンス4台で、ピーク時を含むロギングとデータベースへのデータ書き込みを十分に処理できるはずです。
1年間予約したインスタンスの時間単価は0.168ドルです。4台のインスタンスを使用する場合、( $0.168 x 24時間 x 365日) x 4台、つまり1年間でおよそ5,900ドルとなります。
ただし、追加料金がいくつか発生する可能性があります:
- アメリカ東部から他のAWSリージョンに30テラバイトのデータを転送する場合、1ギガバイトあたり0.02ドル、つまり、1テラバイトあたり $0.02 x 1000 = 20ドルとなり、$20 x 30 = 600ドルになります。
- インスタンス間のバランスを取るために、エラスティックロードバランサが要ります。Amazonによると、ロードバランサは1時間あたり約0.0225ドル、フルタイムで稼働させた場合は1ヶ月あたり約16ドルです。
(まとめ)
Amazon EC2 r4.xlargeインスタンスx4台:$5,900
データ転送:$7,200
エラスティックロードバランサ:$200
合計 年間13,300ドル
内部cta形式
Amazon RDS
まず、Amazon RDSに関する注意点ですが、RDSのデータベースは6416テラバイトのストレージ上限があります。Amazon RDSをシャーディングに利用するオプションもありますが(詳細はこちらのリンクを参照)、本記事では、より適切な他のオプションに焦点を当てます。
EC2(エラスティック・コンピュート・クラウド)
EC2上でのMySQLの実行には、多くの容量が必要ですが、ストレージを最適化したd2.8xlargeインスタンスで、合計48テラバイトのストレージを確保すれば十分です。毎月30テラバイトのデータが生成されるので、1ヶ月半ごとにもう1台、年間を通して合計8台のインスタンスが必要になりますが、オンデマンドでスケーリングし続けるよりも、1年分あらかじめ予約しておく方が安上がりです。d2.8xlargeインスタンス1台のコストは、1時間あたり約3.216ドル、1ヶ月あたり約2,300ドル、年間約28,000ドル、8台分でおよそ225,000ドルとなります。
残念ながら、インスタンスを停止すると、すべてのデータが失われてしまうので(ただし、仮想マシンを再起動するとデータは残ります)、データを確実に残すには、決して安くはないですが、Amazon EBSプロビジョニングのIOPS SSDボリュームが必要です。
より手頃な方法としては、1ヶ月分の生データと古いデータのアグリゲーションのみを残し、残りはS3にアーカイブする方法があります。ログファイルは1:4の比率でgzip圧縮できるので、1ヶ月のローカルストレージとしては7.5テラバイトもあれば十分です。S3では、それが月170ドル程度、年間13,700ドルほどになります(最初の7.5テラバイトが12カ月、次の7.5テラバイトが11カ月など)。d2.8xlargeのインスタンスは1つしか必要ないですが、これは前述のように年間28,000ドルかかります。
これらのコストを合わせると、ビッグデータを直接データベースに保存した場合、年間55,000ドルかかると試算されます。
(まとめ)
ログサーバー:$13,300
S3ストレージ:$13,700
d2.8xlarge インスタンス:$28,000
合計 :(年間)$55,000
ログファイルのアップロード
この場合、データは大きなログファイルとして保存され、S3、DynamoDB、Redshiftに継続的にアップロードされます。
ログサーバー
ログサーバーの要件は、データベースではなく、ファイルとしてデータを保存することを除いて、前の方法と同じです。上記の価格を参照してください。
S3
月7.5テラバイトのS3標準ストレージは、1ギガバイトあたり0.023ドルです。先に計算したように、月々約170ドル、年間約13,700ドルです。これにログサーバーの運用コストが加わり、合計で年間約30,000ドルになります。(透過画像ファイルの保存コストは、各ファイルが68バイトしかないため、わずかなものになります)。
DynamoDB
DynamoDBのデータストレージの料金は、1ギガバイトあたり月額0.25ドルです。仮にDynamoDBで月30テラバイトを保存する場合、そのコストはおよそ月7,700ドル、年間60万ドル強となります。ログサーバーのコストと合わせると、年間613,300ドルになります。
Redshift
360テラバイトを1年間利用するには、ds2.8xlargeのインスタンスが23台(1台あたり16TBの容量が必要)必要になり、1年間予約して前払いすると、約79万ドルになります。
より費用対効果の高い方法としては、2台のds2.8xlargeインスタンスを使って1ヶ月分のデータのみを保存し、残りはAmazon S3にアーカイブする方法があります。費用は、1年契約で前払いの約69,000ドルと、上記で計算したS3の費用になります。
ログファイルのアップロードにかかる費用は、合計で年間96,000ドルとなります。
(まとめ)
ログサーバー $13,300
S3ストレージ $13.700
d2.8xlargeインスタンス $69,000
合計 $96,000/年
S3/CloudFront のログ取得
この方法は、S3ディレクトリから画像へのHTTPリクエストによってイベントを追跡し、自動的にログを生成します。この方法では、追加のログサーバーは必要なく、ストレージも月あたりわずか7.5テラバイトで済みます。以前計算したように、S3上の1カ月あたり7.5テラバイトのストレージは、年間およそ13,700ドルです。
CloudFrontも使用しないと、クエリ文字列によるロギングなどの機能が使えません。CloudFrontのGETリクエストは、1万リクエストあたり0.0075ドルです(価格参照)。10億回のHTTPリクエストの場合、1日あたり750ドル、年間27万ドル程度になります。
従来はS3へのリクエストにも課金されていましたが、キャッシュヘッダーを設定すれば、その課金も最小限に抑えられます。透過画像にアクセスすると、68×10億バイトのデータ転送が発生し、1日あたり68ギガバイト、1カ月あたり2040ギガバイトになります。S3からの外部データ転送は1ギガバイトあたり0.02ドルで、1カ月あたり約40ドル、年間では約500ドルとなります。
これらのコストを足すと、S3/CloudFront loggingでビッグデータを保存する場合の総額は年間284,200ドルとなります。
(まとめ)
S3ストレージ $13,700
CloudFrontリクエスト $270,000
CloudFrontデータ転送 $500
合計 $284,000 /年
ビッグデータの保存:結論
備忘録として、これまでご紹介した方法の総費用をご紹介します。
- データベースへの直接保存:$55,000 /年
- S3へのログファイルのアップロード:$30,000 /年
- DynamoDbへのログファイルのアップロード: $613,000 / 年
- Redshiftへのログファイルのアップロード:$96,000 /年
- S3/Cloudfront ロギング:$284,000 / 年
この分析から、ビッグデータをクラウドに保存する最も安価な方法は、S3へのログファイルのアップロードであることがわかります。一方、一部の仮定に反して、S3/CloudFrontのロギングはかなり高価です。
もちろん、これはビッグデータをクラウドに保存する場合のコスト算出方法の一例に過ぎず、ビジネスのニーズや目的によって異なる可能性があります。何より重要なのは、実装や保守のためのDBAやデベロッパーのコストは含まれず、データ処理のためのコストも含まれないことから、この計算式には大きな未知数があるということです。
それでも、この概要が、クラウドにデータを保存する最も安価な方法を見積もるための、ちゃんとした方法を考えるヒントになったなら幸いです。
ビッグデータの保存に関してIntegrate.ioができること
Integrate.ioは、ETL(抽出、変換、格納)およびデータ統合専用のソリューションです。自動化によってデータソースを簡単に接続し、データパイプラインの合理化と最適化を可能にします。プラットフォームには、Shopify、BigCommerce、Magento などの一般的なeコマースソリューションを含む140 以上のビルド済みコネクタと統合が含まれています。
視覚的なドラッグ&ドロップ・インターフェースにより、技術的なバックグラウンドを持たない初心者でも、丈夫で生産性の高いデータワークフローの構築を始めることができます。Integrate.ioには、CDC(変更データ取得)機能など、非常に価値の高い機能が搭載されており、前回の統合作業以降に変更されたデータレコードは自動的に検出することができます。さらには、リバース ETL も搭載されており、集中管理されたデータウェアハウスからサードパーティの専門システムに簡単に情報を転送することができます。
Integrate.ioは、eコマース・SaaS・メディア/エンタメ・ヘルスケアなど、どんなビジネスにも最適なソリューションを提供しています。
ビジネスのニーズや目的についてのご相談や、14日間無料トライアルのお申し込みはこちらのリンクよりリクエストをお願い致します。後ほど弊社担当者よりご連絡させていただきます。