コンテンツに移動
データベース

Cloud SQL for SQL Server を最大限に活用するには

2021年6月30日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 6 月 18 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud では、クラウドへの移行時に何から何まで一から始める必要はないと考えています。それこそが、Windows ワークロードの移行やモダナイゼーションなど、Google Cloud がエンタープライズ ワークロードの実行方法に多数の選択肢を提供しようと取り組んでいる理由です。

2019 年には Cloud SQL for Microsoft SQL Server が発表され、既存のオンプレミスの SQL Server データベースやアプリケーションをクラウドに移行できるようになりました。Google Cloud のフルマネージド リレーショナル サービスである Cloud SQL は、企業がインフラストラクチャだけでなくイノベーションにも注力できるようにするために欠かせないソリューションです。

本投稿では、Cloud SQL for SQL Server を活用するためのベスト プラクティスをご紹介し、いつ、どのように SQL Server のマネージド サービスを利用するべきかを解説いたします。

項目は以下のとおりです。

  • Cloud SQL for SQL Server のプロビジョニング

  • アナリティクスへのデータの接続

  • データの安全性の確保

  • 高可用性について

その他のデータベース ソリューションをお探しの方は、Google Cloud のマネージド データベース サービスに関するページをご参照ください。

デプロイの設定を開始する際には、重要な検討事項がいくつかあります。

1. SQL Server インスタンスのプロビジョニング

Cloud SQL for SQL Server では、PostgreSQL や MySQL と同じ標準化されたマシンタイプを提供しており、インスタンスに対して幅広いリソースをフル活用できます(最大 96 の vCPU コア、624 GB の RAM、30 TB の SSD)。

Cloud SQL for SQL Server の独自のメリットとしては、HDD のオプションは利用できず、SSD 上でのみ動作する、ということが挙げられます。SSD のオプションのみを提供することで、復元性が高まり、問題の発生が抑制される、という結果につながっています。マシンの作成や既存のインスタンスの変更は、他の Cloud SQL インスタンスと同じように、コンソール、gcloud コマンド、または API を通じて行うことができます。

インスタンスにデータを投入するために、Cloud SQL ではネイティブ バックアップ(BAK)ファイルをインポートすることができ、オフラインでもデータを確認できます。中断を最小限に抑えてデータをアクティブに取り込む場合は、トランザクション レプリケーションを選択して、Cloud SQL をサブスクライバーとして設定します。

Cloud SQL インスタンスが実行されると、追加のパラメータや設定を行うことができます。たとえば、必要なストレージをすべて事前にプロビジョニングするのではなく、ストレージをオートスケーリングすることをおすすめします。Cloud SQL では、ディスクのストレージの自動増量を設定できるため、プロジェクトの成長に合わせて適切にストレージが割り当てられているかを心配する必要はありません。

また、データベース フラグを SQL Server のパラメータの調整、オプションの調整、インスタンスの構成や調整など、多くの SP_configure の構成に使用できます。これには、データベースのデフォルトの並べ替え規則、大文字と小文字の区別、アクセントの感度を定義する照合の種類の設定も含まれます。

高可用性(HA)構成を最大限に利用し、Cloud SQL の 99.95% のサービスレベル契約(SLA)を最大限に活用するためには、地域別の可用性を選択して、変更を行うのに最適な時期に基づいてメンテナンス ウィンドウを構成します。Google Cloud では、可能な限り回数を抑えて迅速にメンテナンスを行うことで、中断を最小限に抑えるよう努めていますが、サービスの安全性と高可用性を維持することが最優先事項です。

自動バックアップを、障害復旧、あるいは他のクラウドやオンプレミスの別のインスタンスへの復元に活用するための最良の方法について、多くの質問が寄せられています。デフォルトでは、自動バックアップは毎日、設定した時間に実行されます。これらは永続ディスクのストレージ スナップショットにすぎず、データベース エンジンを利用していないため、Cloud SQL のパフォーマンスには影響しません。より頻繁にバックアップを行う場合は、API や gcloud コマンドを使って手動でバックアップを設定してください。ただし、手動バックアップの場合はバックアップの保持を自分で管理する必要があるので、自動バックアップと合わせて手動バックアップを活用することをおすすめします。

2. 高可用性構成について

簡単に言うと、高可用性構成では、データの冗長性が確保されます。ゾーンやインスタンスが利用できなくなっても、データはクライアントに提供されます。これはどのような仕組みで実現されているのでしょうか。

