NCP에 배포하기
서버를 사고 접속해요
ncp에 돈을낸다
서버를 산다
vpc, 퍼블릭 서브넷 설정 필요
공인 IP 발급받기
키파일(.pem) 저장하기
서버가 열리면
서버 관리 및 설정 변경-> 관리자 비밀번호 확인에서 서버 비밀번호를 확인한다터미널에서 서버에 접속
ssh -i (키파일) (사용자명)@(서버공인IP)
비밀번호: 3번에서 본거
- 접속했다
도커를 깔아요
https://docs.docker.com/engine/install/ubuntu/ <- 참고하라
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update도커 파일을 만들어요
프로젝트를 도커 이미지로 만들기 위한 설정파일을 작성해준다
AI가 잘한다니까 어케 해야하는지 물어보도록 하자
프로젝트를 가져와요
서버에 배포할 깃허브 프로젝트를 git clone 해주고 도커 서비스를 가동해준다
docker-compose --profile production up -d --build
http://서버공인IP 로 접속했을 때 프로젝트가 보이면 ok이다
HTTPS 설정
https 설정하는 방법은 여러가지 있지만 NCP를 사용하고 있으므로 NCP가 제공하는 로드밸런서와 인증서비스를 써서 설정해주자
로드밸런서가 뭐임?: 로드 밸런서는 요청을 받으면 우선 순위에 따라 리스너 규칙을 평가하여 적용할 규칙을 결정한 다음, 규칙 작업의 대상 그룹에서 대상을 선택합니다. 애플리케이션 트래픽의 콘텐츠를 기반으로 다른 대상 그룹에 요청을 라우팅하도록 리스너 규칙을 구성할 수 있습니다.
출처: Application Load Balancer란 무엇입니까?
로드밸런서는 트래픽을 분산시켜주는 성능향상도구지만 어쨌든 트래픽 컨트롤을 해주기 때문에 특정 대상으로 오는 http 요청을 https로 리다이렉트해주는 등 라우팅 규칙을 설정할 수 있다.
로드밸런서 생성
- ncp콘솔에서 로드밸런서 설정
- https 쓸거니까
애플리케이션 로드밸런서생성 - 네트워크는 public, vpc랑 서브넷 설정
- 서브넷은 프로젝트 배포해놓은 서버 인스턴스랑 같은 걸 쓰면 안 된다.
- 로드밸런서 전용 서브넷을 새로 생성할 수 있으니 같은vpc에 전용 서브넷을 생성해 연결해준다.
- 리스너로 HTTP(80), HTTPS(443) 설정
- 인증서 선택: 없을 테니 생성하자
Certificate Manager로 인증서 생성
- ncp콘솔에서 Certificate List 접속
- 인증서 발급 - 무료인증서
- 사용할 서비스 도메인 입력
- 없으면 무료도메인 아무거나 발급받자
- 내도메인.한국
- 검증 방식으로 DNS 선택
- 그럼 인증서에서 도메인에 대한 Record Name, Record Value를 줄텐데 도메인사이트 설정 가서 넣으면 된다

- 주의: 그대로 복사했을 때 name은 맨 뒤에 도메인부분을 빼야하고, value는 마지막에 온점 빼야한다
- 좀 기다리면 인증서가 인증 진행중에서 정상으로 바뀐다. 끝
로드밸런서 생성
로드밸런서 콘솔로 돌아와서 하던거 마저하자
- Certificate 설정에 방금 만든 인증서 설정
- 타겟 그룹 설정
- 이것도 없을테니 생성해준다
- 프로토콜: HTTP(80)
- 지금 내 프로젝트는 로컬에서 80포트로 돌기 때문에 타겟그룹은 80포트로 설정해줘야 한다.
사용자 → (HTTPS) → 로드밸런서 → (HTTP) → 서버(IP:80)이런 구조다.- 타겟에 사용할 서버 인스턴스 할당
- 로드밸런서 생성 완료
접속 설정
- 도메인 설정에서 A레코드를 로드밸런서 공인IP주소로 설정
- 로드밸런서
리스너 설정 변경에서 HTTP 규칙 설정: 모든 path 요청을 HTTPS(443)로 리다이렉션
별 문제 없다면 https://내도메인에서 돌아갈 것이다.
'기록' 카테고리의 다른 글
| [NestJS] 깃허브 OAuth 로그인 구현하기 (1) | 2025.10.27 |
|---|---|
| [AWS] EC2 + Ngnix로 프로젝트 배포하기 (0) | 2025.10.19 |
| [Express] multer로 파일 업로드하기 (0) | 2025.08.20 |
| 네이버 부스트캠프 웹・모바일 챌린지 10기 후기 (8) | 2025.08.13 |
| [React] 공유 링크 만들기 (0) | 2025.01.03 |