[JAVA] 3. Créez une base de données à laquelle accéder à partir du module Web

introduction

Cet article est la suite de 2 ci-dessous.

  1. Exécuter rapidement le module Web Java avec Google Kubernetes Engine (GKE)
  2. Créer une image Docker et enregistrer le registre
  3. Créer une base de données accessible à partir du module Web
  4. Créez le manifeste et exécutez le module Web (https://qiita.com/Turtle-child-No2/items/23982059d188e44618df)

3-1. Création d'une base de données

Étape 3-1.1

Créez une base de données à laquelle accéder à partir du module Web. Cliquez sur SQL dans le menu latéral. Lorsque l'écran des détails apparaît, cliquez sur "Créer une instance". 020.png 021.png

Étape 3-1.2

Cliquez ensuite sur "PostgreSQL". 022.png

Étape 3-1.3

Sur l'écran des détails, saisissez "sample-app-ist" pour l'ID d'instance et "123456" pour le mot de passe utilisateur par défaut. 023.png

Étape 3-1.4

Cliquez ensuite sur Afficher les options de configuration. 024.png

Étape 3-1.5

Vérifiez votre adresse IP privée. 025.png

Étape 3-1.6

Si l'écran des détails s'affiche, cliquez sur "Activer l'API". 026.png

Étape 3-1.7

Cliquez sur "Créer". 027.png

Étape 3-1.8

Après un certain temps, l'instance de base de données a été créée. 028.png

Étape 3-1.9

Cliquez ensuite sur l'instance de la base de données puis sur l'écran de détails, cliquez sur la base de données. Cliquez ensuite sur "Créer une base de données". 029.png

Étape 3-1.10

Entrez "sample-app-db" comme nom de la base de données et cliquez sur "Créer". 030.png

Étape 3-1.11

La base de données a été créée. 031.png

Étape 3-1.12

Connectez-vous immédiatement à l'instance de base de données. Entrez «123456» lorsque vous êtes invité à entrer un mot de passe.

[userid]@cloudshell:~ ([project_id])$ sudo gcloud sql connect sample-app-ist --user=postgres
Whitelisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [postgres].Password for user postgres:
psql (9.6.11, server 9.6.10)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128, compression: off)
Type "help" for help.

Étape 3-1.13

Étant donné que la base de données cible de l'opération est postgres, basculez vers l'exemple de base de données exemple créé précédemment. Entrez «123456» lorsque vous êtes invité à entrer un mot de passe.

postgres=> \connect sample-app-db
Password for user postgres:
psql (9.6.11, server 9.6.10)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128, compression: off)
You are now connected to database "sample-app-db" as user "postgres".

Étape 3-1.14

Créez ensuite un proxyuser pour une utilisation ultérieure et donnez-lui la connexion et les autorisations sur la base de données. Après être passé à proxyuser (entrez "123456" lorsqu'on vous demande un mot de passe), créez une table t_sample et insérez une donnée de test.

sample-app-db=> CREATE ROLE proxyuser WITH LOGIN PASSWORD '123456';
CREATE ROLE
sample-app-db=> GRANT CONNECT ON DATABASE "sample-app-db" TO proxyuser;
sample-app-db=> \connect - proxyuser
Password for user proxyuser:
psql (9.6.11, server 9.6.10)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128, compression: off)
You are now connected to database "sample-app-db" as user "proxyuser".
sample-app-db=> CREATE TABLE t_sample (order_no BIGINT NOT NULL, cre_dt TIMESTAMP NOT NULL default CURRENT_TIMESTAMP, nickname VARCHAR(30), order_id VARCHAR(5000));
CREATE TABLE
sample-app-db=> INSERT INTO t_sample (order_no, cre_dt, nickname, order_id) VALUES (1, '1999-01-08 04:05:06', 'tester', 'ABC');
INSERT 0 1

Étape 3-1.15

Vérifiez la table créée.

sample-app-db=> \dt
           List of relations
 Schema |   Name   | Type  |   Owner
--------+----------+-------+-----------
 public | t_sample | table | proxyuser
(1 row)

3-2. Paramètres requis pour se connecter à l'instance de base de données

Étape 3-2.1

