MySQL
MySQLデータベースをホストする5つの方法
はじめに
プロジェクトのためにMySQLサーバーを起動して実行するには、多くの方法があります。サーバーインスタンスを自分でインストールして管理することも、マネージドMySQLアクセスを提供する多くのプロバイダーの1つを利用することもできます。
この記事では、MySQLサーバーの最も一般的なオプションのいくつかを取り上げ、それらの利点と課題を比較します。プロジェクトとチームの優先事項を把握することで、ニーズに合ったソリューションを見つけることができます。
セルフマネージドMySQL
最も柔軟で説明が簡単なオプションは、MySQLサーバーをセルフホスティングすることです。MySQLのセルフホスティングとは、他のソフトウェアと同様に、自分で管理するコンピュータにデータベースをインストールおよび構成することを意味します。
セルフホスティングでは、データベースをインストールして実行する場所を自由に選択できます。このセクションのオプションのいずれかを選択した場合、このガイドを使用してシステムにMySQLをインストールする方法を学ぶことができます。
ローカル開発用コンピュータへのMySQLのインストール
初期の開発、テスト、および概念実証のために、ローカル開発マシンにMySQLをインストールすると、信頼性が高く、管理が容易なデータベースアクセスを提供できます。
ホスティングオプション | ローカル開発マシン |
---|---|
プロジェクト段階 | 開発 |
コスト | 追加コストなし |
パフォーマンス | 低 |
スケーラビリティ | なし |
管理の複雑さ | 低 |
追加の注意点 | ネットワーク構成は不要です。ローカル開発に適しています。 ローカル開発に適しています。 |
コスト
開発マシンにMySQLをセットアップするのは無料です。開発中にすでにアクティブになっているコンピュータからデータベースを実行しています。MySQLが起動して実行されているときに消費するリソースの量のみを考慮する必要があります。
パフォーマンス
開発マシンにMySQLをインストールするのは、低パフォーマンスのオプションです。
データベースは、他のユーザーが簡単かつ確実に利用できるようにはなりません。データベースの独自の利用は、ハードウェアとMySQLに割けるリソースの量によって制限されます。これらの懸念は、ローカルでテストまたは開発する場合、通常は問題になりませんが、より複雑なものにはまったく不十分です。
スケーラビリティ
開発マシンでのホスティングでは、スケーラビリティはほとんど得られません。MySQLに割り当てるリソースの量を変更できますが、それほど多くはありません。開発マシンをアップグレードできますが、長期的には実用的でも特に役立つわけでもありません。
管理の複雑さ
複雑さの点で、ローカルマシンでのMySQLのホスティングは、多くの場合、非常に簡単です。ほとんどのオペレーティングシステムのインストールプロセスはよく考えられており、結果として得られるデータベースは簡単に起動または停止できます。ただし、リソースの制限とコンシューマーネットワークの不安定さを考えると、ローカルMySQLインスタンスを外部アクセス用に構成する価値は通常ありません。
ローカルでMySQLをセットアップするのは複雑ではありませんが、データベースを管理し、必要に応じてアップグレードを実行する必要があります。これらはセキュリティパッチの適用に必要になる場合があり、データのセキュリティが気になる場合は、これらのインスタンスを追跡するのはユーザーの責任となります。
追加の注意点
ローカルにインストールするということは、ネットワークがダウンしている場合でも、開発用コンピュータからデータベースにアクセスできることを意味します。これは、旅行中に特に役立ちます。ローカルでデータにアクセスすると、ネットワークの複雑さが解消され、データベースアクセスではなく開発に集中できます。
ローカル開発用コンピュータへのMySQLのインストールは便利ですが、いくつかの明確な制限があります。マルチユーザーアクセスを簡単に構成することはできず、データベースの稼働時間はコンピュータの可用性とネットワークの安定性に直接結び付いています。これらの理由から、開発マシンへのインストールは、生産性と柔軟性を向上させるための補助的なオプションとしてほぼ常に意図されており、唯一のデータベースインストールになることはありません。
別のサーバーへのMySQLのインストール
別のセルフホスティングオプションは、別のコンピュータにMySQLをインストールして管理することです。一般的な実装には、次のようなものがあります。
- 専用サーバーへのインストール: MySQLは、専用コンピュータで実行される唯一のサービスとして構成されています。マシンのすべてのリソースにアクセスできます。
- 関連アプリケーションと並行してインストール: MySQLは、それを必要とするアプリケーションと並行してインストールされます。これは、すべてのコンポーネントを単一のマシンで管理できるため、小規模なデプロイメントに一般的な選択肢です。コンピュータのリソースは、MySQLと他の実行中のアプリケーション間で共有する必要があります。
別のサーバーへのMySQLのインストールは、開発マシンへのインストールとは大きく異なります。
ホスティングオプション | 別のサーバー |
---|---|
プロジェクト段階 | 開発、ステージング、本番環境 |
コスト | 変動。追加のサーバーの購入またはレンタルに加えて、追加の管理コスト。 サーバーの購入またはレンタルに加えて、追加の管理コスト。 |
パフォーマンス | 高い可能性 |
スケーラビリティ | 高い可能性 |
管理の複雑さ | 高 |
追加の注意点 | 最も柔軟なオプション。また、最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 |
さらに強調する必要がある考慮事項の1つは、MySQLを自分で管理する場合、セキュリティはユーザーの責任であるということです。組織の他の部分でインフラストラクチャ、ソフトウェア、およびネットワークセキュリティをすでに処理している場合、これは問題ではない可能性があります。ただし、あまり詳しくない場合は、MySQLインスタンスとそれが保持するデータのセキュリティ保護が重大な課題になる可能性があります。このパスを選択する前に、これを計画に組み込むようにしてください。
コスト
専用または共有マシンでMySQLを実行するには、使用するサーバー領域を購入またはレンタルする必要があります。実際のサーバーは、組織のオンプレミス、データセンター内のコロケーション、またはクラウドプロバイダーがホストする仮想マシン(仮想プライベートサーバーまたはVPSとも呼ばれます)として運用できます。
サーバーのコストは大きく変動する可能性があります。低電力VPSは非常に安価ですが、複数の専用サーバーはすぐに高額になります。ただし、サーバーのコストだけが考慮事項ではありません。追加の管理コストも考慮する必要があります。デプロイメント環境によっては、データベースレイヤー、サーバーのソフトウェア、およびハードウェアを管理するための人件費が含まれる場合があります。これらのコストは、可用性の要件、ホスティング環境、および運用の規模によって異なります。
パフォーマンス
別のサーバーにMySQLをデプロイすると、非常に高いパフォーマンスの可能性があります。MySQLを実行するマシンの仕様はユーザーが制御できるため、ニーズに合ったハードウェアを完全に柔軟に選択できます。将来拡張する必要がある場合は、ハードウェアをアップグレードするか、追加のサーバーを購入してワークロードをスケールできます。
データベース構成を微調整して、パフォーマンスをさらに向上させることもできます。メモリ管理、キャッシング、オープンファイル処理、クライアント接続などに関連する設定を調整できます。これにより、多くのパワーが得られますが、これらのオプションを利用するには、時間、専門知識、および実験が必要です。独自のサーバーを実行する他の側面と同様に、利点は、プロジェクトのこの側面に割り当てることができる時間とお金によって制限されます。
スケーラビリティ
上記のように、専用サーバーで実行すると、データベースシステムの変化する要求に対応できます。データベースサーバーにリソースとハードウェアを追加してスケールアップするか、MySQLサーバーのプール間でリクエストのバランスを取ることによってスケールアウトできます。どちらのオプションも、さまざまな種類のストレスに対する妥当な対応です。
管理の複雑さ
一般的に言って、スケーリングには、パフォーマンスチューニングと同じ利点と制限があります。信じられないほどの柔軟性とパワーがありますが、コストと構成の管理はユーザーの責任です。追加のハードウェアを必要とする変更(需要の増加など)は、ハードウェアの調達、ソフトウェアの構成、およびワークロードのバランスを取るための時間を組織に与えるためのプロアクティブな監視と組み合わせる必要があります。
追加の注意点
要約すると、独自のMySQLを管理することは、信じられないほど効率的で強力、かつ柔軟性がありますが、多くの専用の時間とリソースが必要になる場合があります。このオプションは、データベースのランタイム環境、構成、およびアーキテクチャトポロジを制御したい社内インフラストラクチャとサーバーの専門知識を持つ組織に最適です。
Dockerを使用したMySQL
別のセルフホスティングオプションは、Dockerを使用してMySQLをコンテナとして実行することです。Dockerを使用すると、ローカルまたはリモートマシン上の隔離された環境でMySQLを実行できます。
ホスティングオプション | Dockerコンテナ |
---|---|
プロジェクト段階 | 開発、ステージング、本番環境 |
コスト | 変動。追加のサーバーの購入またはレンタルに加えて、追加の管理コスト。 サーバーの購入またはレンタルに加えて、追加の管理コスト。 |
パフォーマンス | 中~高 |
スケーラビリティ | 高 |
管理の複雑さ | 中~高 |
追加の注意点 | コンテナ化されたインフラストラクチャは、複雑さの点で劇的に異なる場合があります。コンテナは多くのことを容易にしますが、特に開発およびステージング中ですが、本番環境で適切に実行するには、経験と複雑なオーケストレーションも必要です。 コンテナは多くのことを容易にしますが、特に開発およびステージング中ですが、本番環境で適切に実行するには、経験と複雑なオーケストレーションも必要です。 コンテナは多くのことを容易にしますが、特に開発およびステージング中ですが、本番環境で適切に実行するには、経験と複雑なオーケストレーションも必要です。 コンテナは多くのことを容易にしますが、特に開発およびステージング中ですが、本番環境で適切に実行するには、経験と複雑なオーケストレーションも必要です。 コンテナは多くのことを容易にしますが、特に開発およびステージング中ですが、本番環境で適切に実行するには、経験と複雑なオーケストレーションも必要です。 本番環境のワークロードの場合、コンテナはKubernetesのようなコンテナオーケストレーションにすでに投資している場合にのみ、適切な選択肢となる可能性があります。 本番環境のワークロードの場合、コンテナはKubernetesのようなコンテナオーケストレーションにすでに投資している場合にのみ、適切な選択肢となる可能性があります。 本番環境のワークロードの場合、コンテナはKubernetesのようなコンテナオーケストレーションにすでに投資している場合にのみ、適切な選択肢となる可能性があります。 |
従来のローカルインストールよりもDockerを使用する利点の一部を以下に示します。
- 公式のMySQL DockerイメージでMySQLを実行すると、MySQLをインストールするよりも手間がかかりません。
- Dockerを使用すると、複数の環境間でまったく同じデータベース構成を再現できます。これは、同じMySQL構成を必要とするプロジェクトで共同作業するチームに役立ちます。
- Dockerを使用すると、MySQLに割り当てるCPU、メモリ、およびストレージリソースを制御できます。
- Dockerは、MySQLとマシンで実行されている他のソフトウェアとの間の非互換性の可能性を減らします。
ローカルまたはリモートマシンにDockerを使用してMySQLをインストールするのは似ていますが、本番環境のワークロードにMySQLを使用するかどうかによって、いくつかの追加の考慮事項があります。
DockerはMySQLの実行の特定の側面を簡素化しますが、注意すべきトレードオフがいくつかあります。
- 構成によっては、Dockerで実行すると、ネットワーク構成の複雑さが増す可能性があります。
- Dockerは抽象化の追加レイヤーを追加します。これには、追加のセキュリティ上の考慮事項が必要であり、トラブルシューティングが直接的でなくなる可能性があります。
コンテナとKubernetes
Kubernetesを使用すると、複数のサーバーで構成されるクラスターでDockerコンテナを実行できます。クラスター内の1つのサーバーをメンテナンスのためにダウンさせる必要がある場合、基盤となるデータパーティションにアクセスできる限り、KubernetesはMySQLコンテナを別のサーバーに移動します。MySQLを使用するアプリケーションをKubernetesで実行することもできます。これにより、アプリケーションとMySQL間のネットワーク遅延を短縮できます。
マネージドサービス
MySQLを自分で実行する代わりに、プロバイダーからMySQLデータベースをレンタルまたは購入するという方法もあります。マネージドサービスを使用すると、MySQLソフトウェアまたは基盤となるサーバーの舞台裏の管理を気にすることなく、データベースをサービスまたはAPIとして簡単に操作できます。
さまざまなニーズに対応するために、さまざまなタイプのマネージドサービスが存在します。このセクションでは、ホスティングまたはクラウドプロバイダー、サードパーティのマネージドデータベース、およびアプリケーションプラットフォームによって提供されるデータベースによって提供されるサービスについて説明します。
クラウドプロバイダーによって管理されるデータベース
おそらく最も一般的なタイプのマネージドMySQLホスティングは、クラウドまたはホスティングプロバイダーによって提供される種類です。これらの例としては、Amazon Web ServiceのRDS(リレーショナルデータベースサービス)、Google Cloud PlatformのCloud SQL、およびAzure Databaseなどがあります。
ホスティングオプション | クラウドプロバイダー管理 |
---|---|
プロジェクト段階 | 開発、ステージング、本番環境 |
コスト | 選択と使用状況に応じて大きく変動します。 選択と使用状況に応じて大きく変動します。 |
パフォーマンス | 大きく変動 |
スケーラビリティ | 高 |
管理の複雑さ | 低 |
追加の注意点 | アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 |
クラウドプロバイダーは、データセンターで実行するように微調整され、他のサービスとシームレスに連携する、さまざまなMySQLデータベースを提供しています。
クラウドプロバイダー
次のクラウドプロバイダーは、ニーズに応じて購入、構成、およびスケーリングできるマネージドMySQLデータベースを提供しています。
サーバーとMySQLの大部分はホスティングプロバイダーによって管理されますが、スケーリングオプションの設定、設定の微調整、およびアクセスの管理を行うことができます。データベースをインターネットから接続できるように構成したり、同じプロバイダーによって管理されているアプリケーションに直接接続したりできます。
コスト
クラウドプロバイダーによって管理されるMySQLデータベースは、幅広いコストになる可能性があります。ローエンドでは、一部のプロバイダーは、最小限のパフォーマンスと稼働時間で無料の階層を提供しています。ハイエンドでは、予期しないトラフィックの急増が発生した場合、あらゆる需要に対応するために自動的にスケーリングすると、一晩で数千ドルの費用がかかる可能性があります。クラウドのほとんどのことと同様に、実際の使用状況は毎月の請求に影響を与えます。多くのクラウドは、使用量/コストが一定のポイントを超えた場合に、コストアラートまたは自動オフさえ提供しています。データベースシステムの運用コストを管理するために、使用状況を監視し、カットオフを構成することが重要です。
スケーラビリティ
コストは予測が難しい場合がありますが、良いニュースは、クラウドでのスケーリングが非常に簡単であるということです。データベースに割り当てられたリソースは、オンザフライで構成可能です。これは、アカウントの設定を変更するだけで、ストレージ容量、メモリとコンピューティング能力、またはデータを管理するレプリカの数を増やすことができることを意味します。注意深く構成しないと高コストにつながる可能性のある強力な機能の1つは、現在の需要に応じてデータベースのリソースを動的にスケーリングする機能です。これにより、コストをカバーできると仮定して、常に要件を満たす容量を確保できます。
パフォーマンス
スケーラビリティに関連して、パフォーマンスはクラウドで非常に柔軟なもう1つの領域です。使用パターンに応じて、データベースのパフォーマンスに最大の影響を与える設定を微調整することがよくあります。現在の構成が非力な場合は、追加のリソースを割り当てることもできます。データベースを使用するアプリケーションとデータベースをコロケーションすると、データベースとアプリケーション間のネットワークパフォーマンスを向上させることもできます。
管理の複雑さ
管理の複雑さの点で、クラウドホスト型データベースはかなりシンプルです。プロバイダーに管理負担の大部分を肩代わりしてもらうために料金を支払っています。アカウントとデータベースに影響を与える設定を制御する必要はありますが、ハードウェア、オペレーティングシステム、およびMySQL構成の大部分はユーザーに代わって処理されます。これは、データベースの使用の管理オーバーヘッドを削減する上で大きな影響を与える可能性がありますが、特別なケースでは、必要なレベルのチューニングにアクセスできない場合があります。
追加の注意点
一般に、クラウドプロバイダーによって管理されるMySQLデータベースの料金を支払うことは、通常、魅力的なオプションです。より少ない管理作業で、スケーリングとパフォーマンスに関して優れた柔軟性を提供します。クラウドプロバイダーのデータベースオファリングを使用することの欠点は、特定のレベルでそれ以外の場合よりも多くの料金を支払うことになる可能性があることです。さらに、ツールがプロバイダー固有の機能に過度に依存し始めると、現在のプロバイダーに閉じ込められる危険性があります。
サードパーティのマネージドデータベース
データベースをクラウドプロバイダーから直接購入する代わりに、サードパーティプロバイダーを通じてデータベースを管理することを選択できます。ほとんどの場合、このオプションは、選択したクラウドまたはクラウドにデータベースをデプロイおよび管理し、基盤となるリソースプロバイダーからデータベース管理を分離します。
ホスティングオプション | サードパーティ管理 |
---|---|
プロジェクト段階 | 開発、ステージング、本番環境 |
コスト | 選択に応じて大きく異なります 選択と使用状況に応じて大きく変動します。 |
パフォーマンス | 大きく変動 |
スケーラビリティ | 高 |
管理の複雑さ | 低 |
追加の注意点 | サードパーティのマネージドデータベースには、クラウド提供のデータベースと同じ利点が多数あります。 サードパーティのマネージドデータベースには、クラウド提供のデータベースと同じ利点が多数あります。 ただし、サードパーティを通じてデータベースを管理することにより、基盤となるクラウドプロバイダーからデータベース管理を分離できます。 ただし、サードパーティを通じてデータベースを管理することにより、基盤となるクラウドプロバイダーからデータベース管理を分離できます。 ただし、サードパーティを通じてデータベースを管理することにより、基盤となるクラウドプロバイダーからデータベース管理を分離できます。 これにより、将来別のホストに移行することが容易になり、より強力な管理オプションが可能になる場合があります。 これにより、将来別のホストに移行することが容易になり、より強力な管理オプションが可能になる場合があります。 これにより、将来別のホストに移行することが容易になり、より強力な管理オプションが可能になる場合があります。 |
サードパーティプロバイダーによって管理されるデータベースは、クラウドプロバイダー自体が提供するものと同じ基本的なコンポーネントをよく使用します。しかし、サードパーティプロバイダーは多くの場合、複数のクラウドと連携し、ユーザーのアカウントでリソースを立ち上げ、必要に応じてより低レベルのアクセスを許可することがよくあります。クラウドプロバイダーが提供するデータベースを使用する代わりに、このサービスはプロバイダー上の仮想サーバーを起動し、これらを使用してMySQLをインストールおよび構成します。彼らはオペレーティングシステムの設定を調整し、インスタンスをホストするサーバーへのアクセスを提供できます。サードパーティのMySQLプロバイダーの例としては、ScaleGridがあり、現在4つの異なるクラウドでインスタンスを管理できます。
サードパーティの提供
次のサードパーティプロバイダーは、ニーズに応じて購入、構成、および拡張できるマネージドMySQLデータベースを提供しています。
サーバーとMySQLの大部分はプロバイダーによって管理されますが、データベースが実行されるクラウドプラットフォーム、スケーリングオプションの設定、設定の微調整、およびアクセス管理を行うことができます。データベースをインターネットから接続可能に構成したり、同じプロバイダーによって管理されているアプリケーションに直接接続したりできます。
コスト
コストに関して言えば、サードパーティソリューションも多くの場合、非常に変動が大きいです。ユーザーとして、デプロイ先のクラウドのコンピューティングリソースと、データベース管理サービスが請求する管理コストを支払う必要があります。マネージドデータベースの代わりに、より基本的なリソースに対してクラウドプロバイダーに支払うため、その側のコストは小さくなる可能性があります。ただし、管理サービスに関連するコストにより、一部の価格帯で累積的に高価になる可能性があります。総コストを決定するには、各側がさまざまなレベルでどのようにスケールするかを把握する必要があります。
パフォーマンス
データベースのパフォーマンス特性も大きく異なる場合があります。管理サービスがクラウド内のコンピューティングインスタンスにインストールされるため、プロバイダーはMySQLの設定に加えてサーバー構成を調整する機能を持っています。これは、ユーザーのニーズにより合理的に一致するように一部の設定を調整できる可能性があることを意味します。
一方で、十分に調整するために必要な仮想化およびハードウェアコンポーネントの低レベルレイヤーにアクセスできない場合があります。クラウドプロバイダーが提供するネイティブデータベースに対してパフォーマンスをテストすることを強くお勧めします。
スケーラビリティ
サードパーティ管理のデータベースのスケーラビリティは一般的に非常に優れています。これらのプロバイダーは十分なリソースを備えた任意のコンピューティングインスタンスにデプロイできるため、クラウドプロバイダーが公開するよりも幅広いスケーリングオプションを提供できる場合があります。スケーリングの理由の1つが可用性を高めることである場合、多くのサードパーティサービスは、複数のアベイラビリティゾーンまたはプロバイダーにまたがることが可能です。
管理の複雑さ
データベースを管理するためのサードパーティサービスには、さまざまな複雑さがあります。このオプションでは、2つの異なるプロバイダー(コンピューティングインスタンスをホストするクラウドとデータベース管理サービス)間の連携が必要になるため、クラウドプロバイダーが提供するネイティブデータベースサービスを使用する場合と比較して、本質的に複雑さが増します。
一部の管理サービスは、共有ウェブホスティングとほぼ同じ方法で複雑さを隠し、簡略化されたオプションとして位置付けています。他のソリューションは、オペレーティングシステムにアクセスできるという事実を利用して、幅広い構成オプションをユーザーに公開しています。多くのサービスは、ユーザーが好みの複雑さのレベルを見つけられるように、両方のエクスペリエンスを提供しています。
追加の注意点
データベース管理を基盤となるリソースプロバイダーから分離することには、長所と短所の両方があります。
データベース管理サービスが基盤となるレイヤーを抽象化する場合、別のクラウドプロバイダーへの移行においてより柔軟性が高まる可能性があります。この抽象化により、快適な複雑さのレベルを選択することもできます。データベース管理サービスが提供する完全な抽象化とインターフェースを使用できますが、プロビジョニングされたデータベースサーバーへのアクセス権も持っているため、ログインして必要に応じてデータベースサーバーを変更できます。データベース管理サービスは、これらのオペレーティングシステムレベルの調整を管理するための簡単なインターフェースも提供する場合があります。
この設定の短所は、データベースの正しい動作のために複数の関係者に依存することになるという事実に由来します。これにより、サービス中断の可能性が高まる可能性があります。また、クラウドプロバイダーが提供するデータベースサービスで利用できる内部的な最適化を見逃す可能性もあります。データベース管理サービスは、クラウドプロバイダーが公開するものにのみアクセスでき、基盤となる仮想化レイヤーまたはハードウェアレイヤーを最適化することはできません。
全体として、サードパーティの管理サービスの使用は、好みとテストに関するものです。パフォーマンスをテストし、料金体系がさまざまなレベルの使用状況でどのように影響するかを理解する必要があります。
まとめ
ここでは、ここで議論されたさまざまなオプションが互いにどのように比較されるかの概要を示します。
ホスティングオプション | ローカル開発マシン | 別のサーバー | クラウドプロバイダー管理 | サードパーティ管理 | アプリケーションプラットフォーム管理 |
---|---|---|---|---|---|
プロジェクト段階 | 開発 | 開発、ステージング、本番環境 | 開発、ステージング、本番環境 | 開発、ステージング、本番環境 | 開発、ステージング、本番環境 |
コスト | 追加コストなし | 変動。追加のサーバーの購入またはレンタルに加えて、追加の管理コスト。 サーバーの購入またはレンタルに加えて、追加の管理コスト。 | 選択と使用状況に応じて大きく変動します。 選択と使用状況に応じて大きく変動します。 | 選択に応じて大きく異なります 選択と使用状況に応じて大きく変動します。 | 大きく変動 |
パフォーマンス | 低 | 高い可能性 | 大きく変動 | 大きく変動 | 大きく変動 |
スケーラビリティ | なし | 高い可能性 | 高 | 高 | 高 |
管理の複雑さ | 低 | 高 | 低 | 低 | 低 |
追加の注意点 | ネットワーク構成は不要です。ローカル開発に適しています。 ローカル開発に適しています。 | 最も柔軟なオプション。また、最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 最も多くのハンズオン管理が必要です。ハードウェアまたはデータベースの専門知識を社内に持っており、管理に専念できる場合に適した選択肢です。 | アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 アプリケーションを実行できる同じクラウドプロバイダーによって提供される、高度にスケーラブルなソリューション。これにより、独自のサーバーを実行する手間をかけずに、ネットワーキングとパフォーマンスをさらに制御できます。 | サードパーティのマネージドデータベースには、クラウド提供のデータベースと同じ利点が多数あります。 サードパーティのマネージドデータベースには、クラウド提供のデータベースと同じ利点が多数あります。 ただし、サードパーティを通じてデータベースを管理することにより、基盤となるクラウドプロバイダーからデータベース管理を分離できます。 ただし、サードパーティを通じてデータベースを管理することにより、基盤となるクラウドプロバイダーからデータベース管理を分離できます。 ただし、サードパーティを通じてデータベースを管理することにより、基盤となるクラウドプロバイダーからデータベース管理を分離できます。 これにより、将来別のホストに移行することが容易になり、より強力な管理オプションが可能になる場合があります。 これにより、将来別のホストに移行することが容易になり、より強力な管理オプションが可能になる場合があります。 これにより、将来別のホストに移行することが容易になり、より強力な管理オプションが可能になる場合があります。 | アプリケーションによって提供されるデータベースサービス プラットフォームは、多くの場合、シンプルさに重点を置いています 他のほとんどの要因よりも管理とアクセス 要因。コストは劇的に変化する可能性があります 使用量によっては、重要です スケーリングと使用量がどのように 支払いに影響を与えるか監視することが重要です。 |
データベースをホストするための適切な選択は、アプリケーションの要件、開発段階、およびMySQLを独自に管理する能力に大きく依存します。さまざまな選択肢は、特定の時期または特定の組織にとってより適切となるこれらの要因間のトレードオフを提供します。