개요
Docker를 Ec2에 설치하는 것 까지 했고, 데이터베이스 관련한 설정을 하려고 한다. RDS를 통해 적용하는 방법과, Docker에 MySQL을 직접 설치하는 방법 중 고민을 했는데, 아무래도 프로젝트 규모가 크지 않다보니 RDS 설정에서 나올 수 있는 혹시 모를 과금(?)을 걱정하며 MySQL을 직접 설치하는 것으로 결정했다.
1. MySQL 설치
1-1. EC2 접속
SSH로 EC2 인스턴스에 접속한다.
* 쉬운접속 방법
일일이 ssh -i key ubuntu@public-ip 로 접근하는데 불편함을 느끼고, 다른 방법을 찾아봤다.
SSH Config 파일에 설정을 변경하면 된다.
1) ~/.ssh/config 파일 열기
nano ~/.ssh/config
2) 설정 추가
Host my-ec2
HostName <EC2 퍼블릭 IP 또는 도메인>
User ubuntu //ubuntu니까
IdentityFile <PEM 파일 경로>/key.pem
Host의 경우 사용자가 원하는대로 설정하면 된다.
3) 저장 및 접속
config 파일에 설정을 저장한 뒤 지정한 Host 명으로 접속하면 된다.
ssh my-ec2
꿀팁!
1-2. MySQL Docker 이미지 다운
docker pull mysql:latest
Docker Hub에서 MySQL 이미지를 다운하는데 latest 태그는 최신 버전의 MySQL을 가져온다.
1-3. MySQL 컨테이너 실행
docker run --name [컨테이너 이름] -e MYSQL_ROOT_PASSWORD=[비밀번호] -p 3306:3306 -d mysql:latest
: --name
-> 컨테이너 이름 지정
: -e
-> 환경 변수 설정
-> 여기서는 MySQL root 계정의 비밀번호를 설정한다.
: -p
-> 로컬의 3306 포트를 컨테이너의 3306 포트에 매핑한다.
-> :를 기준으로 앞이 호스트, 뒤가 컨테이너의 포트이다.
: mysql:latest
-> 실행할 MySQL Docker 이미지이다.
1-4. 컨테이너 상태 확인
docker ps
컨테이너가 정상적으로 실행 중인지 확인한다.
2. MYSQL 데이터 영속성 설정
Docker 컨테이너에 저장되는 데이터의 경우 기본적으로 Docker 컨테이너가 삭제될 때 함께 사라진다.
하지만, MySQL 컨테이너의 경우 삭제될 경우 모든 사용자들의 데이터가 사라지기 때문에 굉장히 곤란한 상황이 발생할 수 있다.
그렇기에 데이터를 영속적으로 저장할 수 있어야 하는데, 여기서 사용할 수 있는 방법이
바로 Docker Volume이다.
2-1. 볼륨 생성
docker volume create mysql-data
2-2. 컨테이너 불륨 마운트
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -v mysql-data:/var/lib/mysql -p 3306:3306 -d mysql:latest
3. MySQL 접속
docker exec -it [컨테이너 이름] mysql -u root -p
EC2 내부에서 컨테이너에 접속하는 방법인데, 이와 같이 입력하게 되면 MySQL에 접속할 수 있다.
우선 아직 스프링 프로젝트 세팅이 안되어 있어서, 접속만 확인하고 후에 잘 들어가는지 확인해볼 계획!
'Infra > Docker적용' 카테고리의 다른 글
[Docker 적용] SpringBoot + DockerFile + Docker Compose 적용 (0) | 2025.01.20 |
---|---|
[Docker 적용] EC2 인스턴스(ubuntu) 환경에 docker compose 설치 (1) | 2025.01.20 |
[Docker 적용] Ec2 환경에서 Docker로 Jenkins 구축하기 (0) | 2025.01.19 |
[Docker적용] EC2에 Docker 설치 (0) | 2025.01.07 |