Cloud SQL for MySQL のよくある質問

概要

Cloud SQL とはどのようなものですか?
Cloud SQL は、クラウドでフルマネージド SQL データベースを実現する使いやすいサービスです。Cloud SQL では、MySQL または PostgreSQL データベースを使用できます。
Cloud SQL を使用するとどのようなメリットがありますか?
Cloud SQL を使用すると、些末ではあっても必要であり時間がかかることが多いタスク(パッチの適用、アップデート、バックアップの管理、レプリケーションの構成など)を Google に任せることができ、ユーザーは優れたアプリケーションの開発に集中できます。さらに、標準のワイヤ プロトコルを使用しているため、アプリケーションやロケーションを問わずに簡単に接続できます。
Cloud SQL ではどのデータベース バージョンを使用できますか?アップデートはどのように管理されますか?

Cloud SQL for MySQL の場合、第 2 世代のインスタンスは MySQL 5.6 と 5.7 をサポートし、第 1 世代のインスタンスは MySQL 5.5 と 5.6 をサポートします。

マイナーなバージョン アップデートは、リリースされると同時にデプロイされます。ユーザー側でのアクションは何も必要ありません。アップデートの詳細については、インスタンスではどのような種類のメンテナンス シャットダウンを予期する必要がありますか?をご覧ください。

インスタンスの現行バージョンを確認するには、Google Cloud Platform Console でインスタンス名をクリックして [インスタンスの詳細] ページを開きます。もしくは、gcloud sql instances describe コマンドを使用することもできます。

Cloud SQL はすべてのデータベース機能をサポートしていますか?
Cloud SQL は MySQL の一般的な機能のほとんどをサポートしています。標準の MySQL と Cloud SQL が提供する機能のすべての違いの一覧については、Cloud SQL と標準 MySQL の機能の違いをご覧ください。
サイズや QPS に制限はありますか?
Cloud SQL インスタンスに対して 1 秒あたりのクエリ数(QPS)の制限はありません。接続数やサイズの制限と App Engine 固有の制限については、割り当てと制限をご覧ください。
Cloud SQL に変更があった場合、どのようにして通知を受け取ることができますか?
google-cloud-sql-announce フォーラムに登録し、そこに投稿された Cloud SQL に関するお知らせやニュースを受け取ることができます。
バグの報告、機能のリクエスト、質問がある場合はどうすればいいですか?
google-cloud-sql-discuss グループに対してバグの報告や機能のリクエストを行えます。質問は Stack Overflow で行うことができます。その他のサポート オプションについては、Cloud SQL のサポートのページをご覧ください。
トップへ戻る

スタートガイド

インスタンスを管理するのに最適な MySQL ツールは何ですか?
Cloud SQL で利用できる MySQL ツールは多数存在します。簡単なステートメントの実行には MySQL コマンドライン ツールを使用できます。より複雑なタスクを行う場合や、より多機能なデータベース開発環境を使用する場合は、Toad for MySQLMySQL Workbench をお試しください。詳しくは、管理ツールとレポート作成ツールをご覧ください。
どのようなストレージ エンジンを使用する必要がありますか?
MySQL 第 2 世代インスタンスの場合、サポートされているストレージ エンジンは InnoDB だけです。MySQL 第 1 世代インスタンスの場合は、データの強整合性を保証する InnoDB ストレージ エンジンをおすすめします。

すべてのテーブルが MyISAM 形式になっている mysqldump ファイルがある場合は、sed スクリプトでファイルをパイプ処理することにより、InnoDB 形式に変換できます。

mysqldump --databases [DATABASE_NAME] \
-h [INSTANCE_IP] -u [USERNAME] -p [PASSWORD] \
--hex-blob --default-character-set=utf8mb4 | sed 's/ENGINE=MyISAM/ENGINE=InnoDB/g' > [DATABASE_FILE].sql

警告: mysqldump ファイルに mysql スキーマが存在する場合は、この変換を行わないでください。これらのファイルは、MyISAM のままにする必要があります。

