AWS EC2 배포

Singsoong·2023년 2월 17일
0

AWS

목록 보기
10/14
  • AWS에서 웹 앱을 배포하는 방법 중 하나인 S3 버킷 + Cloudfront를 이용해 배포할 수도 있지만, 현재 서비스할 웹은 외부에서 사용하는 서비스가 아니라 내부적으로 사용할 예정이므로 Nginx를 사용해 EC2에 웹서버와 WAS를 배포하려고 함

📌 EC2 인스턴스 생성

  • 운영체제 설정 (Ubuntu, Linux...)
  • VPC 설정 (production)
  • subnet 설정
  • 보안 그룹 설정
    • ssh 포트 열기 (포트번호 22)
  • IAM 권한 설정
    • 역할 추가, 역할에는 세션 매니저 사용을 포함한 아래와 같은 정책 추가
    • AmazonEC2RoleforSSM, AmazonSSMManagedInstanceCore

📌 ELB(로드밸런서) 설정

  • ELB에 라우팅 시킬 타겟 그룹 설정
  • ALB(어플리케이션 로드밸런서)에 Rule 추가

📌 Route 53

  • 레코드 생성
  • 만들어두었던 ALB에 연결

📌 서버로 Build 폴더 전송

  • scp -i "key" -r build username@주소:~/폴더 이름
  • 혹은, 유저를 추가하여 password를 통해 scp 가능
    • adduser hj
    • sudo vi /etc/ssh/sshd_config, passwd 사용 yes 옵션 설정

📌 Nginx 설치

  • sudo apt-get update
  • sudo apt-get install nginx

📌 Nginx 설정

  • cd /etc/nginx/sites-available
server {
  listen      80;
  server_name 사이트 주소;

  location / {
    root      /home/...; // 빌드 폴더 경로
    index     index.html index.htm;
    try_files $uri $uri/ /index.html;
  }
  // api 세팅
  location / {
    proxy_pass http://127.0.0.1:8080/api/;
    proxy_buffering off;
  }
}
  • 심볼릭 링크 연결
    • sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
  • nginx 재시작
    • sudo service nginx stop (서버 중지)
    • sudo service nginx start (서버 시작)
    • sudo service nginx restart (재시작)
    • sudo service nginx status (상태확인)
  • 주소 접속 시 500 error 발생 시 build 폴더의 권한 확인 후 chmod 711 수행
  • 여기까지 진행하면 프론트엔드 배포는 완료 됨

📌 서버 배포

  • apt install npm
  • git clone 프로젝트
  • 프로젝트 내 npm install
  • npm install -g pm2 (무중단 배포를 위한 pm2 설치)
  • npm install pm2-logrotate (로그 자동삭제 및 관리를 위해)

📌 기타 설정

  • 환경변수 설정 (production에 맞는)과 그에 따른 cors option 설정
  • kakao map을 사용하고 있었으므로 도메인 추가
profile
Web Developer

0개의 댓글