Connectez-vous à AWS RDS depuis l'environnement Docker sur votre PC local

Aperçu

--Note sur la façon de se connecter à RDS à partir de l'environnement Docker sur votre PC local

supposition

--Créez un environnement VPC et créez une instance EC2 et RDS pour connecter les applications Rails au sous-réseau privé. --Service by Nat gateway ou Endpoint "com.amazonaws.us-east-1.ssm Peut être connecté à --Ssm-agent est installé sur l'instance EC2

Environnement PC local

référence

Paramètres SSM

--Ajoutez les paramètres de connexion SSM au fichier de configuration ssh

config


ID de l'instance du serveur hôte EC2]
    User [Utilisateur de connexion d'instance EC]
    Port 22
    ServerAliveInterval 300
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

--ssm Confirmer la connexion ssh par ssm

$ ssh [ID de l'instance du serveur EC2]

Connexion à RDS par redirection de port

--aw paramètres de profil

$ aws configure --profile=ssm-test

--Définissez ce qui suit dans ssh-config

# SSH over Session Manager
host i-* mi-*
   ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p' --profile=ssm-test"

--Création d'un tunnel

ssh -i ~/.ssh/id_rsa [Utilisateur de connexion d'instance EC]@[ID de l'instance du serveur EC2] -L 13306:[Point de terminaison RDS]:3306

--Effectuer une vérification de connexion à rds

mysql -u [Utilisateur de la connexion à la base de données] -h 127.0.0.1 -P 13306 -p

Paramètres des rails

paramètres database.yml

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: [Utilisateur de la connexion RDS]
  password: [Mot de passe de connexion RDS]
  host: docker.for.mac.localhost
  port: 13306

Avec les paramètres ci-dessus, vous pouvez vous connecter à RDS à partir de l'application Rails démarrée dans le conteneur Docker. Lors de l'utilisation pour la connexion SSM et la redirection de port, il n'est pas nécessaire de libérer les numéros de port SG et NACL (22, 13306).

Recommended Posts

Connectez-vous à AWS RDS depuis l'environnement Docker sur votre PC local
Connectez-vous à AWS RDS depuis l'environnement Docker sur votre PC local
Comment migrer une application Web créée dans un environnement Docker local vers AWS
Comment déployer à partir d'une image Docker locale vers Heroku
Indiquez comment apprendre de Docker à AKS sur AWS
Tester le traitement avec AWS KMS sur un PC local
Passer d'AWS à PaizaCloud
Connectez-vous de Java à PostgreSQL
Connectez-vous de l'hôte local à l'hôte distant JMX via la redirection de port SSH
Construire un environnement PostgreSQL avec Docker (de la configuration à juste avant le développement)
Créer un environnement local Couchbase avec Docker
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
docker + mysql ne peut pas se connecter / Impossible de se connecter au serveur MySQL local via socket'var / run / mysqld / mysqld.sock '(2)
Examinez le remplacement de Docker vers Podman.
Créer un environnement d'exécution WAS à partir de Docker
Connectez-vous de Java à MySQL à l'aide d'Eclipse
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
Créer un environnement avec Docker sur AWS
Comment créer un environnement Rails 6 avec Docker
J'étais accro à ne pas pouvoir me connecter à AWS-S3 à partir du conteneur Docker
Comment créer un serveur Jenkins avec un conteneur Docker sur CentOS 7 de VirtualBox et accéder au serveur Jenkins à partir d'un PC local