Docker image 로 EC2에 MySQL 설치 및 테스트 하기
◎ 목적
- AWS EC2 내부에 Docker Image 를 사용하여 MySQL을 손쉽게 설치하고 Test 하는것이 목적이다.
이 글에 이어서 Spring Boot 또한 Docker Image 로 Build 후에 EC2에 배포할 예정이다.
- EC2에 MySQL과 같은 DB를 설치하는 경우는 별로 없다. 왜냐하면 AWS RDS라는 DB 시스템이 이미 존재하기 때문이다.
EC2는 Server의 목적만을 수행하고, RDS는 DB 의 역할만 하기 때문에 Resource 사용 측면에서 좋기 때문이다.
- 하지만 사이드 프로젝트, 토이 프로젝트, 연습 등등 서비스 트래픽과 리소스 사용량을 고려 하지 않는다면
RDS 를 사용하지 않고, EC2내부에 Server, DB 를 세팅하고 사용하는것도 좋아보인다.(과금에 대한 걱정이 줄어든다.)
◎ 사전에 유의할 점
- EC2 내부에 Docker 가 설치 되어있어야 한다.
- EC2에 Docker가 설치 되어있지 않다면 아래 링크에서 설치 후 이어서 진행 해보자.
https://lucas-owner.tistory.com/46
Docker MySQL 설치 (EC2)
1. EC2 ssh 접속
2. MySQL Docker Image 다운로드
- 명령어를 통해 MySQL Docker Image를 다운 받는다.
- 옵션으로 버전을 명시 하지 않으면 MySQL 가장 최근 버전이 다운된다.
- 필자는 MySQL 5.7.34 버전을 설치했다.
# 가장 최근 MySQL 버전 다운로드
$sudo docker pull mysql
# 특정 버전 지정 MySQL 버전 다운로드
$sudo docker pull mysql:5.7.34
3. 다운로드 된 Docker image 를 확인한다.
$sudo docker images
4. MySQL Docker 컨테이너 생성 & 실행
$sudo docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=[패스워드] -d -p 3306:3306 mysql:5.7.34
5. Docker 컨테이너 리스트 확인
$sudo docker ps -a
6. EC2 MySQL Docker 컨테이너 접속
- EC2 내부에 Docker MySQL image 를 다운 받고 실행을 시켰다.
- EC2 내부에서 실행중인 MySQL에 접속 해보자.
- bash 로 mysql 컨테이너에 접근 후, mysql -uroot -p (root 계정 로그인) 입력 후 설정한 패스워드 입력.
# 차례대로 커맨드 실행
$sudo docker exec -it mysql-container bash
-bash $ mysql -uroot -p
#-password 입력
7. Local 연결 Test
- EC2 내부에서는 MySQL 접속까지는 확인이 되었다. 이제 실제 Test 를 통해, 기능에 문제가 없는지 확인해보자.
- 방법은 2가지가 있다.
- DBeaver, HeidSQL 과 같은 DBMS 툴을 사용하는것.
- 기존의 Spring Boot 서버에 설정을 추가 후 테스트 하는것. (DB Connection 정보)
필자는 2번 방법을 사용하여 테스트를 진행 했다. (추후 해당 Spring Boot 또한 EC2에 배포할 예정이기 때문)
- 단순히 DB 연결 정보를 최소한으로 수정 후 테스트를 진행 했다.
- MySQL의 INSERT, SELECT 쿼리가 작동하는것을 확인 했다.
* 주의할점 : local 에서 MySQL 연결이 안된다면, EC2 보안그룹의 인바운드 규칙을 추가 해줘야 한다!!!!!
사용자 정의 - IPv4, 유형-MySQL/Aurora, 포트범위:3306
MySQL Docker 컨테이너 시작/중지/재시작
# MySQL Docker 컨테이너 실행
$docker start mysql-container
# MySQL Docker 컨테이너 중지
$docker stop mysql-container
# MySQL Docker 컨테이너 재시작
$docker restart mysql-container
다음 글에서는 EC2 내부에 Spring Boot 를 Docker Image 파일로 배포하고,
설치해놓은 MySQL과 Spring Boot를 Docker 로 실행하고 퍼블릭 IP로 접근하여 테스트까지 진행해보겠다.
* Spring Boot EC2 Docker 이미지로 배포하기. (아래링크)
https://lucas-owner.tistory.com/48
'Dev Tools > Docker' 카테고리의 다른 글
[Docker] Docker Command(명령어) 정리(+옵션) (0) | 2023.02.20 |
---|---|
[Docker] GitHub Actions CI/CD - Docker Image 자동 배포, run(CD) (2) (12) | 2023.02.19 |
[Docker] GitHub Actions CI/CD - Docker Image 자동 빌드, push(CI) (1) (0) | 2023.02.18 |
[Docker] Docker - Spring Boot로 EC2 배포하기 (0) | 2023.02.18 |
[Docker] EC2 - Docker 설치 (0) | 2023.02.17 |
댓글