データが存在しない新しいインスタンスに使用ディスク領域が表示されるのはなぜですか?
Cloud SQL とデータベースはどちらも、インスタンスの作成時にシステム ファイル用とメタデータ用の領域を使用します。
MySQL 第 1 世代インスタンスの応答がときどき遅くなるのはなぜですか?
従量制料金プランでインスタンスの課金額を最小限に抑えるため、デフォルトでは 15 分アクセスがないとインスタンスはパッシブになります。その後インスタンスがアクセスされると、アクティブになるまでの間に多少の遅れが生じます。この動作は、インスタンスのアクティベーション ポリシーを構成することによって変更できます。詳細については、こちらをご覧ください。
どのアクティベーション ポリシーを使用する必要がありますか?
MySQL 第 2 世代インスタンスを使用している場合は、通常、アクティベーション ポリシーを ALWAYS に設定します。インスタンスを使用していない場合は、そのアクティベーション ポリシーを NEVER に設定してインスタンスの請求を回避できます。

MySQL 第 1 世代インスタンスをパッケージ料金プランで使用している場合は、インスタンスを使用していないときにオフにしてもコスト面でのメリットはないため、アクティベーション ポリシーを ALWAYS に設定することをおすすめします。

MySQL 第 1 世代インスタンスを従量制料金プランで使用している場合は、アクティベーション ポリシーを ON DEMAND に設定することで、コストを削減できます。このポリシーに設定すると、インスタンスは非アクティブ状態が 15 分間続くと自動的にオフになるため、インスタンスを使用していないときには課金されなくなります。インスタンスのアクティベーション ポリシーを ON DEMAND にした場合、インスタンスがオフのときにアクセス リクエストを受け取ると、リクエストに応える前にインスタンスが起動しなければならないため、若干の遅延が発生します。

トップへ戻る

データ ストレージとレプリケーション

データはどこに保存されますか?

MySQL 第 2 世代インスタンス: インスタンス データは、インスタンスが存在するリージョンに保存されます。 デフォルトでは、Cloud SQL は、冗長性を確保するためにバックアップ データを 2 つのリージョンに保存します。1 つの大陸に 2 つのリージョンがある場合、バックアップ データはどちらも同じ大陸に置かれます。オーストラリアにはリージョンが 1 つしかないため、シドニー リージョンのバックアップ データはアジアに保存されます。サンパウロ リージョンの場合、バックアップ データは米国のリージョンに保存されます。

MySQL 第 1 世代インスタンス: インスタンス データとバックアップ データは、インスタンスが存在する大陸に保存されます。

ゾーンとは何ですか?

ゾーンは、リソースを実行できる、特定の地理的な場所にある独立したエンティティです。たとえば、us-central1-a という名前のゾーンは、米国中部のロケーションを示します。

デフォルトでは、ゾーンの停止に対するフォールト トレランスを提供するため、MySQL 第 1 世代インスタンスのデータはレプリケーションされ、サービスは複数のゾーンに分散されます。MySQL 第 2 世代インスタンスの場合、ゾーン間のフォールト トレランスは、インスタンスの高可用性を構成する(フェイルオーバー レプリカを追加する)ことで実現できます。すべての本番環境インスタンスで高可用性構成を使用することを強くおすすめします。

ゾーンの詳細については、Compute Engine のドキュメントのゾーンリソースをご覧ください。

ストレージにはどのような制限がありますか?
ストレージ制限については、割り当てと制限をご覧ください。
どのようにデータをレプリケーションしますか?

MySQL 第 2 世代インスタンス: 第 2 世代のフェイルオーバー レプリカでは、準同期レプリケーションが使用されます。第 2 世代のリードレプリカは、非同期レプリケーションを使用します。

MySQL 第 1 世代インスタンス: 第 1 世代インスタンスを作成すると、データはリージョン内のすべてのゾーンに自動的にレプリケーションされます。

Cloud SQL のフェイルオーバーはどのように動作しますか?

フェイルオーバーの詳細については、高可用性構成の概要をご覧ください。

データは暗号化されますか?
Cloud SQL ユーザーのデータは、データベース テーブル、一時ファイル、バックアップに保存されるときに暗号化されます。外部接続は、SSL を使用するか、Cloud SQL Proxy を使用して暗号化できます。
保存されているデータの暗号化はどのように管理されますか?

