![]() |
![]() |
|
MySQLをご使用中の皆さんと、まだ使ったことがない皆さんへ
~サンだと何が変わるの? MySQLを使うメリットは?~
開発者たちが望んでいるのは、開発での使用が容易で、エンタープライズ・レベルにもスムーズに拡張でき、技術の習得に費やした時間を補って余りある長期的な寿命を持つ製品です。MySQLコミュニティのメンバーの中には、「両社の合併後も引き続き優れたオープンソース製品が提供されるのだろうか?」あるいは、「このコミュニティが将来にわたってその堅固さを維持していけるのだろうか?」、と懸念する声もあります。 MySQLをサンから提供すると何が変わるの? MySQLはオープンソース・データベース市場のリーダーであり、サンが今後もMySQLをオープンソース・コミュニティで開発していく意向であることはあらゆる状況から見てとれます。MySQLのCEOであるMarten Mickos(マーティン・ミコス)氏によれば、サンは今回の契約締結をもたらしたMySQLを、今後も無料のオープンソース・ソフトウェアとして提供していくことを約束しています。MySQLに対するサンの4年に及ぶ「求婚期間」中の出来事についてはJonathan Schwartz(ジョナサン・シュワルツ)が自身のブログにも書いています。 この期間にMySQLの経営陣は、サンが長年にわたってオープン・システムに取り組んできた歴史を持ち、現在はさらにその取り組みをオープンソース・ソフトウェアへと拡大していること、また、サンならMySQLコミュニティが成長を続けるための本拠となり得ることを明確に理解しました。さらに、JavaテクノロジとMySQLはどちらもGPLバージョン2に基づいてライセンス供与され、このバージョンの改良が進めばGPLバージョン3が採用されることになっています。 MySQLの開発者にとって、状況にほとんど変化はないと言ってよいでしょう。一方、MySQL Enterpriseのユーザにとっては、サンにより、これまで以上に高度なサービスとサポートが期待できることになります。またMySQLがさらに広く普及することで、全てのユーザにとっては、より迅速な製品改革とより厳密なテストによって総合的に一段と優れたMySQL製品が提供されることが期待できます。 MySQLとサンのソフトウェア・スタック
“LAMP”という頭字語は、Linuxオペレーティング・システム、Apache Webサーバ、MySQLデータベース・サーバ、PHP/Perl/Python言語の頭文字であり、オープンソースの開発者たちが好むソフトウェア・スタックを表わしています。このスタックの各構成要素には、それぞれオープンソースとプロプライエタリな技術の両方が存在しており、「LAMP」という頭字語で表現するのは実はあまり適切とは言えないのが現状です。例えば、MySQLの1日あたりのダウンロード件数50,000件のうち、大半のバイナリはWindowsオペレーティング・システム用であり、さしずめWAMP開発者向けといったところです。サンが提供する他のオープンソース・ツールや製品にも同様の傾向が見られ、特にGlassFishアプリケーション・サーバの場合がそうです。サンはLAMP開発者向けのマーケット・シェア獲得に向けて積極的に競争を展開する意向ではありますが、自社が開発したツールやソフトウェアは、広く利用されているプラットフォーム全てにポーティングしています。 一方で、サンのソフトウェア開発に取り組んでいる開発者も同様に、MySQLがソフトウェア・スタックの中でPostgreSQLやJavaDBなどのデータベースに取って代わることになるのではないかと危惧しているかもしれません。この点についてもやはりサンは、Apache Derbyなど、開発者がデータベースとして利用したいと望む人気の高い管理ソフトウェアを全てサポートするという意向を表明しています。PostgreSQLコア・チームのJosh Berkus(ジョシュ・バーカス)氏の言葉を借りれば、「サンはPostgreSQLのサポートをやめるつもりはありません。サンが目指しているのはデータセンター・ベンダーとしてNo.1になることであり、MySQLベンダベンダーとしてNo.1になることではないのです…データベースの世界に、『1つの製品であらゆる用途に対応できる』ものはありません。」 Webアプリケーション・ソフトウェア・スタックにすでにMySQLを使用しているユーザなら、オペレーティング・システム、Webサーバ、言語の種類にかかわらず、今後もMySQLをこれまで同様コミュニティ・ベースで開発される無料のデータベースとして使用できると考えてよいでしょう。さらに、エンタープライズ・レベルへとパフォーマンスをスケールアウトしたい場合には、そのために必要なサポートとサービスをサンが提供します。別のデータベースを使用しているユーザは、そのデータベースがサン製品とよりスムーズに連携できるようになることを期待できます。 2秒に1件ダウンロードされているMySQL Webアプリケーションの開発にまだMySQLや他のサン製品を使用したことがないという開発者は、そろそろ利用を再検討してみてもよい時期かもしれません。 あらゆる用途に対応できる単一のデータベースというものはありませんが、MySQLの人気は、このデータベースがいかにその理想の製品に近いかということを示しています。MySQLが柔軟性に優れ、使いやすい製品である最大の理由は、アーキテクチャと拡張性にあります。そのアーキテクチャを見ると、MySQLがこれまでに世界中で稼働中のインストール・ベース1,100万以上、ダウンロード数1億以上を誇っているのはなぜであるかが分かります。この記事を執筆中にも、新しいMySQLは2秒に1件の割合でダウンロードされているのです。 抜群のパフォーマンスを実現するスケールアウト 多くのMySQLユーザが成功に向けて導入しているのが「スケールアウト」と呼ばれる戦略です。「スケールアウト」とは、複数の物理サーバ上にデータを複製することによってデータベースの負荷をコモディティ・ハードウェアに分離及び分散するアーキテクチャ設計を指します。この戦略と対照的な手法が、より少数のモノリシック・サーバ上により多くのCPU、記憶装置、メモリを搭載するものであり、これは「スケールアップ」と呼ばれることもあります。スケールアウト戦略では一般に、投資額に比べて優れた耐障害性とパフォーマンスが実現されます。これはMySQLを導入し、膨大なトラフィックに対応する多くのWebサイトが、この手法により高いアップタイムを達成していることで実証されています。
図1 スケールアウト・アーキテクチャ 一般的には、ユーザは顧客用のWebサーバまたはアプリケーション・サーバ上でセッションを開始します。すると、これらのサーバがその要求を、ロード・バランサまたは要求を指示する他のアプリケーション・ロジックを介して、必要に応じてMySQLデータベース・サーバに送信します。データベースへの書き込み要求がサーバに送られ、書き込みが行われると、サーバはそのデータの複製を他のMySQLサーバ上にも作成し、それらのサーバ上のデータを最新の状態に維持してその後のクエリに備えます。 高可用性で大容量の構成となっているMySQLサーバで障害が生じると、通常は障害が生じたサーバを切り離して別のサーバにスワップすることによって障害を回復します。データベースの複製は数分程度で新しいサーバ上に作成でき、クエリ・サービスも従来どおりに処理されます。低コストのコモディディ・サーバを使用することで、このスワップ方式は費用対効果に優れたものとなっています。 ストレージ・エンジン・アーキテクチャ MySQLのストレージ・エンジン・アーキテクチャは、データベースの世界でも独特のものです。特に興味深いのは、下の図2に示すプラガブルなストレージ・エンジン層です。
図2 ストレージ・エンジン・アーキテクチャ 他のデータベース管理システムと同様、MySQLはこのストレージ・エンジン層の上に存在します。コネクタ群を介してデータベースへの照会を行うことができます。サーバ内の接続プールにより、認証、及びスレッド、接続、メモリ、キャッシュの認証が行われます。また、サーバ内のモジュールで、クエリの解析やアクセス・パスの最適化などを行います。 この層の下で、複数のストレージ・エンジンをアーキテクチャにプラグインすることができます。ストレージ・エンジンとは、物理サーバ層に格納されている基礎データに対してアクションを実行するデータベース・サーバのコンポーネントです。このプラガブルなストレージ・エンジン・アーキテクチャにより、全ての基本ストレージ・エンジンに対して、標準の管理セット及びサポート・サービスを適用することが可能になります。その結果、単一マネージャの下に多数のデータベースが存在している場合と同様の状態となります。 アーカイブに使用されるものなど、一部のストレージ・エンジンは、本来は非トランザクションです。このようなストレージ・エンジンは、データの挿入と読み込みをきわめて効率的に行うことができます。トランザクション処理が要求されるとそれに応じて調整され、効率を向上させるストレージ・エンジンもあります。また、クラスタリングによって高可用性を提供するストレージ・エンジンもあります。これらのストレージ・エンジンは、プロプライエタリ・システムであれば当然発生するオーバーヘッドを避けることができます。プロプライエタリ・システムでは通常、トランザクションのオーバーヘッドが不要な場合でもテーブルのアーキテクチャ上どうしてもそのオーバーヘッドが発生してしまいます。 例えば、主にデータのルックアップを行う必要のあるサイトでは、MyISAMストレージ・エンジンを使用することにより、全てのトランザクション・オーバーヘッドを回避できます。MyISAMストレージ・エンジンはMySQLのデフォルト・エンジンです。MyISAMストレージ・エンジンは高速のクエリ及び挿入機能を提供する非トランザクション・エンジンであり、テーブル・レベルのロックを可能にしてインデックスをサポートします。従来のデータ・ウェアハウスに適したエンジンです。 MySQLデータベース・サーバには、複数のストレージ・エンジンが組み込まれています。外部ストレージ・エンジンは特定の製品や状況に合わせて最適なパフォーマンスを提供できるよう調整され、ISV及びMySQLコミュニティから提供されます。 MySQLデータベースに搭載される複数のストレージ・エンジンが、複数データベースとしての機能を提供します。別のデータベースからMyQLに移行する場合は、使用するアプリケーションとデータベース・サーバとの対話方法を変更する必要はありません。SQLコードは同じです。しかし、MySQLサーバ内では、アプリケーションのニーズに応じたストレージ・エンジンを選択することが可能です。 例えば、トランザクショナル・データベースが必要であれば、1つのステートメントを記述するだけで、データベースを非トランザクショナル・システムからトランザクショナル・システムに変換することができます。また、データ・ウェアハウスが必要だと判断したら、1つのコマンドを実行するだけで、データ検索に適した列指向の高性能データベースを手に入れることも可能です。データのキャプチャと格納が主なアクティビティである場合なら、Archiveストレージ・エンジンが大量データの挿入や少容量への圧縮を効率的に処理できる設計となっています。 高可用性 ISPや各業界の大手企業は、MySQLサーバの複製機能が高可用性に対する各社のニーズを十分に満たすものであることが分かるでしょう。 ユーザはストレージ・エリア・ネットワーク(SAN)テクノロジや分散複製ブロック・デバイス(DRBD)を追加して可用性を向上することができます。DRBDはLINBITが提供するLinuxカーネル・モジュールで、ブロック・デバイスの複製をネットワーク全体に配布します。MySQL Clusterは、データ・ノード間の同期複製、自動フェールオーバー、クラスタ間で複製を行い、最高水準の「ファイブナインズ」(99.999%)の可用性を提供します。 きわめてトラフィックの多いサイトでも最高水準のパフォーマンスを提供できるMySQLは、製品開発における使いやすさとあいまって、幅広いユーザの支持を集めています。 MySQLのビジネス・モデル MySQLユーザの25%は開発者です。小規模企業、特に起業間もない場合は、開発者がデータベース管理者を兼務することがよくあります。企業が成長し販売量や利益が伸びるにつれて、重要な存在となった社員は自分の時間をデータベース管理ではなく別の活動にあてたほうがよいということに気付きます。信頼性の高さと人件費がますます重要になります。この時点でMySQL Enterpriseを購入すれば、モニタリングとサポート・サービスを得られるため、経済的な面で効果的です。 MySQLのコミュニティ・バージョンも、機能的にはMySQL Enterpriseバージョンとまったく同一です。ただしEnterpriseバージョンのほうがアップグレードはより頻繁に行われます。この機能には、GUI管理ツール、他のサーバからデータを移行するための移行ツールキット、JDBC及びODBC用コネクタなどが含まれます。ドキュメント類やユーザ・フォーラムへのアクセスも、コミュニティで無償で提供されます。MySQLを利用して、開発も無償で行うことができます。当然ながら、開発規模をスケールアウトする場合には、MySQLの有償バージョンに移行することになります。 結論 JavaテクノロジやSolarisオペレーティング・システムなどのオープンソース・モデルを擁するサンは、オープンソース・コミュニティに貢献する世界最大の企業です。MySQLは、すでに世界で最も広く使用されているオープンソースのデータベースであり、サンのソフトウェア・スタックにおける重要な要素となります。またサンのユーザ層やリソースに支えられ、さらに広く普及する兆しを見せています。それは、サン、MySQL、開発者コミュニティ、さらには大規模及び小規模の企業ユーザに、メリットをもたらすことになるでしょう。 |
|
|||||||||||||||||||||||||
|
|