인스턴스 시작
Amazon Machine Image 선택 –> Ubuntu Server 16.04 LTS (HVM), SSD Volume Type
인스턴스 유형 선택
General purpose, t2.micro
보안 그룹 구성
새 키페어 생성 후 pem파일 다운로드
다운로드 한 파일을 ~/.ssh 폴더로 이동시킨다.
pem 파일 권한 재설정
chmod 400 ~/.ssh/<name>.pem
우분투 서버 접속(?)
ssh -i ~/.ssh/<name>.pem ubuntu@<public DNS>
Locale설정 (tab 누르고 OK에서 엔터)
-> sudo vi /etc/default/locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
update, upgrade
# 전체 패키지 업데이트
sudo apt-get update
# 의존성 검사하며 업그레이드
sudo apt-get dist-upgrade
zsh설치
sudo apt-get install zsh
oh-my-zsh 설치
curl -L http://install.ohmyz.sh | sh
root유저로 전환
sudo su
ubuntu유저의 shell을 변경 (작은따옴표아님 유의!)
chsh ubuntu -s `which zsh`
~/.zshrc의 첫 번째 줄 주석 해제
export PATH=$HOME/bin:/usr/local/bin:$PATH
exit후 다시 ssh접속
pip설치 및 version다운
sudo apt-get install python-pip
sudo python -m pip install -U pip
pipenv설치
sudo -H pip install -U pipenv
pyenv설치
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
vi ~/.zshrc에서 맨 아래에 추가
export PATH="/home/ubuntu/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv를 위한 requirements설치
https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev
exit후 다시 ssh접속
pyenv로 필요한 파이썬 버전 설치
pyenv install 3.6.5
pipenv설치
pipenv install
파일 복사
scp -i ~/.ssh/fc-8th.pem \
-r ~/projects/deploy/ec-deploy \
ubuntu@ec2-13......amazonaws.com:/home/ubuntu/project
파일 지우기
ssh -i ~/.ssh/fc-8th.pem ubuntu@ec-13....amazoneaws.com rm -rf /home/ubuntu/project
파일 복사하고 지울 때마다 ssh 나갔다 들어오기
장고 설치
pipenv install django
runserver 띄우기
./manage.py runserver 0:8000
위의 파일 삭제, 복사 과정을 쉘 스크립트에 작성하면 편리하다.
deploy.sh
#!/usr/bin/env bash
IDENTITY_FILE="~/.ssh/FC-8th.pem"
USER="ubuntu"
HOST="ec2-....compute.amazonaws.com"
PROJECT_DIR="~/projects/deploy/ec2-deploy-practice"
SERVER_DIR="/home/ubuntu/project"
# 서버의 파일을 지움
ssh -i ${IDENTITY_FILE} ${USER}@${HOST} rm -rf ${SERVER_DIR}
# 서버에 프로젝트 파일을 다시 업로드
scp -i ${IDENTITY_FILE} -r ${PROJECT_DIR} ${USER}@${HOST}:${SERVER_DIR}
작성 후에 해당 파일에 실행권한을 주기 위해 다음과 같이 입력한다.
$ chmod 755 deploy.sh
그 다음 deploy.sh을 실행시키면 굳이 서버에 접속하지 않아도 로컬에서 서버로 파일 삭제 후 복사 명령을 실행할 수 있다.
Comments