「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく全力で解説します。
解説する用語
Cloud SQLについて解説をします。
リレーショナルデータベースは利用する機会が多いデータベースのため、イメージはしやすいかと思います。
本記事では、Google Cloudの提供するリレーショナルデータベースにはどのような機能があるのかを解説していきます。
Cloud SQLとは
Cloud SQLとは、Google Cloudが提供するフルマネージドなリレーショナルデータベースです。Cloud SQLは、データベースの管理を簡単にし、開発に集中できる環境を提供します。特に、Webアプリケーションの開発や、データ分析の基盤として利用する場合に適しています。
詳細に説明するよ
Cloud SQLについて、詳細に説明をしていきます。Cloud SQLを理解するために必要なことを一つ一つ解説していきますので、知っている場合は適宜読み飛ばしてください。
リレーショナルデータベースとは
リレーショナルデータベース(RDB)とは、データを以下のような表形式で管理し、それらの表同士を関連付けて、複雑なデータの構造を表現できるデータベースのことです。
id | name | class |
1 | Harry Potter | Gryffindor |
2 | Draco Malfoy | Slytherin |
3 | Cedric Diggory | Hufflepuff |
4 | Luna Lovegood | Raven Craw |
データを規則的に管理することが出来るため、データの検索や更新を効率的に行うことが出来ます。
システム開発において、リレーショナルデータベースとして「MySQL」「PostgreSQL」「SQL Server」などがあります。
Cloud SQLとは
システム開発ではデータを保管するためのデータベースを使用することが多いと思います。データベースを使用する場合にはデータベースの管理が必要になります。
データベースのバージョンアップやデータの定期的なバックアップなど、いろいろな作業があるため結構大変です。
CloudSQLは、GoogleCloudが提供する、フルマネージドのリレーショナルデータベースサービスです。CloudSQLでは、「MySQL」「PostgreSQL」「SQL Server」の3つのデータベースエンジンを使用することが出来ます。
CloudSQLはフルマネージドなので、データベースの管理はGoogleCloudがやってくれます。
2つのエディションから選択する
Cloud SQLには、「Cloud SQL Enterprise」と「Cloud SQL Enterprise Plus」2つのエディションがあります。
Cloud SQL Enterprise Plusの方が料金が上がりますが性能が良くなります。高いパフォーマンスが求められるシステムの場合は、Cloud SQL Enterprise Plusを選択しましょう。
2つのエディションの違いについては、以下を参考にしてください。
Cloud SQLの構成イメージ
Cloud SQLの構成は以下のようになっています。
Cloud SQLは、インスタンスという単位で作成されます。
Cloud SQLインスタンスは、Compute Engineをもとに作成されています。つまり、Cloud SQLはCompute EngineインスタンスにDBのソフトウェアがインストールされたものということです。
Cloud SQLインスタンスは、IPアドレスを持っており、利用者はIPアドレスにアクセスしてデータベースに接続します。
高可用性(HA)構成
Cloud SQLでは、高可用性(HA)構成を設定することが出来ます。HA 構成では、データの冗長性が確保されます。HA構成を設定することで、障害が発生した場合でもデータベースを使用可能な状態にする確率を上げます。
以下が高可用性(HA)構成のイメージです。
リージョン内の別々のゾーンに「プライマリインスタンス」と「スタンバイインスタンス」が配置されます。通常時はプライマリインスタンスがクライアントからのリクエストを処理ます。
障害などでプライマリインスタンスが使用できなくなった場合に、スタンバイインスタンスに切り替わります。
スタンバイインスタンスに切り替わった場合もIPアドレスの変更などは必要ありません。
レプリケーション
1つのデータベースインスタンスに接続が集中することで、負荷が上がり、パフォーマンスが落ちてしまうことがあるかもしれません。
Cloud SQLでは、「リードレプリカ」という読み取り専用のインスタンスのコピーを作成する機能があります。リードレプリカを作成することで、元のインスタンスの負荷を減らすことが出来ます。
元となるインスタンスとは別のリージョンにリードレプリカを作成することも出来ます。このことをクロスリージョンレプリカと呼びます。
バックアップ
みなさんデータのバックアップは取得しておきたいですよね。理由は言わずもがなかと思います。
Cloud SQLでは、バックアップ機能を有効化することでデータのバックアップを取得することが出来ます。
バックアップの方法は「オンデマンドバックアップ」と「自動バックアップ」の2つの方法があります。
オンデマンドバックアップ
オンデマンドバックアップとは、ユーザーの好きなタイミングでバックアップを取得する方法です。リスクの高い作業をする前などにバックアップを取得すると良いかと思います。
自動バックアップ
自動バックアップとは、設定した時間内に自動でバックアップを取得する方法です。バックアップ作成中にシステムが止まることはありませんが、利用頻度の低い時間帯で設定することがおすすめされています。
メンテナンス
Cloud SQLはフルマネージドなサービスのため、自動でデータベースやOSを最新の状態に保ちます。
これらの更新のほとんどは、Cloud SQL インスタンスの稼働中に行われます。ただし、一部のシステム更新では短時間サービスの中断が必要になります。このようにサービスの中断が発生する更新を「メンテナンス」と呼びます。
メンテナンスの影響を最小限に抑えるために、メンテナンスの時間を指定することが出来ます。
Cloud SQLを使用する際には、メンテナンスによるサービス停止の時間が発生することを覚えておきましょう。
まとめ
- Cloud SQLとは、Google Cloudが提供するフルマネージドなリレーショナルデータベースです
- 高可用構成、レプリケーション、バックアップ、メンテナンスなどの機能があります
参考
本サイトでの注意事項
本サイトではなんとなく理解することを目的としているため正確性に欠ける表現があります。より正確な情報を詳しく知りたい場合は公式ドキュメントを参照ください。