MEGAZONEブログ
Dive deep on Amazon S3
Amazon S3 ディープダイブ
Pulisher : Managed & Support Center キム・ソンド
Description:Amazon S3のパフォーマンスと内部アーキテクチャの紹介セッション
はじめに
Amazon S3は、業界最高レベルの拡張性、耐久性、セキュリティ、パフォーマンスを提供するクラウドオブジェクトストレージです。S3の基本的なアーキテクチャについて学び、S3がどのように無制限の拡張性と弾力性を提供するかを確認できるセッションです。
S3がどのように一貫した性能を提供するのか、内部アーキテクチャはどのようなものか確認するためにセッションを申し込みました。
セッションの概要紹介
マルチパートアップロードは、大量のデータを並列にアップロードする方法であり、クライアントからデータを複数に分割して並列に送信することで、効率を高め、障害が発生しないようにします。
これにより、お客様は高いスループットを利用でき、予期せぬ使用量の増加に備えることができます。
Amazon S3のインデックスは現在、350兆個以上のオブジェクトを保存し、毎秒1億件以上のリクエストを処理しています。これは非常に多くの作業を行い、多くのデータを保存していることを意味します。
インデックスを管理するため、キーを複数のサーバーに分割し、キー名のスペルと数字を考慮して辞書式でソートして利用しています。
この時、英語の単語の最初の文字を考慮すると、特定の文字が多くなり、「ホットスポット」が発生する可能性があります。
ホットスポットが発生すると、システムがその部分を検出し、サーバー間で分散させて性能を最適化します。
日付をプレフィックスに使う方法の例です。
間違った例として、日付を左側に置き、それを基準にデータを分割すると、日付が変更され、その日付の利点を活用できなくなり、パフォーマンスの問題が発生する可能性があります。
代わりに、日付を右側に置くことで、バイナリデータの分散の利点を活用し、新しい日付のデータに対する分散を最小限に抑えることができます。
リクエストの安全性を保証するために、チェックサム(データ整合性確認用コード)方式を使用しています。
以前はMD5のみを使用していましたが、性能が優れているSHA256など様々なチェックサムアルゴリズムを使用しています。
データを保存する前に、データを保存する前に、逆に変換パイプライン全体を通過し、保存するデータが実際に一致することを確認します。最終的には、お客様が200 OKを受け取ることになります。
このようにS3から受信したデータは単純にチェックサムを経るだけでなく、すべての作業を逆に行い、データが正しく保存されたことを確認します。
Amazon S3バケットでのデータ削除のリスクに関する内容です。
Amazon S3バケットで誤って大量削除を防止するために様々な機能を使うことができます。
まず、バージョン管理を通じてオブジェクトの履歴を保存することができ、ライフサイクルポリシーと組み合わせて古いオブジェクトを自動的に削除することができます。 また、複製、オブジェクトロック、バックアップソリューションなどを活用してデータ保護と可用性を強化することができます。
セッションを終えて
S3について深く内容を確認することができ、S3がどのようにデータを保存し、整合性を確認するのかという内容が盛り込まれたセッションでした。
上記の内容を基盤に顧客にS3の安定性を確認させることができそうです。