이전에 작성한 글과 이어지는 글입니다!
인바운드 보안그룹을 수정해 프로젝트에 필요한 포트를 허용해주겠습니다!
EC2 > 보안그룹 > 생성한 인스턴스 보안그룹 ID > 인바운드 규칙 편집
저는 이렇게 해주었습니다!
- 내 IP만 허용할 때는 소스유형에서 내 IP를 선택
0.0.0.0/0, ::/0 (IPv4, IPv6 모두 허용) 입력| SSH | HTTP | Custom TCP | Custom TCP | |
|---|---|---|---|---|
| 포트번호 | 22 | 80 | 3000 | 27017 |
| 설명 | 내 IP(접속용) | 모든 IP 허용(웹 서비스용) | 모든 IP 허용(Nest.js용) | 본인 IP만 허용(MongoDB용) |

// EC2의 OS를 Amazon Linux로 했으므로 ec2-user로 접속
ssh -i ~/다운로드/내키파일.pem [ec2-user or ubuntu]@EC2_탄력적 or Public_IP
ex) ssh -i ~/my-demo-server-key.pem ec2-user@24.500.92.123
Are you sure you want to continue connecting (yes/no) 나오면 yes를 입력해줍니다. (접근할지 말지 선택하는 것)그리고 접속하다가 에러가 나오면
1. 인스턴스 재부팅하기 (aws 사이트에서 진행)
WARNING: UNPROTECTED PRIVATE KEY FILE! 이라는 에러 메세지가 뜨면 권한을 수정해주어야 하기 때문에 chmod 400 ~/my-demo-server-key.pem 으로 권한 수정하기 (나만 파일을 읽을 수 있게 설정)접속되면 이렇게 새가 반겨줍니다 🐣

yum에 Docker Compose 패키지가 없어서 수동으로 설치 ㅜㅜ# 패키지 최신 버전으로 업데이트
Amazon Linux: sudo yum update -y
ubuntu: sudo apt update && sudo apt upgrade -y
# docker, docker-compose 설치
Amazon Linux: sudo yum install -y docker
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
ubuntu: sudo apt install -y docker.io docker-compose
docker --version
docker-compose --version
sudo systemctl start docker
# 부팅 시 자동 실행 설정 (선택)
sudo systemctl enable docker
# Docker가 실행중인지 확인!
sudo systemctl status docker
Amazon Linux: sudo usermod -aG docker ec2-user
ubuntu: sudo usermod -aG docker $USER
exit
# 다시 ssh 접속
ssh -i ~/다운로드/내키파일.pem [ec2-user or ubuntu]@EC2_탄력적 or Public_IP
ex) ssh -i ~/my-demo-server-key.pem ec2-user@24.500.92.123
docker ps 같은 명령어를 sudo 없이 수행 가능합니다.scp -i ~/여기에 정확한 경로 작성/my-demo-server-key.pem -r ~/demo_server ec2-user@42.400.92.405:~/
ls 명령어로 확인할 수 있습니다..env 파일을 EC2 환경에 맞게 수정해줍니다.# 프로젝트 경로로 이동
cd ~/프로젝트경로
# 편집기 실행
vi .env
MONGO_URL 만 수정했습니다!i 입력 후 수정 → esc → :wq 저장 후 종료 순으로 진행했습니다.MONGO_URI=mongodb:/[docker-compose.yml에서 설정한 MongoDB 컨테이너의명]:27017/mongodb-cluster
MONGO_DB=mongodb-cluster
ex)
MONGO_URI=mongodb://mongodb:27017/mongodb-cluster
MONGO_DB=mongodb-cluster

# 프로젝트 경로로 이동
cd ~/프로젝트경로
# 현재 실행중인 모든 컨테이너 중지, 연결된 네트워크 삭제 (컨테이너를 깨끗하게 종료하고 싶을 때 사용)
docker-compose down
# 컨테이너를 다시 생성하고 실행(이미지를 새로 만들고, 백그라운드에서 실행)
docker compose up --build -d
# 컨테이너가 정상 실행되는지 확인
docker ps

docker logs [컨테이너 이름]
ex) docker logs demo_server-backend
Hello World! 가 나온다면 성공!curl http://localhost:3000
curl http://<EC2-퍼블릭-IP or 탄력적 주소>:3000

혹시 잘못된 정보가 있으면 댓글로 알려주세요! 끝까지 봐주셔서 감사합니다 ☺️