データの暗号化には、256 ビットの Advanced Encryption Standard(AES-256)以上の暗号化方式と対称鍵が使用されます。つまり、データ保存時の暗号化とデータ使用時の復号に同じ鍵が使用されます。これらのデータ鍵はそれ自体が、安全なキーストアに保存されているマスター鍵を使用して暗号化され、定期的に変更されます。

詳しくは、Google Cloud での保存時の暗号化をご覧ください。

転送中のデータの暗号化はどのように管理されますか?

すべての転送データは、Google が管理している物理的境界または Google のために管理されている物理的境界の外へ出るときに、1 つ以上のネットワーク レイヤで暗号化され認証されます。これらの物理的境界の内部で転送されるデータについては、認証は通常行われますが、暗号化はデフォルトでは行われない場合があります。そのため、ユーザーの判断で、脅威モデルに基づいて追加のセキュリティ対策を適用できます。たとえば、Cloud SQL へのゾーン内接続に対して SSL を構成できます。

詳しくは、Google Cloud での転送データの暗号化をご覧ください。

どのような種類のリードレプリカを作成できますか?

リードレプリカの詳細については(各タイプの用途など)、レプリケーションのオプションをご覧ください。

インスタンスがリードレプリカであるかどうかはどうすればわかりますか?
Google Cloud Platform Console を使用してすべての Cloud SQL インスタンスを表示し、インスタンスがマスター インスタンスとリードレプリカ インスタンスのどちらであるかを確認できます。また、Cloud SDK を使用してインスタンスがマスター レプリカとリードレプリカのどちらであるかを確認することもできます。
トップへ戻る

バックアップとリカバリ

どのようにすればインスタンスを復元できますか?

バックアップを復元するには、Google Cloud Platform Console または gcloud コマンドライン ツールを使用します。詳しくは、インスタンスを復元するをご覧ください。

MySQL インスタンスを特定の時点に復元するには、ポイントインタイム リカバリを使用します。詳しくは、ポイントインタイム リカバリを実行するをご覧ください。

バックアップにはどのくらいの費用がかかりますか?

MySQL 第 2 世代インスタンス: 最新の 7 個の自動バックアップとすべてのオンデマンド バックアップが保持されます。これらにはバックアップ ストレージの料金がかかります。バイナリログは(バックアップ領域ではなく)ストレージ領域を使用するため、ストレージとして課金されます。

MySQL 第 1 世代インスタンス: 最新の 7 個のバックアップのストレージがインスタンスのコストに含まれます。バイナリログのスペースは、インスタンスで使用されるストレージにカウントされます。

インスタンス ストレージとインスタンスの料金については、料金をご覧ください。

ポイントインタイム リカバリによってパフォーマンスにはどのような影響がありますか?
ポイントインタイム リカバリを使用するには、バイナリログを有効にする必要があります。これはデータベースへのすべての更新が独立したログに書き込まれることを意味し、これによって書き込みパフォーマンスがわずかに低下します。バイナリログ ファイルのサイズに関係なく、読み取りオペレーションのパフォーマンスはバイナリログの影響を受けません。
トップへ戻る

インスタンスの管理

データベースを拡大または縮小することはできますか?

MySQL 第 2 世代インスタンス: ダウンタイムを発生させることなく、いつでもインスタンスで使用可能なストレージ容量を増やすことができます。インスタンスのストレージのサイズを減らすことはできません。

また、インスタンスの空き容量が減ってきたときに自動的にストレージ容量を増やすように構成することもできます。 詳細については、こちらをご覧ください。

MySQL 第 1 世代インスタンス: データベースの階層をいつでも変更できます。これにはインスタンスを再起動する必要があり、数秒かかることに注意してください。

