質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

792閲覧

ローカルDocker(LAMP)環境から踏み台サーバを使用し、RDSへ接続したい。

gram_pathcal

総合スコア0

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

1クリップ

投稿2021/03/17 03:14

編集2021/03/17 04:27

前提・実現したいこと

■前提
TeraTerm、AWSVPNにて踏み台サーバ接続済み(ローカルPC)

■実現したいこと
ローカル環境をDockerでLAMP構築しているのですが、
ローカルのDockerからEC2上にあるRDS(MySQL)へ接続ができません。
秘密鍵(.pem)を使用したssh認証周りの設定方法がわからなく悩んでおります
他にも設定がおかしい点(フォルダ構造など)がありましたらご享受お願いします。

■環境
Docker
-Apache(PHP7.4)
-Redis

EC2
-MySQL

Dockerフォルダ構成

docker-compose.yml
Laravel_Project
redis
web
├── Dockerfile
├── 000-default.conf
└── php.ini

docker-compose.yml

yml

1version: '3.8' 2 3services: 4 web: 5 build: ./web 6 ports: 7 - '80:80' 8 volumes: 9 - ./Laravel_Project:/var/www/html 10 depends_on: 11 - redis 12 tty: true 13 stdin_open: true 14 privileged: true 15 16 redis: 17 image: redis:latest 18 volumes: 19 - ./redis/data:/data 20 ports: 21 - 6379:6379 22 command: redis-server

DockerFile

DockerFile

1FROM php:7.4-apache 2 3# php.iniのupdate 4COPY php.ini /usr/local/etc/php/ 5 6RUN apt-get update 7RUN apt-get install -y vim 8RUN apt-get install -y zip unzip git 9 10# node.js install(Vue用) 11RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - 12RUN apt-get install -y nodejs 13 14# redis 15RUN git clone https://github.com/phpredis/phpredis.git /usr/src/php/ext/redis 16RUN docker-php-ext-install pdo_mysql redis 17 18# Composer install 19COPY --from=composer:latest /usr/bin/composer /usr/bin/composer 20ENV COMPOSER_ALLOW_SUPERUSER 1 21ENV COMPOSER_HOME /composer 22ENV PATH $PATH:/composer/vendor/bin 23 24# Apacheのマウント設定 25COPY 000-default.conf /etc/apache2/sites-enabled/ 26 27# LaravelProject配下の読み込むenv設定 28ARG APP_ENV=development 29ENV APP_ENV=$APP_ENV 30 31# これがないとApacheとLaravelの疎通がうまくいかない 32RUN a2enmod rewrite 33 34WORKDIR /var/www/html

000-default.conf

conf

1<VirtualHost *:80> 2 ServerName localhost 3 ServerAdmin webmaster@localhost 4 DocumentRoot /var/www/html/public 5 6 ErrorLog ${APACHE_LOG_DIR}/error.log 7 CustomLog ${APACHE_LOG_DIR}/access.log combined 8 9 <Directory /var/www/html/public> 10 Options Indexes FollowSymLinks 11 AllowOverride All 12 Require all granted 13 </Directory> 14</VirtualHost>

試したこと

Laravel_project内にある.envの値を以下のように変更

env

1DB_CONNECTION=mysql 2DB_HOST=RDSエンドポイント名 3DB_PORT=3306 4DB_DATABASE=接続先DB名 5DB_USERNAME=RDSエンドポイントマスターユーザID 6DB_PASSWORD=RDSのpassword

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2021/03/17 05:26

Dockerが動作するホストOSからの接続はできているのですか?それがローカルPC?違いはなんですか?両方ともSSHで接続して同じ鍵を利用しているのですか?
gram_pathcal

2021/03/17 05:48

ホストOS=ローカルPCと呼んでいました、わかりにくく申し訳ございません。 ホストOSの方ではTeratermを使用し接続は確認とれています。
t_obara

2021/03/17 06:18

同じ鍵ですか?MySQLへのログインですか?MySQLが動作しているホストへのSSHログインなのですよね?コンテナからの接続は違う方法だったりしますか?
gram_pathcal

2021/03/17 06:28

鍵は同じです。 MySQLが動作しているホストへのSSHログインです。 今回はDockerコンテナ(ローカル)=>踏み台(SSH)=>EC2=>RDS(MySQL)という接続がしたいということになります。
t_obara

2021/03/17 06:59

なるほど、両方で-vvvなどのオプションをつけ、接続状況を確認してみてはいかがでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問