プライベート ネットワークにインスタンスを作成してから、データベースをインポートする

別のプラットフォームから Cloud SQL for MySQL にワークロードを移行する場合、多くの場合、 Google Cloud コンソールを使用して、以前の環境からエクスポートした SQL ダンプファイルからデータをインポートします。

このチュートリアルでは、必要な Google Cloud リソースを作成し、SQL データベースを Cloud SQL for MySQL インスタンスにインポートする方法について説明します。このチュートリアルでは、プライベート サービス アクセスによる Virtual Private Cloud(VPC)ネットワークの使用や、Cloud SQL インスタンスのプライベート IP の有効化など、Cloud SQL for MySQL への移行時のベスト プラクティスについて説明します。

手順を進める際は、特に指定がない限り、設定のデフォルト値をそのまま使用してください。

目標

  1. サンプル SQL ダンプファイルをダウンロードします。
  2. プライベート サービス アクセスを使用して新しい Virtual Private Cloud ネットワークを作成します。
  3. Cloud Storage バケットを作成し、SQL ダンプファイルをアップロードします。
  4. プライベート IP 用に構成された Cloud SQL for MySQL インスタンスを作成します。
  5. ユーザーを作成します。
  6. ダンプファイルから新しいデータベースにインポートします。
  7. 構造を表示してクエリを実行し、データベースが正常にインポートされたことを確認します。

費用

このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。