HA 用に構成された Cloud SQL インスタンス(リージョン インスタンスとも呼ばれる)は、プライマリ ゾーンとセカンダリ ゾーンに配置され、プライマリ インスタンスとスタンバイ インスタンスの両方を含みます。SQL Server のレプリケーションとは異なり、Cloud SQL はリージョン永続ディスク(RePD)を使用してダウンタイムを削減します。

各ゾーンの永続ディスクへの同期レプリケーションにより、プライマリ インスタンスへのすべての書き込みがスタンバイ インスタンスに同期されます。プライマリ インスタンスが約 60 秒間応答しなかったり、ゾーンに障害が発生したりする場合、HA 構成では同じ IP のスタンバイ インスタンスに切り替わり、アプリケーションからデータを利用できる状態が維持されます。

また、高可用性やリージョン インスタンスでは、費用が発生するのはアクティブなリソースの単一ライセンスに対してのみであるというメリットもあります。詳細については、こちらのライセンス料金をご覧ください。

3. セキュリティに対する配慮

Google Cloud では、セキュリティの確保を最優先事項としています。それこそが、クラウド全体のプラットフォーム機能や差別化されたセキュリティ機能を多数提供し、Cloud SQL を含むすべてのプロダクトやサービスで可能な限り一貫性と安全性を確保する理由です。

Google Cloud は、デフォルトですべての保存データを暗号化します。転送中のデータは、Google のネットワーク外を移動する際には暗号化されますが、Google のネットワーク内ではデフォルトでは必ずしも暗号化されない場合があります。パブリック IP を使用してインスタンスに接続する際には、SSL / TLS 証明書を使用してデータを安全に保つことができます。また、追加のセキュリティ対策を施すことも可能です。さらに、Cloud Key Management の一環として顧客管理の暗号鍵(CMEK)を使用することで、Cloud SQL の保存データに対して独自の暗号鍵を追加できます。

Cloud SQL では、3 つの接続オプションがあります。

  • プライベート IP: これは、SQL Server データベースの Cloud SQL インスタンスに接続してアクセスする最も簡単で安全な方法です。VPC または peer-to-VPC ネットワークの一部として設定できます。

  • パブリック IP(Cloud SQL Proxy を使用): 異なる環境やクラウドからパブリック IP で接続する必要がある場合は、可能な限り Cloud SQL Proxy を使用することをおすすめします。Cloud SQL Proxy は、他のネットワークへの認証を必要とせずに、SSL 接続とその設定を管理します。

  • パブリック IP- 手動で管理したい場合、Cloud SQL インスタンスのパブリック IP アドレスを使用できます。しかし、新たなリスクや脅威にさらされないよう、セキュリティのベスト プラクティスに沿って使用することを強くおすすめします。

最後は、ログイン証明書についてです。Cloud SQL for SQL Server では、サービスの整合性とセキュリティを確保するために、デフォルトの SQL Server ユーザーを提供しています。デフォルト以上の権限を付与したい場合は、構文で明示的に指定します。また、複数の SQL Server ユーザーでデータアクセスを管理したい場合は、SQL Server ユーザーを増やすことができます。

4. SQL Server のデータを価値ある分析情報に変換する

SQL Server のお客様からよくお聞きするリクエストに、SQL Server Recording Studio、Analytics Studio、Integration Services などのアナリティクス サービスを使いたいというものがあります。

お好みのサービスを使用するには、Compute Engine で個別にサービスを実行してから、Cloud SQL インスタンスに接続することをおすすめします。Query Optimizer や他の Microsoft プロダクトなどのネイティブ ツールも、インスタンスに直接接続することで、Cloud SQL で使用できます。

また、Cloud SQL では、データを Google Cloud の強力な分析エコシステムの他サービスに取り込み、スタックのモダナイズを図ることができます。たとえば、標準的な JDBC 接続は、Dataflow や Cloud Data Fusion などの一般的なサービスに参加することができ、データ変換やデータ分析を目的としたより複雑なパイプラインを作成することが可能です。

Video Thumbnail

Cloud SQL for SQL Server のベスト プラクティスについては、こちらのドキュメントをご覧ください。

-Cloud SQL for SQL Server 担当プロダクト マネージャー Ori Kashi

-データベース移行エンジニア Shashank Agarwal

投稿先