Cloud SQL の管理には必ず Google Cloud Platform Console を使用しなければなりませんか?
いいえ。Console から実施できる管理タスクはすべて、Cloud SQL API を使用したプログラム、または gcloud コマンドライン ツールを使用したスクリプトによっても行うことができます。
どうすれば削除したテーブルのスペースを再利用できますか?
データベースからテーブルを削除した後に Google Cloud Platform Console で確認したとき、テーブルを削除したことで解放されたはずのスペースが、インスタンスの [ストレージの使用量] に反映されていないことがあります。MySQL 5.5 を実行するインスタンスでは、innodb_file_per_table フラグがデフォルトで OFF に設定されています。このため、InnoDB のデフォルトのテーブル スペースが縮小されることはありません。この構成でスペースを再利用するには、より小さなデータベースから新しいインスタンスを作成するか、または innodb_file_per_table フラグの値を ON に変更します。データベース フラグの変更については、データベース フラグを構成するをご覧ください。
データの変更を追跡するにはどうすればよいですか?
データの変更を追跡するには、インスタンスのバイナリログを有効にします。データの変更を追跡しておくと、誤ってデータが失われたときに元に戻すことができます。DROP DATABASE コマンドによるものなど、偶発的なデータの損失が発生した場合は、データ損失が発生した直前のバイナリログの時点まで復元できます。詳しくは、ポイントインタイム リカバリをご覧ください。
インスタンスではどのような種類のメンテナンス シャットダウンを予期する必要がありますか?

第 2 世代インスタンス: 第 2 世代インスタンスでは、インスタンスのメンテナンス時間帯を選択できるので、メンテナンスの再起動が発生するタイミングを制御できます。また、あるインスタンスがプロジェクトの他のインスタンスよりアップデートを早く受け取るか遅く受け取るかを指定することもできます。詳細については、こちらをご覧ください。

第 1 世代インスタンス: アップグレード、ゾーン間の移行、他のインフラストラクチャ作業を行うため、インスタンスは定期的に再起動されます。データは複数のロケーションにレプリケートされているので、通常、インスタンスの中断は数秒から数分です。App Engine アプリケーションに従うように構成されている第 1 世代インスタンスも、アプリケーションの移動によるレイテンシを最少にするため、新しい場所で再起動される場合があります。これには、短時間のレイテンシの上昇と、通常は数秒間の利用不能が伴う場合があります。

メンテナンス シャットダウンなどでインスタンスに短時間アクセスできなくなる状況に対処できるようにアプリケーションを設計することをおすすめします。メンテナンス シャットダウンに対するアプリケーションの動作は、同じ効果のあるインスタンスの再起動でテストできます。一般に、短時間だけ有効な接続と、拒否された接続を再試行するための指数的バックオフを使用することをおすすめします。詳しいガイダンスについては、どのように接続を管理する必要がありますか?をご覧ください。

MySQL インスタンスの場合、mysqld のシャットダウンにかかる時間は 1 分に制限されています。シャットダウンがこの時間内に完了しない場合、mysqld プロセスは強制的に終了されます。この場合、サーバーがクエリを処理できるようになる前に InnoDB ストレージ エンジンによってクラッシュリカバリが行われるため、起動時間が長くなります。クラッシュリカバリが完了するまでの時間はデータベースのサイズによって異なり、データベースが大きいほど復元に要する時間は長くなります。

新しいバージョンのロールアウトが開始されると、リリースノートに注記が追加されます。ただし、必ずしもすべてのインスタンスが同時に新しいリリースにアップグレードされるとは限らないことに注意してください。

