S3の構築と運用
- S3はAmazon Simple Storage Serviceの略であり、大規模なストレージシステムを意味する。
- Andy WarfieldはS3で働き、システムに対する幅広い理解を得た。
- S3は、顧客の性能体験からハードディスクのメカニクスまで、さまざまな領域をまたぐサービスである。
17年前、遠い大学キャンパスで...
- S3は2006年3月14日にリリースされ、今年で17周年を迎える。
- Warfieldはケンブリッジ大学で博士号を取得した後、Xenプロジェクトに参加し、その後XenSourceというスタートアップを創業した。
- XenSourceは成長してCitrixに買収され、Warfieldは事業の成長とチーム運営について多くを学んだ。
S3の動作方式
- WarfieldはAmazonに加わった後、S3の初期エンジニアの一人であるSeth MarkleからS3の動作原理を学んだ。
- S3はHTTP REST APIを持つオブジェクトストレージサービスであり、フロントエンド、ネームスペースサービス、ハードディスクを備えたストレージフリート、バックグラウンド処理を実行するフリートで構成される。
- S3は数百のマイクロサービスで構成されており、各チーム間の相互作用はAPIレベルの契約によって成り立っている。
初期の観察
- S3はソフトウェアを超えて、ハードウェアと人を含む継続的に進化するエコシステムである。
- S3の規模は、各構成要素がスケールアウトされたサービス群で構成されているため、システム全体の規模を理解するには時間がかかる。
技術的な規模: ストレージの物理学
- S3は数百万台のハードディスクを使用する非常に大きなシステムである。
- ハードドライブは技術と革新の驚異を体現しており、コスト効率にも優れている。
熱管理: データ配置と性能
- S3では「熱管理」という問題を解決するため、I/Oリクエストを多数のハードドライブに均等に分散させる最適化が行われている。
レプリケーション: データ配置と耐久性
- S3はデータの耐久性を保証し、熱を管理するために、レプリケーションやイレイジャーコーディングのような冗長化スキームを使用している。
規模の影響: データ配置戦略
- データを可能な限り多くのディスクに広く配置することで、顧客データが各ディスク上で占める割合を非常に小さくし、ワークロード分離を実現している。
人的要素
- S3の複雑さは、技術的要素だけでなく人的要素にも起因している。
- Amazonは、エンジニアとチームが迅速かつ安全に失敗し、高い耐久性を持つストレージの提供に集中することを奨励している。
自分自身のスケールアップ: 「オーナーシップ」で始まり終わる難題の解決
- WarfieldはAmazonで個人としてのスケールアップを経験し、ソフトウェア、人、ビジネスの規模について学んだ。
- Amazonでは「オーナーシップ」を重視しており、これは組織構造とエンジニアリングアプローチを理解する助けとなっている。
GN⁺の意見
- S3は単なるストレージサービスを超え、ハードウェア、ソフトウェア、人的要素が結びついた複雑なエコシステムである。
- この記事は、S3の規模と複雑さを理解したい初級ソフトウェアエンジニアに洞察を与える。
- Amazonの「オーナーシップ」文化は、チームと個人がより大きな責任感を持ってイノベーションを追求するよう動機づける重要な要素である。
1件のコメント
Hacker Newsのコメント
ゲノミクス分野で働きながら、この10年間で多くのペタバイト級データストアを扱ってきた。
S3がOAuth2ベースのプロトコルを使って読み書きアクセスを委譲できたら、私たちが構築できるものは大きく広がる。
分散システムで認証を扱うのは非常に難しい。
Amazonの社員たちがS3の内部動作について公に話しているのを見るのはよいことだ。
ハードドライブヘッドを747機にたとえて説明する部分。
S3 KeyMap時代にさかのぼると、最もホットなオブジェクト/パーティション/バケットを特定した後でも、単純に移動させるだけでは解決しないことを学んだ。
S3は単なるストレージではなく、標準だ。