Active Assist の Proactive Database Wellness: 新しい Cloud SQL の推奨事項のご紹介
Google Cloud Japan Team
※この投稿は米国時間 2022 年 10 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。
Cloud はデジタル トランスフォーメーションを加速しており、それにより組織ではより頻繁なアプリの構築とリリースが実現しています。そして、このトランスフォーメーションの中心にはデータベースがあります。しかし、Cloud へ移行するということは、ユーザーが管理しなければならないデータベース エンジンの数や種類が増えるということでもあります。また、各エンジンのスケーリングや新しいソフトウェアのリリースに追いつくためのオペレーションの負担により、データベースのチームは事後対応型になってしまっています。結果として、データベースの停止、パフォーマンスの低下、セキュリティ インシデント、不必要なトイルといったインシデントが増加し、それらすべてがイノベーションを鈍化させています。
Google では、チームが Cloud SQL のデータベース フリートを積極的に管理できるように、Google Cloud で使用されているツールのポートフォリオである Active Assist を活用した追加の Recommender をリリースして、Cloud のデプロイを最適化する分析情報と推奨事項の生成を可能にしていきます。Cloud SQL と Active Assist のチームは、Google Cloud のお客様からいただいた何百ものサポートケースを分析し、リソースの飽和状況、誤った構成、リソースの無駄といった最もよくあるデータベースの問題を特定しました。こうした問題は、通常、タイムリーに行動を起こすことで防止が可能です。そうした理由から、Google は Proactive Database Wellness の Recommender を開発しました。Cloud SQL フリートのセキュリティ、パフォーマンス、信頼性、費用対効果を高められるようにサポートしていきます。
MLB のような組織では、Cloud SQL の費用を最適化する Recommender を使用することで、財務的な整合や組織的な整合というメリットが実感できるようになっています。また、皆様もこうした一連の Proactive Database Wellness を活用することで、メリットが得られます。
「Active Assist の推奨事項を使用することで、60 以上のアプリケーションの Cloud SQL インスタンスを最適化してきました。このプロダクト(Proactive Database Wellness の一部である、オーバープロビジョニングされた Cloud SQL の Recommender)は、オーバープロビジョニングされたインスタンスを識別するだけではなく、ワークロードの費用やパフォーマンスの最適化に使用する特定のインスタンスに対する推奨事項も提供します。Active Assist は、費用最適化の機会に対する可視性を改善することで、長期的な FinOps 戦略の中心となる MLB の財務部門とエンジニアリング部門間のコラボレーションを促進します。」– Major League Baseball(MLB)、インフラストラクチャ エンジニアリング担当バイス プレジデント Felipe Negron 氏
Cloud SQL Recommender は、4 つの重要な柱ごとに整理されます。重要な柱ごとのプロダクトのポートフォリオと、それがデータベース インスタンスをどう最適化するかについて確認していきましょう。
Proactive Database Wellness の Recommender
セキュリティ
業界最高水準の信頼できるクラウドを提供するためには、お客様が Google のプラットフォームで安全なデプロイを簡単に実行できるように、パートナーとして積極的に関わることが Google の責任であると考えています。最も安全なデータベースを構築できるように、Cloud SQL のセキュリティ Recommender では、これからもセキュリティの脆弱性を検出し、リスクの高いセキュリティ構成をチェックすることでデータを保護して、お客様のセキュリティ対策の改善を支えていきます。
現在、Google では、セキュリティ Recommender のプレビュー版を提供しています。Recommender では、次のようなセキュリティ対策の改善の機会を提供しています。
1. 広範なパブリック IP でアクセス可能なインスタンスの Recommender
この Recommender では、インターネット経由で広範にアクセス可能なインスタンスを特定します。それにより、プライベート IP を使用するか、使用中の承認済みネットワークの範囲を制限することで、インスタンスにセキュリティ対策を施すことが可能となります。
2. 暗号化されていない接続が許可されているインスタンスの Recommender
この Recommender は、暗号化された接続を必要としないインスタンスを特定し、強制的に暗号化された接続を適用するようにサポートします。
3. 保留中のセキュリティ パッチを有するインスタンスの Recommender
この Recommender は、次回のメンテナンスの時間枠まで 2 週間以上ある状態で、致命的な脆弱性や露出(CVE)を見逃しているインスタンスを発見します。これは、メンテナンス スケジュールを再設定したことで重要な更新を見逃した場合か、セルフサービス メンテナンスで予定していたメンテナンスの時間枠よりも早く更新を行いたい場合に特に役立ちます。
4. 自動バックアップのないインスタンスの Recommender
この Recommender では、自動バックアップではないインスタンスも特定します。これにより、望まないデータの削除や変更が発生しデータが回復不能となったときでも、そのインスタンスにとって適切な構成であるかを確認することが可能となります。
セキュリティ Recommender をお試しになりたい場合は、プレビュー版の登録フォームにご記入ください。以降の手順についてご連絡いたします。
パフォーマンス
DevOps により、開発ライフサイクル全体の多くの所有権がソフトウェア デベロッパーに移りました。ところが、データベースのパフォーマンスに関しては、デベロッパーが問題を自己解決するスキルやツールを持ち合わせていない場合があります。デベロッパーが DBA に助けを求めても順番待ちになる可能性があります。DBA は非常に数が少ないので、ほぼすべての組織で希少なリソースになっています。本番環境アプリケーションでのパフォーマンスの問題は解決されず、カスタマー エクスペリエンスが低下する可能性があります。パフォーマンスの Recommender は、デベロッパー チームが MySQL インスタンスや Postgres インスタンスを構成する際に、ベスト プラクティスの導入をサポートします。また、こうした Recommender は、パフォーマンスの低下やダウンタイムといったリスクだけではなく、インスタンスが Cloud SQL のオペレーション ガイドラインのコンプライアンスから外れるリスクすらも増大させる一般的な構成ミスをチームが特定し、解決するのを支援します。
1. テーブル数過多を管理する MySQL インスタンス向けの Recommender
この Recommender は、インスタンスが応答しなくなり、オペレーションが実行不可となる可能性のある、50,000 テーブルに近いテーブル数となったインスタンスを検出します。そして、検出後にテーブル数を管理するためのオプションを提案します。
2. テーブルのオープン キャッシュ サイズを増やす MySQL インスタンス向けの Recommender
インスタンスのキャッシュがいっぱいで、常にテーブルを開閉しながらクエリを実行している場合は、Recommender が「table_open_cache」フラグを構成するためのガイダンスを提供し、インスタンスのパフォーマンスを改善します。
3. トランザクション ID のラップアラウンドを防止する Postgres インスタンス向けの Recommender
この Recommender は、インスタンスでトランザクション ID が不足しないように支援します。トランザクション ID は、トランザクションの開始時に割り当てられ、Postgres のガベージ コレクション プロセスである、バキューム プロセスが実行されるまでフリーズします。Postgres では、書き込みクエリの受け入れを停止するまでに、最大で 20 億のトランザクション ID を保有します。
Proactive Database Wellness の推奨事項を示すおすすめハブ
信頼性
データベースの信頼性の問題は、本番環境データベースのアプリケーションを扱っているときに特に気になる問題です。信頼性のカテゴリに属する Recommender では、データベースが不正使用される可能性のある状況を特定できるようにデベロッパーをサポートし、そうした状況に対処するための実用的手順を提供します。
この Recommender では、1 から 30 日以内にインスタンスでディスク容量が不足する可能性について機械学習(ML)を使用して推定し、ストレージ容量を追加する、ストレージを自動的に増やすように設定する、空き容量を増やすといったアクションが取れるようにします。
費用の最適化
多数のプロジェクトやデータベース インスタンスにわたって費用を管理している立場であれば、フリートに変化をもたらし、自信を持ってデプロイできるような最適なソリューションを見つけるためには、膨大なトイル、専門知識、時間がかかる場合があることをご存じのはずです。この問題に対処するために、Google では今年初めに、Cloud SQL の費用に関する分析情報と推奨事項を紹介し、費用の最適化を続けるために必要な労力を最小限に抑えながらこうした課題に取り組めるようにしました。費用に関するこれら 3 つの推奨機能は、過剰にプロビジョニングされた Cloud SQL インスタンスの検出とサイズ適正化、アイドル状態のインスタンスの検出、Cloud SQL の課金の最適化に役立ちます。
この Recommender では、ワークロードに対して必要以上に大きい、オーバープロビジョニングされたインスタンスのサイズの最適化を助けます。推奨インスタンス タイプは、ピーク ワークロードでもパフォーマンスを発揮できるだけの容量を確保しています。
この Recommender では、アイドル状態またはアクティブだけれども活動レベルが低く、シャットダウンしても問題ない可能性が高いインスタンスを ML を使用して高い精度で特定し、費用の削減をサポートします。
CUD の Recommender では、ワークロードを分析することで確約利用割引を活用できるように支援し、コミットメントを購入することでメリットが得られる場面を特定します。
推奨事項を確認する方法
Proactive Database Wellness の推奨事項は、Cloud SQL インスタンス リストのコンテキスト、おすすめハブ、BigQuery のデータセット、API の 4 つの異なる環境で利用可能です。
コンテキスト内のエクスペリエンス: DBA や DevOps のエンジニアを含むアプリケーション チームは、インスタンス リスト上の Cloud SQL サービスページで推奨事項を確認できます。推奨事項は、画面上部のバナーという形で、インスタンス上に直接、電球アイコン付きでハイライト表示されています。
コンテキスト内の Cloud SQL の推奨事項
おすすめハブ: 組織管理者やプロジェクト オーナーは、Cloud SQL の費用に関する推奨事項を含むあらゆる推奨事項を、おすすめハブから確認できます。おすすめハブは、Google Cloud コンソールで、あらゆるタイプの推奨事項の表示、優先度設定、適用の操作が行えるページです。
おすすめハブに表示された Cloud SQL の費用に関する推奨事項
BigQuery への推奨事項のエクスポート: すべての推奨事項の日次スナップショットを BigQuery データセットにエクスポートして傾向分析を実行するか、プロダクトやプロジェクトなどの機会を示す可視化したカスタム ダッシュボードを構築することができます。
Recommender API: 最後は、一般公開中の Recommender API です。ワークフローの統合や大規模な推奨事項の活用が実現します。
メリットの活用を開始する
Proactive Database Wellness は、セキュリティ、パフォーマンス、信頼性、費用の分野で Cloud SQL フリートの改善点を継続的にチェックしてくれるため、自分で確認する必要はありません。すべての機会が実用的手順としてハイライト表示されるため、懸念が問題になる前に対処可能となります。
皆様に一連の Proactive Database Wellness のすべての推奨事項をお試しいただき、ご意見、ご感想をいただけることを楽しみにしています。詳細についてやご意見は、active-assist-feedback@google.com までお気軽にご連絡ください。また、一般提供の前に新しい推奨事項を試したい方は、プレビュー プログラムにご登録ください。
- Active Assist プロダクト マネージャー Alfonso Hernandez
- Cloud SQL プロダクト マネージャー Nimesh Bhagat