特定のデータベースをインポートまたはエクスポートできますか?
はい。インスタンスの特定のデータベースまたはすべてのデータベースをインポートまたはエクスポートできます。詳しくは、データのインポートまたはデータのエクスポートをご覧ください。
CSV ファイルをインポートまたはエクスポートできますか?
はい。CSV ファイルをインポートまたはエクスポートすることができます。詳細については、CSV ファイルの作成をご覧ください。
インスタンスのデータのインポートまたはエクスポートには Cloud Storage アカウントが必要ですか?
Cloud SQL は、Cloud Storage バケットを使用したデータベース(圧縮または非圧縮の SQL ダンプファイル)および CSV ファイルのインポートとエクスポートをサポートしています。Cloud Storage バケットを使用してインポートまたはエクスポートするには、GCP アカウントを登録してバケットを作成するか、別のアカウントの Cloud Storage バケットにアクセスできる必要があります。詳細については、データのインポートまたはデータのエクスポートをご覧ください。
インポート オペレーションでの ERROR_RDBMS は何を意味しますか?
このエラーは、データ インポートのオペレーション中に MySQL がエラーを返した場合に発生します。一般的な原因は、無効な構文、定義されていないデータベースやテーブルの使用、SUPER 権限を必要とする MySQL ステートメントの実行などです。
削除したインスタンスのインスタンス名を再利用できますか?
はい、ただし削除直後にはできません。インスタンス名は、最長で 1 週間は再利用できません。
cloudsqladmin データベース ユーザーとは何ですか?
すべての Cloud SQL インスタンスには、cloudsqladmin という名前のデータベース ユーザーが含まれます。SHOW GRANTS FOR cloudsqladmin@localhost を実行したときにこのユーザーに気付くことがあります。一部のインスタンスでは、システム ユーザー テーブルにもこのユーザーが表示されます。このユーザー アカウントは、インスタンスのデータにアクセスする必要のある自動プロセス(インスタンスのバックアップや、インポートまたはエクスポートなど)によって使用されます。
GRANT ALL を使用するにはどうすればよいですか?
Cloud SQL は SUPER 権限をサポートしないため、GRANT ALL PRIVILEGES ステートメントは機能しません。代わりの方法として、GRANT ALL ON `%`.* を使用できます。
どうすればインスタンスのトランザクション ログにアクセスできますか?
MySQL インスタンスでは、インスタンスのバイナリログを有効にしていて(バイナリログを有効にするを参照)、インスタンスの IP アドレスを構成している場合(IP 接続のためのアクセスを構成するを参照)、MySQL の標準の mysqlbinlog ユーティリティを使用してインスタンスのトランザクション ログを調べることができます。
Cloud SQL ではどの程度のトランザクション分離が可能ですか?

MySQL インスタンス: Cloud SQL では REPEATABLE READ トランザクション分離が可能です。現行のセッションに対してトランザクションの分離レベルを変更することはできますが、通常はデフォルト値の使用が推奨されます。詳細については、MySQL ドキュメントでトランザクションの分離レベルをご覧ください。

トップへ戻る

料金と課金

Cloud SQL を試すにはどうすればよいですか?
最小のインスタンスは db-f1-micro です。このインスタンスを使用してサービスを試すことができます。共有コア インスタンスは SLA の対象外であるので注意してください。
料金プランは、従量制とパッケージのどちらがいいですか?
従量制とパッケージの料金オプションは、第 1 世代のインスタンスにのみ適用されます。経験則として、インスタンスを 1 か月あたり 450 時間以上使用する場合は、パッケージ プランの方が経済的です。料金プランの詳細については、料金をご覧ください。
料金プランは変更できますか?
従量制とパッケージの料金オプションは、第 1 世代のインスタンスにのみ適用されます。インスタンスの料金プランは 1 か月に 3 回まで変更できます。インスタンスの料金は、1 日の終わり(米国太平洋時間)に有効なプランをもとに計算されます。1 日のうちに何度でもプランを変更できますが、これは 1 か月に可能な変更回数 3 回のうちの 1 回と数えられます。

第 1 世代インスタンスの料金プランは、設定を編集することによって変更できます。料金プランを変更するには、Google Cloud Platform Console に移動し、インスタンスを含むプロジェクトを選択した後、Google Cloud SQL を選択します。インスタンスの一覧から料金プランを変更するインスタンスを選択し、料金の設定を編集します。

プロジェクトではインスタンスをいくつ作成できますか?
インスタンスの制限については、割り当てと制限をご覧ください。
どれくらいのサイズのデータベース インスタンスが必要ですか?RAM はどれくらい必要ですか?
一般に、RAM と CPU が多い大きなインスタンスを選択すると、データベースのパフォーマンスが向上します。これにより、結合、ORDER BY、GROUP などを含む計算量の多い多数のクエリのパフォーマンスが向上します。ただし、単一の行が影響を受ける更新のパフォーマンスはそれほど変わりません。インスタンスのサイズと料金の詳細については、料金をご覧ください。
インスタンスの使用時間はどのようにして算出されますか?

