혹시라도 이거 따라하시는 분 막히시면 알려주세요
hunterjoe9999@gmail.com or 댓글 환영입니다

무료 플랜은 이거 사용하면 됨
우분투는 시간당 0.016이라 패스 (극강의 효율 가즈아)
<key pair>.pem이런걸 다운로드 하는데# .pem 파일 드래그 앤 드랍해서 .pem 파일 위치 넣기
chmod 400 <keypair-경로.pem>
# 퍼블릭 DNS을(를) 사용하여 인스턴스에 연결
ssh -i <keypair-경로.pem> ec2-user@내-퍼블릭-IP주소>
chmod 400
chmod 400은 파일 소유자에게만 읽기(read) 권한을 부여하고, 그룹 및 다른 사용자에게는 어떠한 권한도 주지 않는(권한 없음) 설정
일단 여기까지 왔으면 아래 사진처럼 접속이 됨

docker, docker-compose, git이 필요함
설정하는건 다음과 같음
sudo dnf update -y # 보안 패치 및 버그 수정의 이유로 패키지 업데이트
sudo dnf install -y docker # Docker 엔진을 설치
sudo systemctl start docker # Docker 서비스 시작
sudo systemctl enable docker # EC2 재부팅해도 Docker가 자동으로 시작되게 설정
sudo usermod -aG docker ec2-user # ec2-user를 docker 그룹에 추가
sudo dnf install -y docker-compose-plugin # Docker Compose 플러그인 설치
docker compose version # docker-compose 버전 확인
sudo dnf install -y git # 깃 설치
git --version # 깃 버전 확인
sudo usermod -aG docker ec2-user
역할: ec2-user를 docker 그룹에 추가
왜 필요? Docker 명령어는 기본적으로 root 권한 필요
효과: sudo 없이도 docker 명령어 사용 가능# 이 명령 전 sudo docker ps # sudo 필요 # 이 명령 후 (재로그인 필요) docker ps⚠️ 주의: 적용하려면 로그아웃(
exit) 후 재로그인 필요w
재로그인:ssh -i <keypair.pem> ec-user@퍼블릭 ip주소
# ec2 터미널에서
ssh-keygen -t ed25519 -C "내이메일@example.com"
엔터 3번 -> cat ~/.ssh/id_ed25519.pub(공개 키 확인 및 복사)
# 공개키는 다음과같이 생김
`ssh-ed25519 AAAA... 내이메일@example.com`
본인의 GitHub Private 저장소 페이지로 이동
Settings 탭 클릭 → 왼쪽 메뉴에서 Deploy keys
Add deploy key 버튼을 클릭
Title: EC2-Server (본인이 알아보기 쉬운 이름)
Key: 방금 복사한 문자열을 붙여넣기
Add key를 눌러 저장 (Write 권한은 필요 없으므로 체크하지 않아도 됨)
이렇게 설정하면 SSH로 이제 git clone 가능
ssh -T git@github.com
ec2의 루트 경로 [ec-user@...]에서
pwd# SSH 주소!!!
git clone git clone git@github.com:계정명/저장소명.git
# 1. env 파일 만듦
vi .env
# 2. `i` 를 눌러 -- INSERT -- 모드로 바꾼 뒤
.env파일 복붙
# 파일 저장 & 나가기
Esc #키를 누름 (입력 모드 해제).
:wq # 입력 (Write and Quit).
Enter # 터미널로 돌아옵니다.
이런 경고가 뜨면
버전 업글해주면됨
mkdir -p ~/.docker/cli-plugins
curl -L https://github.com/docker/buildx/releases/download/v0.19.1/buildx-v0.19.1.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx
chmod +x ~/.docker/cli-plugins/docker-buildx
docker buildx version
# nc(netcat) 명령어로 해당 IP와 포트 통신 확인
sudo dnf install -y nc # 설치
nc -zv <프라이빗IP> <dbport> # 확인

데이터베이스(RDS)는 일종의 '성'이고, 보안 그룹은 그 성문을 지키는 '수문장'입니다. 현재 EC2가 성 안으로 들어오려고 하지만, RDS의 수문장(default)이 막고 있는 상태입니다. 따라서 default 보안 그룹의 인바운드 규칙을 수정하여 EC2(launch-wizard-3)를 통과시켜줘야 합니다.
나는 다음과같음
default가 rds 설정할 떄 썼던거고
launch-wizard-3가 내 ec2 인스턴스에 추가한거
default
인바운드 규칙 편집: 하단 탭에서 인바운드 규칙(Inbound rules)을 선택하고, 오른쪽의 인바운드 규칙 편집(Edit inbound rules) 버튼을 누릅니다.
규칙 추가: 아래와 같이 새로운 규칙을 입력합니다.
유형: PostgreSQL (선택하면 자동으로 포트 범위가 5432로 설정됩니다.)
프로토콜: TCP (자동 설정)
포트 범위: 5432 (자동 설정)
소스(Source): '사용자 지정'을 선택한 뒤, 옆의 입력창에 launch-wizard-3의 보안 그룹 ID를 입력합니다. (입력창을 클릭하면 목록에 sg-... (launch-wizard-3)가 나타날 텐데, 그걸 선택하는 것이 가장 정확하고 안전합니다.)
저장: 하단의 규칙 저장(Save rules) 버튼을 누릅니다.
자 이제 다시 네트워크 확인해보자
nc -zv <프라이빗IP> <dbport> # 확인
# >connected 뜨면 정상
아까 확인하신 launch-wizard-3 보안 그룹은 현재 EC2 인스턴스의 '성벽' 역할을 합니다. 여기에 3000번 포트를 열어주는 규칙이 있는지 확인해야 합니다.
AWS 콘솔 → EC2 인스턴스 목록에서 현재 실행 중인 인스턴스를 클릭합니다.
하단의 보안(Security) 탭을 누르고, 보안 그룹(Security groups) 아래에 있는 launch-wizard-3 링크를 클릭합니다.
인바운드 규칙(Inbound rules) 탭에서 인바운드 규칙 편집(Edit inbound rules)을 누릅니다.
아래 규칙을 추가하고 저장하세요.