인스턴스 시작 -> 생성
이미지 선택 -> Ubuntu
인스턴스 유형 -> 프리 티어 t2.micro 선택
키 페어 설정 -> 기존 꺼 사용 or 새 키 페어 생성
HTTPS 트래픽 허용, 퍼블릭 IP 자동 할당
인스턴스 시작
인스턴스 화면에서 연결 버튼 클릭
SSH 클라이언트로 탭으로 이동
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version // Docker version 27.3.1, build ce12230
sudo docker run hello-world
버전 확인까지 완료
EC2 보안 그룹 설정
1-1. 인스턴스 보안 탭 -> 보안 그룹
1-2. 인바운드 규칙 편집
1-3. 유형: MySQL/Aurora, 프로토콜: TCP, 포트 범위: 3306, IP 범위를 지정
Docker로 MySQL 실행
2-1. MySQL Docker 이미지 가져오기
docker pull mysql:latest
2-2. MySQL 컨테이너 실행
// 한글로 된 부분 수정해서 사용
docker run -d --name mysql-container \
-e MYSQL_ROOT_PASSWORD=루트 비밀번호 \
-e MYSQL_DATABASE=데이터베이스명 \
-e MYSQL_USER=유저 이름 \
-e MYSQL_PASSWORD=유저 비밀번호 \
-p 3306:3306 \
mysql:latest
2-3. 컨테이너 실행 상태 확인
docker ps
MySQL 접속 테스트
3-1. EC2 내부에서 테스트
docker exec -it mysql-container mysql -u 유저 이름 -p
3-2. 로컬에서 테스트
MySQL Workbench를 사용해서 테스트
정상적으로 연결되는 모습을 확인.
EC2 보안 그룹 설정
1-1. 인스턴스 보안 탭 -> 보안 그룹
1-2. 인바운드 규칙 편집
1-3. 유형: 사용자 지정 TCP, 프로토콜: TCP, 포트 범위: 6379, anywhere IPv4
Redis Docker 이미지 가져오기
docker pull redis:latest
docker run -d --name redis-container \
-p 6379:6379 \
redis:latest
docker ps
redis 설정 변경
4-1. redis 설정 파일 생성
mkdir -p ~/redis-data
curl -o ~/redis-data/redis.conf https://raw.githubusercontent.com/redis/redis/7.0/redis.conf
4-2. 설정 파일로 이동
nano ~/redis-data/redis.conf
4-3. redis.conf 내부의 bind, protected-mode 수정
bind 0.0.0.0
protected-mode no
4-4. 비밀 번호 설정 - redis.conf 내부에 requirepass 추가
requirepass 원하는 비밀번호
4-5. 컨테이너 실행 시 설정 파일 마운트
docker run -d --name redis-container \
-p 6379:6379 \
-v ~/redis-data/redis.conf:/usr/local/etc/redis/redis.conf \
redis:latest redis-server /usr/local/etc/redis/redis.conf
if 4-6. 이미 컨테이너가 실행 중이면
docker stop redis-container
docker rm redis-container
기존 컨테이너 중지 및 삭제 후 4-5 명령어 사용
Redis 접속 테스트
5-1. EC2 내부에서 테스트
docker exec -it redis-container redis-cli
정상적으로 redis-cli에 접속되면 경로가 127.0.0.1:6379로 변한다.
// 테스트 쿼리
SET testkey "Hello, Redis!"
GET testkey
5-2. 외부에서 테스트
redis insight를 이용하여 테스트 진행
정상적으로 연결되는 모습 확인.
출처: https://velog.io/@wlsgur1533/AWS-EC2%EC%97%90-Docker%EB%A1%9C-MySQL-%EB%9D%84%EC%9A%B0%EA%B8%B0
출처: https://lucas-owner.tistory.com/47
출처: https://mungiyo.tistory.com/23
출처: chatgpt