0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GoogleAppEngineクイックスタート② CloudSQL編

Last updated at Posted at 2020-07-31

概要

  • 前回記事の続き
  • AppEngineから接続するDBインスタンスを作成する
  • ここでのDBはCloudSQLを使用する
  • そのままでは接続できないため、サーバレスVPCコネクタを作成する
  • AppEngineからCloudSQLへ接続する
  • データベース内のデータ作業をするため、GCEで踏み台サーバを作成する

VPCネットワーク

設定

  • DBインスタンスが存在するためのVPCを作成する
  • CloudSQLでDBインスタンスを作成する
  • プライベートIPで接続させる
  • パブリックIPは有効にしていないためCloudShellからは接続できない

CloudSQL

設定

*「割り当てて接続」を選択

  • mysql rootユーザのパスワードを設定
  • mysql 一般ユーザを作成

GCE

設定

* DBに接続するため同じVPC内にGCEで踏み台サーバを作成

  • インスタンスを作成する

ファイアウォールルール

設定

  • GCEインスタンスへ接続し、CloudSQLへ接続
$ ssh -i <path_to_privatekey> <os_user>@<gce_external_ip>
$ sudo apt upgrade
$ sudo apt-get install mariadb-client
$ mysql -uroot -h<cloudsql_private_ip> -p
Enter password:
$ create database test;
$ exit

公式:MySQL クライアントの Compute Engine からの接続

サーバレスVPCアクセス

設定

各項目入力

結合試験

設定

  • CloudShellを起動
  • app.yamlを以下のように記載
app.yaml
runtime: php72
service: <service_name>

vpc_access_connector:
  name: "projects/<project_id>/locations/asia-northeast1/connectors/<vpc_connector_name>"
  • AppEngineからデータベース接続を確認するためindex.phpを以下のように変更
  • 先程作ったDB”test”に接続を試す
index.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<?php
    echo "Hello World";
    echo '<br>';

    $link = mysqli_connect('<cloud_sql_private_ip>', 'root', '<password>', 'test');

    if (!$link) {
      echo "データベース接続失敗" . PHP_EOL;
      echo '<br>';
      echo "errno: " . mysqli_connect_errno() . PHP_EOL;
      echo "error: " . mysqli_connect_error() . PHP_EOL;
    exit;
     }

    echo 'データベース接続成功';
    echo '<br>';

    // 切断
    mysqli_close($link);

?>
</body>
</html>
$ gcloud app deploy
$ gcloud app browse -s <service_name>

接続

  • 出力されたアドレスでアクセスし、DB接続を確認
  • カスタムドメインのアドレスでアクセスし、DB接続を確認

上記でAppEngineからCloudSQLの接続を設定・確認を完了

参考

公式:VPC ネットワークへの接続

CloudMemoryStore

GoogleAppEngineクイックスタート③ CloudMemorystore編へ

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?