MySQL 第 2 世代インスタンス: インスタンスがアクティブになっている間(アクティベーション ポリシーが ALWAYS に設定されている間)、1 分単位で課金されます。

MySQL 第 1 世代インスタンス: 従量制料金プランを使用している場合、インスタンスがアクティブになっている間 1 分単位で課金されます。

アクティベーション ポリシーとして ON_DEMAND(デフォルト値)を使用している場合は、SQL プロンプト、外部アプリケーション、または App Engine アプリケーションからインスタンスへのアクセスが発生したときにインスタンスが起動し、最後のアクセスが完了してから 15 分間はアクティブ状態が維持されます。この時間が過ぎると、インスタンスはシャットダウンされます。インスタンスがアクティブ状態でないときには課金されません。

クライアントが接続している限り、インスタンスはアクティブ状態が続くことに注意してください。これにはアイドル接続状態を含みます。MySQL クライアントで SHOW PROCESSLIST コマンドを実行することによって、インスタンスへの接続の一覧を表示できます。その後、KILL コマンドを使用して接続を切断できます。インスタンスを再起動して、すべての接続を強制終了することもできます。

アクティベーション ポリシーが ON_DEMAND でパッケージ料金プランを使用するインスタンスは、最後のアクセスから 12 時間、アクティブ状態を保ちます。

アクティベーション ポリシーを修正することで、インスタンスのアクティベーション動作を変更できます。詳細についてはこちらをご覧ください。

ストレージはどのようにして算出されますか?

MySQL 第 2 世代インスタンス: ストレージはインスタンス用にプロビジョニングされたストレージの量に基づいて算出されます。バックアップ用のストレージは、バックアップが使用しているスペースの量によって課金されます。ストレージへの課金はインスタンスがアクティブであるかどうかにかかわらず発生します。

MySQL 第 1 世代インスタンス:

ストレージはインスタンスが使用するファイル スペースの容量を基に算出されます。ストレージは GB 単位で課金され、料金が使用量とできる限り一致するように 1 分ごとに測定されます。ストレージの料金は、インスタンスがアクティブであってもなくても発生します。スケジュール バックアップ サービスを使用して作成されるバックアップのストレージは課金されません。

請求額はどこで確認できますか?
Google Cloud Platform Console の [お支払い] タブに、前回の請求書の発行後に発生したインスタンスの課金額が表示されます。
「従量制」プランを使用しているアイドル状態の第 1 世代インスタンスで料金が発生するのはなぜですか?

インスタンスのスケジュール バックアップを有効にしてあるかどうかを確認してください。Cloud SQL のバックアップは、最後のスケジュール バックアップより後にインスタンスのデータが変更された場合にのみ行われます。スケジュール バックアップが行われると、インスタンスはその間だけアクティブになるため、「従量制」の課金が発生します。

インスタンスが上限サイズに達したらどうなりますか?

MySQL 第 2 世代インスタンス: プロビジョニングされているストレージ サイズにインスタンスが達し、ストレージの自動増量が有効にされていないか、または構成されている制限に達した場合、ユーザーがストレージ サイズを増やすまで、データベースへのそれ以上の書き込みは許可されません。ストレージ サイズを増やすためにインスタンスを再起動する必要はなく、ダウンタイムも発生しません。

MySQL 第 1 世代インスタンス:

インスタンスのストレージ容量が選択したプランで許容される上限に達すると、データを削除してサイズを削減するまで、データベースへの書き込みはできなくなります。

インスタンスが停止しているのはなぜですか?
おそらく GCP アカウントに関する問題が原因です。請求サポート リクエストを提出することで、課金の状態を確認できます。請求に関する問題を解決してから数時間以内に、インスタンスは実行可能なステータスに戻るはずです。停止された第 2 世代インスタンスは 90 日後に削除されることに注意してください。
インスタンスが削除されたのはなぜですか?
90 日間停止されている MySQL 第 2 世代インスタンスは削除されます。これは SUSPENDED 状態のインスタンスに適用されます。RUNNABLE 状態で停止しているインスタンスは削除されません。
Cloud SQL アカウントをキャンセルするにはどうすればよいですか?
プロジェクトで Cloud SQL を無効にするには、Google Cloud Platform Console に移動し、プロジェクトを選択してから、[API] サービスを選択して API ダッシュボードを開きます。Cloud SQL API を探し、その API の [無効にする] をクリックします。
課金を無効にするにはどうすればよいですか?
Google Cloud Platform Console で、プロジェクトの [課金と設定] パネルの [課金を無効にする] をクリックすることによって、課金を無効にできます。課金を無効にすると、Cloud SQL サービスも無効になります。課金を無効にする前に、Cloud SQL サービスを無効にしてもよいことを確認してください。

