Service Deploy

dev-won·2023년 4월 26일
0

서비스 개발후 배포 과정에서 팀원들과 찾은 정보를 정리 해봤습니다.

1. Amazon EC2 인스턴스 생성

  1. 인스턴스 생성 옵션








Ec2 Instacne 생성 중 (IAM 생성)






입력 후 역활 생성

1-1 키페어로 Ec2 접속 (key.pem)

위에서 키페어를 생성하였다면 1개의 file이 다운로드 되었을거고 그것을 활용하여 ec2 instance에 접근을 할 것입니다.

chmod 400 키파일이름.pem
ssh -i 키파일이름.pem ubuntu@public주소

를 입력한다면 ec2 인스턴스에 접근할 수 있다.

2. Amazon EC2 Node 설정

참고 자료

1. nvm(node version management)를 설치

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

2. nvm을 활성화

. ~/.nvm/nvm.sh

3. Node.js 설치 (최신버전)

nvm install --lts

3. Nginx 설치

참고 자료

1.Nginx

sudo apt-get install nginx -y

2.Setting file

/etc/nginx/경로에 nginx 설정을 위한 파일들이 있습니다.
/etc/nginx/sites-enabled/*/etc/nginx/sites-available/* 두 폴더 있는데, 용도가 비슷한거 같아 어떤거 사용할지 몰랐지만 /etc/nginx/nginx.conf설정 파일을 열어 보니 /etc/nginx/sites-enabled/*경로의 파일만 includes 하고 있었기 때문에 여기서 배포할  사용하는 설정 데이터를 입력했습니다.

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name 도메인;

        location / {
                proxy_pass http://127.0.0.1:포트;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
}

이렇게 설정한 이유는 nextjs는 build 후 next start로 서버를 구동하기 때문에, 80으로 들어오는 정보를 nginx가 nextjs에서 사용하는 port로 전환해주기 때문입니다.

여기까지 하면 ec2 public 주소로 접근하면 사이트에 정상적으로 접근할 수 있습니다.

4. 도메인 연결

먼저 나만의 사이트를 구현하기 위해 가비아에서 2050원이라는 가장 저렴한 가격으로 도메인을 구매 후 진행하였습니다.
도메인을 구매했다면 aws Route 53으로 도메인을 연결합니다.

가비아 네임서버 등록

가비아 도메인 관리 페이지에 접근하여 구매한 도메인의 네임서버 설정으로 route 53 정보를 입력한다

가비아 DNS 설정


이렇게 하면 도메인이 적용이 된다

5. https:// 등록

https://gist.github.com/woorim960/dda0bc85599f61a025bb8ac471dfaf7a 참고사이트

profile
화이팅

0개의 댓글