배포배포

박준수·2023년 2월 17일
0

AWS EC2를 이용한 배포

Task 1. Create EC2 instance

Connect to console

Start Instance

Start setting

  • Amazon Machine Image

  • 인스턴스 유형

  • key pair

  • network

  • storage

  • summary

  • Verify

Task 2. Create Elastic IP

탄력적 IP 주소 할당

탄력적 IP 주소 연결

확인

Task 3. Connect to EC2 instance

Vs Code : Remote-SSH

  • Remote-SSH : Connect to Host
  • config 설정

  • 연결

Task 4. EC2 setting

Install and start docker

sudo yum update

# Install docker
sudo yum install docker

# Install docker-compose 
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

# Fix permissions
sudo chmod +x /usr/local/bin/docker-compose

# Create symbolic link
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# Add user to group so we can use commands without sudo
# (+ Login again, to apply changes)
sudo usermod -a -G docker ec2-user

# Start docker
sudo service docker start

# Verify the installation
docker -v
docker-compose -v

Install nvm, Nodejs and Yarn

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

# Activate nvm
. ~/.nvm/nvm.sh

#Install Node.js
nvm install --lts

# Install yarn
curl -o- -L https://yarnpkg.com/install.sh | bash

# Reload the bash profile
source ~/.bashrc

Install git

# Install git
sudo yum install -y git

Task 5. Clone sample project

sample app

BUYSELF GITHUB

Clone your repo

git clone <link-to-your-repo>
## e.g git clone --recursive https://github.com/litsynp/docker-example.git
cd frontend
yarn

Task 6. Additional Settings

환경 변수 및 시크릿 설정

IP setting (sample app 기준)

  • nginx.conf의 localhost고정IP 주소로 수정
  • .env 파일 DJANGO_ALLOWED_HOSTS 에 고정IP 추가
  • REACT_APP_BACKEND_URL 수정

Task 7. Run docker-compose

docker-compose -f docker-compose.prod.yml up -d --build
docker-compose exec backend python manage.py migrate

swap 메모리 생성

  • ec2 램 메모리가 가득 찼기 때문에 실제 디스크의 용량을 이용하여 부족한 메모리를 대체할 공간을 swap memory(스왑 공간)이라 한다.
  • 보통 swap memory는 할당된 램 메모리의 2배 또는 그 이상을 추천하고 있다.

Create domain with AWS Route 53

--> AWS Route 53으로 도메인 생성 후 연결

HTTPS 적용

--> 로드밸런스 생성 후 도메인 연결 및 HTTPS 적용(27) 부터 보면 됨

  • cerbot이라는 것에서 인증서를 받을 수 도 있음 우린 aws에서 받음
profile
방구석개발자

0개의 댓글