課金を無効にすると、課金サイクルの初日からキャンセルした時点までに発生した料金に関する最後の請求が届きます。

トップへ戻る

App Engine での Cloud SQL の使用

App Engine から MySQL 第 2 世代インスタンスに接続できますか?
App Engine アプリケーションがスタンダード環境とフレキシブル環境のどちらで実行されているかにかかわらず、App Engine アプリケーションから第 2 世代インスタンスに接続できます。詳しくは、App Engine からの接続をご覧ください。
米国の App Engine から EU の Cloud SQL インスタンス(またはその逆)にアクセスできますか?

MySQL 第 1 世代インスタンスに接続する場合、App Engine アプリケーションは Cloud SQL インスタンスと同じリージョンにあり、なおかつスタンダード環境で実行されている必要があります。

MySQL 第 2 世代インスタンスに接続する場合、App Engine アプリケーションは同じリージョンにある必要はなく、スタンダード環境とフレキシブル環境のどちらで実行されていてもかまいません。ただし、Cloud SQL インスタンスと App Engine アプリケーションの距離が大きく離れていると、データベース接続のレイテンシが高くなります。

どの GCP データベース サービスが適していますか?
これはアプリケーションの要件によって異なります。Google Cloud Platform では、データを格納したり取得したりするための多数のサービスが提供されています。詳しくは、ストレージ オプションをご覧ください。
App Engine 開発用サーバーを使用するためにローカルのデータベース サーバーをインストールする必要はありますか?
いいえ。開発用サーバーで実行するときは、App Engine から Cloud SQL とローカルにインストールされたデータベース サーバーのどちらを使用するかを構成できます。
インスタンスにアクセスするにはどの言語を使用する必要がありますか?
App Engine からインスタンスに接続する際に使用できる言語はいくつかあります。詳しくは、App Engine からの接続をご覧ください。

App Engine を使用しない場合は、対応するコネクタまたは API が用意されている任意の言語を使用できます。サポートされている言語の一覧については、MySQL リファレンス マニュアルのコネクタと API の章をご覧ください。

Django を Cloud SQL で使用できますか?
はい、Cloud SQL は Django に対応しています。Django スタートガイドをご覧ください。
Python クエリ文字列ではどのプレースホルダを使用できますか?
Python の場合、パラメータの置換に使用できるのは %s 形式のコードだけです。このため、次のステートメントは無効です。cursor.execute('INSERT INTO entries (guestAge) VALUES (%d)', (age))
どのように接続を管理する必要がありますか?

データベース接続を効果的に管理することは、データベース アプリケーション開発の重要な側面です。効果的な接続管理には、接続プールや指数バックオフの使用が含まれます。これらの手法をさまざまな言語とフレームワークで使用する例については、データベース接続を管理するをご覧ください。

インスタンス接続制限の詳細については、割り当てと制限をご覧ください。

「無効な接続 ID」というメッセージの SQLException の意味は何ですか。
接続がサーバーでオープンではなくなり、クライアントで破棄するべきであることを意味しています。このような接続はすでにクローズされているため、close を呼び出す必要はありません。
App Engine の外部からプログラムで Cloud SQL インスタンスにアクセスすることはできますか?
はい。サポートされている任意の言語を使用して、外部アプリケーションからプログラムで Cloud SQL インスタンスにアクセスできます。また、JDBC を使用して接続することもできます。これには Cloud SQL データベースにアクセスするための Apps Script スクリプトの作成が含まれます。外部アプリケーションから接続するをご覧ください。
トップへ戻る
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...