軽く検索するとS3のレイテンシは1桁ミリ秒、帯域はクライアント側のネットワークがボトルネックになるまで(つまり100Gbpsレベル)出るようですね。しかも99.999999999%(11ナイン)の耐久性という数字は生半可な努力で出せる数字ではありません。

なぜそんな高速なストレージがこんなに安いのかというのは一言では「経済の力」となりますがもう少し噛み砕くといくつかの要素があります。

S3はまき餌かも知れない

クラウドビジネス各社ではオンプレミスやコロケーションで顧客自身が契約している物理ハードウェアからサービスそのままで自社のクラウド上に引っ越して貰うこと、通称リフトアンドシフトが基本戦略の一つです。その中でデータ置き場を顧客が自社管理しているNASなどからS3に引っ越してもらうのは重要なマイルストーンです。S3に置いて貰ってそこから煮るなり焼くなりしてもらうのはクラウドを使い込んでもらうために重要な起点となりますのでAWSはそのアップロードの敷居を下げるためにSnowballなどのサービスを整備しています。またS3にアップロードしたペタバイトクラスのデータを外に改めて持ち出すのはとても大変なので、AWSにロックインさせる事を目的としてS3は原価以下の価格で提供してもサービス全体では投資が回収できるという目論見でいわゆる逆ザヤをやっているのではないかという説もあります(実際の所どうなっているかは知りません)。とにかくそれぐらいやってもおかしくない戦場がクラウドのオブジェクトストレージです。

帯域は金で買える

S3を運用する側が一体何台のコンピュータを使ってサービスを回しているかはまるでわかりません。ですがクラウド事業者の持つデータセンター内データ帯域は市販品とは別のライフサイクルで強化され続けており、EC2で借りれるマシンの中には100Gbpsのネットワーク帯域が出る物もあります。そしてハードディスクなどのストレージデバイスはクラウド事業者は途轍もない規模で買うのでいわゆる電気屋で一般人が買う価格と比べると圧倒的に安くなると言われています。ですので「とにかく大量のデータを保存したいから大量のマシンを調達して横に並べて負荷分散してするぞ!」と覚悟さえ決めればハードウェア的には25ドル/TB/月は実現可能な範囲にあると感じます。もちろんソフトウェアや運用のコストが掛かるのでゼロからクラウド事業を初めた人がお金だけでどうにか解決できるとは思いません。何にせよ、大量調達による仕入れ原価の削減は重要な要素です。そしてサービスのインタフェースとしてはオブジェクトストレージなのでサーバ台数を増加させることによる帯域幅の拡大は比較的自然に行うことができます、いわゆるシャーディングですね。HDDはヘッドシークに10ms程の時間が掛かってしまうのでそこが支配項にならざるを得ません、ですので可能な限り内部では並列化して帯域を稼いでいます。

レイテンシは知恵でしか買えない

S3は公開情報によると複数のAZ(例えば同じ地域の別の建物など)に常に複製し終わってから初めてクライアントに完了と返事をする仕組みでその完了レイテンシは10ms前後に有るようです。S3 Express One Zoneというストレージクラスを明示的に選ぶことで一時的な耐久性を少し犠牲にしてレイテンシを1桁ミリ秒へと短縮することができると書いてあるので、その辺りがアルゴリズム的な上限に引っかかる境界なのだと見受けられます。つまり顧客から受け取ったデータを複数のAZに複製し終わるのを待つかどうかで数msの遅延が有るか無いかが変わってくるので最初に書き込み依頼を受けたサーバはローカルに書くかすぐ隣のマシンにも送るか等をして自身が即クラッシュしてもデータが永続化された状況を作り出す事で高い耐久性を実現していると考えられます。

データを複製すると言ってもナイーブな方法では故障に弱いのでちゃんとアルゴリズム的に強く検証したものを使用する必要があり、形式手法を用いて確認を行ったという話などは探すといくらか出てきます。アルゴリズムやサービスのバリエーションなどの側面でもレイテンシを縮める工夫を凝らしているようです。

僕は以下のブログを流し読みしかしていませんが、実態は絶え間ないエンジニアリングの努力の果てにできているサービスであることをしみじみと感じました。

https://highscalability.com/behind-aws-s3s-massive-scale/

Behind AWS S3’s Massive Scale

This is a guest article by Stanislav Kozlovski, an Apache Kafka Committer. If you would like to connect with Stanislav, you can do so on Twitter and LinkedIn. AWS S3 is a service every engineer is familiar with. It’s the service that popularized the notion of cold-storage to the

highscalability.com

24日

利用規約プライバシーポリシーに同意の上ご利用ください

熊崎 宏樹さんの過去の回答
    Loading...