講演資料
講義資料スライドの表紙です。スライド画像、または下の要約文中の青いページ番号リンクをクリックすると、別のタブで無駄なノイズのない、純粋なPDFビューア画面が起動し、指定されたページへ直接ジャンプして快適に閲覧できます。
全体概要
本セミナーは、2014年11月のAWS re:InventでAmazon社が発表した「Amazon Aurora」という新しいクラウド・データベースの設計思想と技術的核心を解明することを目的としています。[p.2]
中心的な問いはシンプルかつ根本的です。「もし今日、クラウド時代にリレーショナルデータベースをゼロから設計するとしたら、どのような姿になるべきか?」[p.13] 従来のリレーショナルデータベースは、1970年代に設計された「Monolithic(一枚岩)」なアーキテクチャ——SQL・Transactions・Caching・Loggingを単一ボックス上に積み重ねた構造——をいまだに踏襲しています。これはクラウド環境において、コスト・柔軟性・可用性の三点で根本的な限界をきたしています。[p.8], [p.12]
Auroraはこの問いへの答えとして、「サービス指向アーキテクチャ(SOA)」をデータベース設計に適用した革新的な試みです。特にLoggingとStorageの層を切り出し、SSD・マルチテナント・スケールアウトに最適化された独立したクラウドサービスとして再構築した点が最大の特徴です。MySQL 5.6との完全互換を保ちながら、同等ハードウェア上でMySQLの最大5倍のスループットを実現し、商用エンタープライズDBの10分の1のコストで提供されます。[p.16], [p.17]
セミナーはPart IとPart IIの二部構成をとります。Part IではAuroraの全体像と設計思想・スケーラビリティ・可用性を概観し、Part IIではその技術的心臓部である「Log-Structured File System(LFS)」の理論的起源(Rosenblum & Ousterhout, 1991年)から、BigTable・LevelDB・Facebookのリアルタイム解析システムにいたる現代的応用、さらにSSD内部のFlash Translation Layerとの構造的類似性まで、技術史を縦断する形で深く掘り下げます。[p.4], [p.99], [p.100]
Auroraの真の革新性は、「ログページがデータページを生成する」というLog-Structured Storageの採用にあります。これにより、クラッシュからの高速回復、継続的インクリメンタルバックアップ、レプリカラグの劇的短縮(MySQL比400倍以上)が同時に実現されます。[p.18], [p.19], [p.30] 本セミナーは、この画期的な技術の理解を、設計思想・具体的仕様・技術的先行研究という三つの軸から総合的に提供する内容となっています。
講義のロードマップ
■ Part I: Amazon Aurora
- この部の核心:
現行DBの「Monolithic」構造が持つ本質的限界を明示したうえで、AuroraがSOAの適用によってその限界をいかに突破するかを、設計思想・クラスター構成・スケーラビリティ・可用性の四側面から体系的に解説します。re:InventでのAnurag Guptaのプレゼンテーションを起点として、AuroraのDBクラスターがどのように機能するかを具体的に明らかにします。[p.6], [p.36]
- 論理展開:
- Monolithic問題の提起: 既存DBはSharding・Shared Nothing・Shared Diskいずれのアプローチをとっても、スケールアウトのたびに同一スタックを複製するだけであり、根本解決にならないことを示します。[p.8], [p.9], [p.10], [p.11]
- Auroraの基本構成: SQL+Transaction Engine、独立したCache Service、Log-Structured Storage Service、Amazon S3という四つのサービスの組み合わせとして構成されます。DBプロセスから分離されたキャッシュはDB再起動後も「温かい」まま維持されます。[p.17], [p.20], [p.44], [p.46]
- Aurora DB Cluster: 3つのAZにまたがる単一の論理ボリューム「Cluster Volume」を共有するプライマリインスタンスと最大15台のAuroraレプリカで構成され、レプリカはログを再生する必要がないため、追加コストゼロで瞬時に増設できます。[p.49], [p.50], [p.55], [p.64]
- スケーラビリティ: ストレージは10GB単位で最大64TBまで自動拡張、コンピューティングは数分でスケール変更可能、レプリカラグは通常10ms以下(MySQL比最大400倍小)です。[p.57], [p.58], [p.65]
- 可用性と障害回復: 各10GBセグメントが3AZに6個レプリケーションされ、4/6の書き込みQuorum・3/6の読み込みQuorumを採用。クラッシュ時のredo再生はセグメントごとに並列・非同期で実施されます。[p.67], [p.73], [p.89]
- Questionセクション: Cluster VolumeとReplicaの関係、6コピーのQuorum的意味、「継続的バックアップ」のメカニズムについて、筆者自身の「素朴な疑問」を提起し、Part IIへの橋渡しをします。[p.83], [p.85], [p.93], [p.96]
■ Part II: Log-Structured File System
- この部の核心:
AuroraのCluster VolumeがLog-Structured Storage(LFS)に基づいているという事実を核心として、LFSの理論的起源から現代的応用・SSD内部構造との類似性まで、技術史を縦断する形で解説します。LFSを理解することが、Auroraの高速クラッシュ回復・継続的バックアップ・低レプリカラグのすべてを統一的に説明する鍵となります。[p.100], [p.101]
- 論理展開:
- LFSの基本思想(1991年論文): Rosenblum & Ousterhoutによる古典的論文(ACM SIGOPS 1991)を読解します。「大きなメモリキャッシュがreadの大半を解決するため、ディスクトラフィックの大部分はwriteである。ならばディスク全体をLogとして扱い、常に末尾に追記するだけにすれば、seekが消えてスループットが劇的に向上する」という核心的論理を示します。[p.113], [p.114], [p.123], [p.124]
- LFSのデータ構造: inode・inode map・segment summary・checkpoint regionの四層構造により、データの追記・参照・クラッシュ回復(Roll-Forward)が実現されます。セグメントのCleaning(GC)とそのコスト計算(write cost = 2/(1-u))がLFS実用化の核心的課題です。[p.107], [p.110], [p.111], [p.128], [p.129], [p.136]
- LFSとデータベース: WAL(Write Ahead Log)が不要になりデータベースファイル自体がWALになること、MVCC(Multiversion Concurrency Control)によるロックなし読み出し(Snapshot Isolation)、Optimistic Concurrencyによる書き込みが自然に実現されること、そして継続的インクリメンタルバックアップが「新しいセグメントをそのままコピーする」だけで実現されることを示します。[p.160], [p.161], [p.162], [p.164]
- Cache・Log・File System(BigTable/LevelDB): GoogleのBigTable(2006年)はGFS上のAppend-Only Logとmemtable+SSTableの組み合わせでLFSの思想を実装し、LevelDB(2011年)はLog-Structured Merge Treeとして同思想を洗練させています。FacebookのリアルタイムAnalyticsもWAL+Tailingアーキテクチャ(Scribe→PTail→Puma→HBase)でこの思想を体現しています。[p.168], [p.170], [p.177], [p.178], [p.179], [p.184]
- SSD File System: SSDのNAND Flash Memoryの内部構造(Page/Block/ブロックコピー/ウェアレベリング)はLFSと本質的に同じ構造を持ちます。「There's one in every SSD」——すべてのSSDにはLog-Structured File Systemが内蔵されているのです。[p.185], [p.187], [p.189], [p.193], [p.194]
■ Appendix: Amazon RDS for Aurora 製品情報・セットアップ
- この部の核心:
AWSの公式ドキュメントに基づき、Auroraの製品概要・主要機能一覧・価格体系・IAMセットアップ・VPCセキュリティグループ設定・DBクラスターの起動手順・モニタリング項目を網羅的に整理します。実際に利用を開始するための実務的参照情報として機能します。[p.195], [p.196], [p.203]
- 論理展開:
- 製品概要: MySQL 5.6互換、同一ハードウェアでMySQL比最大5倍スループット、商用DB比10分の1価格、ライセンスなし・ロックインなし・従量課金。[p.196], [p.198]
- 主要機能: パフォーマンス(低ジッター・Push-button Scaling・Storage Auto-scaling・Aurora Replica)、信頼性(耐障害性ストレージ・継続的増分バックアップ・スナップショット)、セキュリティ・管理性・低コストの五軸で整理されます。[p.203], [p.204]
- セットアップ手順: AWSサインアップ→IAMユーザー作成(Administrators グループ+AdministratorAccessポリシー付与)→VPC・セキュリティグループ設定→DB Cluster起動→Aurora Replica追加→Cluster Endpoint経由での接続という一連の流れをスクリーンショット付きで示します。[p.214], [p.217], [p.226], [p.243], [p.244], [p.247], [p.248], [p.250]
- モニタリング: SQL・System・Deploymentの三タブで、DMLスループット・コミットレイテンシー・バッファキャッシュヒット率・レプリカラグ等の主要メトリクスをリアルタイムに確認できます。[p.251], [p.252], [p.253]