新規の Google Cloud ユーザーの方は、無料トライアルをご利用いただける場合があります。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  10. 必要なロール

    このチュートリアルを完了するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

    サンプル データベース ダンプファイルを取得する

    このチュートリアルでは、国コードと世界の首都を含む小さなサンプル データベースを使用します。

    countries データベースの SQL ファイルをローカル環境にダウンロードします。countries-mysql.sql

    プライベート サービス アクセスを使用してネットワークを作成する

    残りのリソースを作成する前に、サービスを実行する VPC ネットワークを作成します。プライベート サービス アクセスを使用すると、内部 IPv4 アドレスを使用して外部ネットワークと Cloud SQL for MySQL の間にプライベート接続を確立することで、Cloud SQL データベースへのアクセスを制限できます。

    1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

      [VPC ネットワーク] ページに移動

    2. [VPC ネットワークを作成] をクリックします。

    3. [名前] フィールドに「tutorial-network」と入力します。

    4. [サブネット作成モード] で [カスタム] を選択します。

    5. [名前] フィールドに「tutorial-subnet」と入力します。

    6. 近くのリージョンを選択します。

    7. [IPv4 範囲] に「10.0.0.0/24」と入力します。

    8. [限定公開の Google アクセス] で [オン] を選択します。

    9. [完了] をクリックします。

    10. ページの下部にある [作成] をクリックします。

    VPC ネットワークの作成プロセスが完了したら、ネットワークのプライベート サービス アクセスを構成できます。

    1. [VPC ネットワーク] 画面で、[tutorial-network] をクリックします。
    2. tutorial-network のメニューバーで、[プライベート サービス アクセス] をクリックします。
    3. [サービスに割り当てられた IP 範囲] をクリックします。
    4. [IP 範囲の割り当て] をクリックします。
    5. [名前] に「tutorial-range」と入力します。
    6. [IP アドレス範囲] で [カスタム] を選択します。
    7. [範囲] フィールドに「192.168.0.0/20」と入力します。
    8. [割り当て] をクリックします。
    9. サブメニューで、[サービスへのプライベート接続] をクリックします。
    10. [接続を作成] をクリックします。
    11. [割り当て] プルダウンで、[tutorial-range] を選択します。
    12. [接続] をクリックします。1 ~ 2 分後に、プライベート接続が正常に作成されたことを知らせるメッセージが Google Cloud コンソールに表示されます。

    Cloud Storage バケットを作成する

    次に、先ほどダウンロードした SQL ダンプファイルを格納する Cloud Storage バケットを作成します。Cloud SQL インポート ツールでは、ダンプファイルがバケットにあることを想定しています。Cloud Storage バケットには、グローバルに一意の名前を付ける必要があります。

    1. Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。

      [バケット] に移動

    2. [作成] をクリックします。
    3. バケット名には、小文字、数字、ハイフンで構成されるグローバルに一意の名前を作成します。名前を生成するには、random.org/strings などのランダム文字列ジェネレータを使用することをおすすめします。選択した名前をメモします。
    4. [続行] をクリックします。
    5. [ロケーション タイプ] で [リージョン] を選択します。これは最も低コストのオプションです。
    6. サブネットに選択したのと同じリージョンを選択します。Google Cloud リソースを同じリージョンに配置すると、レイテンシが短縮され、速度が向上し、データ転送コストが削減され、ネットワーキングが簡素化されます。
    7. [続行] をクリックします。
    8. [作成] をクリックします。
    9. ダイアログが表示されたら、[このバケットに対する公開アクセス禁止を適用する] を選択したままにして、[確認] をクリックします。

    新しいバケットの [バケットの詳細] ページが開き、[オブジェクト] ペインが選択されています。

    ダンプファイルをバケットにアップロードする

    先ほどダウンロードしたサンプル SQL ダンプファイルをバケットにアップロードします。

    1. [オブジェクト] タブで、[アップロード] をクリックし、[ファイルをアップロード] をクリックします。
    2. countries-mysql.sql ファイルに移動して選択します。
    3. [開く] をクリックします。Cloud Storage はダンプファイルをバケットにアップロードします。

    Cloud SQL インスタンスを作成する

    次の設定を使用して、 Google Cloud コンソールで Cloud SQL インスタンスを作成します。その他の設定はすべてデフォルトのままにします。インポート プロセスでプライベート IP を有効にする必要はありませんが、本番環境のワークロードにプライベート IP を使用することをおすすめします。

    1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
      Cloud SQL の [インスタンス] ページに移動
    2. [インスタンスを作成] をクリックします。
    3. [MySQL を選択] をクリックします。
    4. [Cloud SQL のエディションの選択] で、[Enterprise] を選択します。
    5. [エディションのプリセット] で、[サンドボックス] を選択します。
    6. [インスタンス ID] に「tutorial-instance」と入力します。
    7. デフォルトのユーザー アカウントのパスワードを選択して入力し、後で使用できるように保存します。
    8. サブネットとバケットに選択したのと同じリージョンを選択します。
    9. [ゾーンの可用性] で [シングルゾーン] を選択します。
    10. [構成オプションを表示] を開きます。
    11. [接続] を開きます。
    12. [パブリック IP] をクリアします。
    13. [プライベート IP] を選択します。
    14. [ネットワーク] プルダウンから [tutorial-network] を選択します。これにより、新しい Cloud SQL インスタンスが、以前に作成したプライベート ネットワークに配置されます。
    15. [インスタンスを作成] をクリックし、インスタンスが初期化されて起動するまで待ちます。初期化プロセスには 5 分以上かかることがあります。

    ユーザーを追加する

    データベースの読み取りまたは書き込みを行うには、root ユーザーとは異なるデータベース ユーザーを作成する必要があります。

    1. SQL ナビゲーション メニューで [ユーザー] をクリックします。
    2. [ユーザー アカウントを追加] をクリックします。
    3. 表示されたペインで、[組み込み認証] を選択します。
    4. [ユーザー名] フィールドに「tutorial-user」と入力します。
    5. この新しいユーザーのパスワードを入力します。このパスワードを後で使用できるように保存します。
    6. [すべてのホストを許可する] を選択します。
    7. [追加] をクリックします。

    ダンプファイルからインポートする

    これで、Cloud Storage バケットにアップロードした countries-mysql.sql ダンプファイルを使用して countries データベースをインポートする準備ができました。

    1. SQL ナビゲーション メニューで [概要] をクリックします。
    2. 概要ページで、[インポート] をクリックします。
    3. [ファイル形式] で [SQL] を選択します。
    4. [ソースファイルを選択] で、[Google Cloud Storage からファイルを選択] を選択します。
    5. [参照] をクリックします。
    6. 先ほど作成したストレージ バケットを開きます。
    7. [countries-mysql.sql] をクリックします。
    8. [選択] をクリックします。
    9. [宛先] セクションの [データベース] フィールドで、[SQL ファイルで指定] が選択されていることを確認します。
    10. [インポート] をクリックします。

    インポート プロセスが完了し、countries データベースが Cloud SQL for MySQL にインポートされると、成功メッセージが表示されます。

    Cloud SQL for MySQL でインポートされたデータを検証する

    インポート オペレーションが完了したら、Cloud SQL Studio を使用してデータベースに接続し、テーブルのリストを調べて、データに対してテストクエリを実行することで、データベースがインポートされたことを確認できます。

    Cloud SQL Studio に対する認証

    前に作成したユーザー アカウントを使用して、Cloud SQL Studio を使用して新しいデータベースに接続します。

    1. SQL ナビゲーション メニューで [Cloud SQL Studio] をクリックします。ログイン ダイアログが表示されます。
    2. [データベース] プルダウンで、[countries] を選択します。
    3. [組み込みデータベース認証] を選択します。
    4. [ユーザー] プルダウンで、[tutorial-user] を選択します。
    5. [パスワード] フィールドに、ユーザーを追加するセクションでユーザーのために作成したパスワードを入力します。
    6. [認証] をクリックします。Cloud SQL Studio が開きます。

    テーブルを表示してクエリを実行する

    1. [エクスプローラ] ペインで、countries データベースを調べて、データベースに capitalscountry_codes の 2 つのテーブルがあることを確認します。
    2. [無題のクエリ] をクリックして、クエリエディタを開きます。
    3. 次のコードをクエリエディタに貼り付けます。

      SELECT
        `capitals`.`country_capital`,
        `country_codes`.`country_name`
      FROM
        `capitals`
      JOIN
        `country_codes`
      ON
        `capitals`.`alpha_2_code` = `country_codes`.`alpha_2_code`
      ORDER BY
        `capitals`.`country_capital`;
      
    4. [実行] をクリックします。

    結果ペインに、世界の首都とその国がアルファベット順に表示されます。

    クリーンアップ

    このチュートリアルで使用したリソースについて Google Cloud アカウントに課金されないようにするには、次のいずれかを行います。

    • リソースを含むプロジェクトを削除する
    • プロジェクトは残して個々のリソースを削除します。

    プロジェクトを削除する

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    リソースを個別に削除する

    プロジェクトを残して課金されないようにするには、チュートリアルで作成した Cloud SQL インスタンス、Cloud Storage バケット、VPC ネットワークを削除します。

    Cloud SQL インスタンスを削除する

    まず、削除保護を無効にしてから、チュートリアルの Cloud SQL インスタンスを削除します。

    1. SQL ナビゲーション メニューで [概要] をクリックします。
    2. [編集] をクリックします。
    3. [データ保護] セクションを開きます。
    4. [インスタンスの削除からの保護] で、すべてのオプションの選択を解除します。
    5. [保存] をクリックします。オペレーションが完了すると、[削除] を選択できるようになります。
    6. [削除] をクリックします。ダイアログが表示されます。
    7. [インスタンス ID] フィールドに「tutorial-instance」と入力します。
    8. [削除] をクリックします。

    Cloud Storage バケットを削除する

    次に、ストレージ バケットとその内容を削除します。

    1. メインの Google Cloud コンソールのナビゲーション メニューで、[Cloud Storage] > [バケット] に移動します。
    2. 前に作成したバケットの名前の横にあるチェックボックスをオンにします。
    3. [削除] をクリックします。
    4. ダイアログで「DELETE」と入力して削除を確認し、[削除] をクリックします。

    VPC ネットワークを削除する

    VPC ネットワーク内のリソースを削除したので、ネットワークを削除する準備が整いました。VPC ネットワークを削除する前に、VPC ネットワークの作成時に自動的に作成されたピアリング接続を削除する必要があります。

    1. メイン ナビゲーション メニューで、[VPC ネットワーク] > [VPC ネットワーク ピアリング] に移動します。
    2. VPC ネットワーク tutorial-network を使用するピアリング接続の横にあるチェックボックスをオンにします。
    3. [削除] をクリックします。
    4. ダイアログで [削除] をクリックして確定します。

    ピアリング接続が削除されたので、VPC ネットワークを削除できます。

    1. [VPC ネットワーク] メニューで、[VPC ネットワーク] をクリックします。
    2. [tutorial-network] をクリックして、詳細ページを開きます。
    3. [VPC ネットワークを削除] をクリックします。
    4. ダイアログで「tutorial-network」と入力し、[削除] をクリックして削除を確定します。

    次のステップ