Définissez les paramètres nécessaires pour vous connecter depuis GKE à l'instance de base de données. Tout d'abord, cliquez sur Activer l'API d'administration Cloud SQL (https://console.cloud.google.com/flows/enableapi?apiid=sqladmin&hl=ja&_ga=2.250044038.-1219564708.1545700047).

Étape 3-2.2

Entrez "Sélectionnez un projet pour enregistrer l'application" et cliquez sur "Continuer". 034.png

Étape 3-2.3

L'API d'administration Cloud SQL est désormais activée. Cliquez sur Annuler pour ajouter des informations d'identification au projet. 036.png

Étape 3-2.4

Cliquez ensuite sur IAM et administration-> Comptes de service.

Étape 3-2.5

Cliquez sur Créer un compte de service. 033.png

Étape 3-2.6

Entrez "sample-app-db-client" comme nom de compte de service et cliquez sur "Créer". 037.png

Étape 3-2.7

Saisissez Cloud SQL Client pour le rôle et cliquez sur Continuer. 038.png

Étape 3-2.8

Enfin, cliquez sur "Créer une clé". 040.png

Étape 3-2.9

Assurez-vous que "JSON" est sélectionné sur l'écran des détails et cliquez sur "Créer". 041.png

Étape 3-2.10

Le fichier JSON sera téléchargé sur votre navigateur. 042.png

Étape 3-2.11

Téléchargez le fichier JSON téléchargé dans votre navigateur. 043.png

Étape 3-2.12

Vérifiez si le fichier a été téléchargé.

[userid]@cloudshell:~ ([project_id])$ ls -Fal
-rw-r--r-- 1 [userid] xxxxxxx      2361 Mar 10 09:25 [project_id]-xxxxxxxxxxxx.json

Étape 3-2.13

Créez un secret en spécifiant le JSON que vous avez téléchargé précédemment.

[userid]@cloudshell:~ ([project_id])$ kubectl create secret generic cloudsql-instance-credentials --from-file=credentials.json=[project_id]-xxxxxxxxxxxx.json
secret "cloudsql-instance-credentials" created

Étape 3-2.14

Créez un secret en spécifiant l'utilisateur et le mot de passe que Cloud Sql Proxy utilisera pour accéder à la base de données.

[userid]@cloudshell:~ ([project_id])$ kubectl create secret generic cloudsql-db-credentials --from-literal=username=proxyuser --from-literal=password=123456
secret "cloudsql-db-credentials" created

c'est tout

Recommended Posts

3. Créez une base de données à laquelle accéder à partir du module Web
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
Comment créer un formulaire pour sélectionner une date dans le calendrier
[Rails] rails nouveau pour créer une base de données avec PostgreSQL
[Java / PostgreSQL] Connectez l'application WEB à la base de données
La voie de la création d'un service Web (partie 1)
Vous ne pouvez pas changer la version de facette du projet d'un module Web dynamique à x.x. Comment faire avec
Comment créer une route directement à partir de l'URL que vous souhaitez spécifier + α
Apprenez à créer un serveur WEB Introduction au développement d'applications WEB à partir des bases
Comment créer une URL JDBC (Oracle Database, Thin)
Utilisation de la base de données (SQL Server 2014) à partir d'un programme Java 04/01/2018
Kotlin peut faire passer le monde de l'application au Web
Comment créer une méthode
Comment créer une partie d'espace réservé à utiliser dans la clause IN
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Créer une méthode pour renvoyer le taux de taxe en Java
[Docker] Comment accéder à l'hôte depuis l'intérieur du conteneur. http: //host.docker.internal:
Comment créer un fichier jar et un fichier war à l'aide de la commande jar
Basculer dynamiquement la base de données à laquelle se connecter
Préparation à la création de l'application Rails
Créez une source de données (pool de connexions) qui se connecte de WLS (RAID) à la base de données autonome (ATP / ADW).
Créer une base de données dans un environnement de production
Connexion à une base de données avec Java (partie 1) Peut-être la méthode de base
Accéder à Teradata depuis une application Java
Accédez à la grille de données en mémoire Apache Ignite à partir d'un client Java
Un moyen simple de créer une classe de mappage lors de l'utilisation de l'API
Comment exécuter l'exemple Kotlin Coroutine à partir de la ligne de commande
Vérifiez la base de données H2 sur le Web
Essayez de créer une application client serveur
Essayez de créer une tuile de dessin en trois dimensions CS à partir de la tuile Institut géographique
Comment créer un serveur Web sur une instance EC2 d'AWS
La route de JavaScript à Java
Créez un calendrier à partir de la classe Calendar en spécifiant l'année et le mois
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié
Trois raisons de frustration avant la sortie des services Web
[JDBC] J'ai essayé de faire de l'accès à la base de données SQLite3 depuis Java une méthode pour chaque instruction SQL.
Une histoire sur l'évolution des compétences du COBOL cultivé pendant 5 ans à la fin des années 20 à un langage Web
Mettez à jour JAVA vers la dernière version vers 1.8.0_144 (lors du téléchargement à partir du Web et de la mise à jour)
Histoire de changer d'emploi d'un pasteur chrétien (apprenti) à un ingénieur web
Comment renvoyer une valeur du modèle au contrôleur en utilisant le protocole [Swift5]
Comment exécuter un fichier GIF à partir de la ligne de commande Linux (Ubuntu)
Créez une carte du métro de Tokyo à partir du fichier CSV de la station data.jp
Pour créer un fichier Zip lors du regroupement des résultats de recherche de base de données en Java
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
Exécutez des applications x11 dans un conteneur Docker (prend en charge l'accès réseau à partir du conteneur)
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
Gorigori SIer SE a tenté de créer un service web par développement personnel
[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
Volume d'essais pour créer une application Web Java sur Windows Server 2016
Je souhaite développer une application web!
Créez rapidement un environnement Web à l'aide de Docker
4. Création d'un manifeste et exécution d'un module Web
Créez un fichier jar avec la commande
Examinez le remplacement de Docker vers Podman.