개요
ec2에서 docker로 mysql 데이터베이스를 관리하는데 데이베이스를 시각화하고 싶었다.
본문
1. EC2 인스턴스에서 MySQL Docker 컨테이너 포트 확인
먼저, EC2 인스턴스에서 MySQL Docker 컨테이너가 어떤 포트에서 동작하는지 확인해야 한다. 이 정보는 docker-compose.yml 파일에서 mysql 서비스의 포트 설정을 확인
예를 들어, docker-compose.yml 파일에서 MySQL 서비스의 포트가 3307:3306으로 설정되어 있다면, MySQL 서비스는 호스트의 3307 포트로 바인딩되어 외부에서 접근할 수 있다. 여기서 3307은 호스트(즉, EC2 인스턴스)의 포트이며, 3306은 Docker 컨테이너 내부 MySQL 포트다.
2. MySQL Workbench 설치
MySQL Workbench를 설치하고 실행합니다. 설치는 공식 웹사이트(https://dev.mysql.com/downloads/workbench/)에서 다운로드 받을 수 있다. 설치 후 MySQL Workbench를 실행
3. 새 연결 설정
MySQL Workbench를 실행한 후, 다음과 같은 단계로 새로운 연결을 설정
- MySQL Connections 창에서 (+) 아이콘을 클릭하여 새로운 연결을 생성
- Connection Name: 연결에 대한 이름을 입력 예를 들어, "EC2 MySQL Docker"와 같은 이름을 사용할 수 있다.
- Connection Method: Standard TCP/IP over SSH를 선택합니다.
- SSH 접속 설정:
- SSH Hostname: EC2 인스턴스의 공인 IP 주소(퍼블릭 주소)를 입력.
- SSH Username: EC2 인스턴스에 접속할 SSH 사용자 이름을 입력.
- SSH Password/Key File: SSH 인증에 필요한 비밀번호 또는 키 파일을 입력. (인스턴스 생성시 발급받은 pem 경로로 설정)
- MySQL 접속 설정:
- MySQL Hostname: localhost 또는 Docker 컨테이너가 바인딩된 EC2 인스턴스의 IP 주소를 입력.
- MySQL Server Port: Docker 컨테이너에서 MySQL이 사용하는 포트를 입력 예를 들어, 예시에서는 3307을 입력할 수 있다.
- Username: MySQL 데이터베이스에 연결할 사용자 이름을 입력
- Password: 사용자의 비밀번호를 입력
- Default Schema: 사용하고자 하는 데이터베이스 기본 스키마 입력
- Test Connection: 모든 설정을 입력한 후에는 Test Connection 버튼을 클릭하여 연결이 제대로 되는지 테스트
- OK: 테스트가 성공적으로 완료되면 OK 버튼을 클릭하여 연결을 저장
#docker-compose.yml
services:
back:
build: ./back
container_name: reactchat-back
ports:
- '3095:3095'
environment:
DB_HOST: ${DB_HOST}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
DB_DATABASE: ${DB_DATABASE}
CLIENT_DEV_URL: ${CLIENT_DEV_URL}
CLIENT_PROD_URL: ${CLIENT_PROD_URL}
COOKIE_SECRET: ${COOKIE_SECRET}
JWT_SECRET: ${JWT_SECRET}
DB_PORT: ${DB_PORT}
PORT: ${PORT}
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_REGION: ${AWS_REGION}
AWS_BUCKET_NAME: ${AWS_BUCKET_NAME}
depends_on:
- mysql
mysql:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE}
ports:
- '3307:3306'
volumes:
- mysql_data:/var/lib/mysql
nginx:
image: nginx:alpine
ports:
- '443:443'
volumes:
- ./back/nginx/nginx.conf:/etc/nginx/nginx.conf
- /etc/letsencrypt:/etc/letsencrypt
depends_on:
- back
front:
build: ./front
container_name: reactchat-front
image: kingheedo/reactchat-front:latest
ports:
- '443:443'
volumes:
- /etc/letsencrypt:/etc/letsencrypt # SSL 인증서 공유
- /var/lib/letsencrypt:/var/lib/letsencrypt # SSL 인증서 저장소 공유
volumes:
mysql_data:
driver: local # 볼륨 드라이버 설정
'Docker' 카테고리의 다른 글
Docker에러 - .env파일 환경변수를 인식 못하는 문제 (0) | 2024.07.07 |
---|---|
Docker에러 - mysqld: Can't open file: 'mysql.ibd' (errno: 0 - ) (0) | 2024.07.07 |
도커 명령어 모음 (0) | 2024.06.28 |