본문 바로가기
Dev Tools/Docker

[Docker] Docker로 AWS EC2 - MySQL 설치 및 테스트

by lucas_owner 2023. 2. 17.

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 를 세팅하고 사용하는것도 좋아보인다.(과금에 대한 걱정이 줄어든다.)

 

◎ 사전에 유의할 점

  1. EC2 내부에 Docker 가 설치 되어있어야 한다.  

- EC2에 Docker가 설치 되어있지 않다면 아래 링크에서 설치 후 이어서 진행 해보자.

https://lucas-owner.tistory.com/46

 

[Docker] EC2 - Docker 설치

AWS - EC2, Docker 설치 - 목표 AWS EC2에 Docker 설치. apt 방식을 사용하여 Docker 설치. - 환경 AWS EC2 Ubuntu(프리티어) Mac (Local) 1. AWS EC2에 Docker 설치 1-1 Terminal을 통해 EC2에 ssh 방식으로 연결. 1-2 Docker를 설치

lucas-owner.tistory.com

 

 

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가지가 있다. 

  1. DBeaver, HeidSQL 과 같은 DBMS 툴을 사용하는것. 
  2. 기존의 Spring Boot 서버에 설정을 추가 후 테스트 하는것. (DB Connection 정보)

필자는 2번 방법을 사용하여 테스트를 진행 했다. (추후 해당 Spring Boot 또한 EC2에 배포할 예정이기 때문)

yml

- 단순히 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

 

[Docker] Docker - Spring Boot로 EC2 배포하기

Docker - Spring Boot로 EC2 배포하기 ○ 목표 - Spring Boot (server) Docker Image로 Build - Docker Hub에 Docker Image 공유(push) - EC2 Docker Image pull 및 설치 -> 한마디로 Spring Boot를 Docker를 이용하여 EC2에 간편하게 배포

lucas-owner.tistory.com

 

반응형

댓글