짧게나마 기록해보려는 AWS로 배포하기 .. (feat.EC2)
운영 서버와 AWS 소개
운영서버는 개발이나 테스트 목적이 아닌 실제 사용자들을 서비스하는 서버
→ 트래픽 대응도 해야하고 빠른 응답 속도와 높은 가용성을 보장해야함
운영 서버 관리의 세 단계
환경 구성, 코드 배포, 모니터링
-
환경구성
서비스할 코드를 구동시킬 수 잇는 서버 인프라 구축
-
코드 배포
구성한 환경에 최신 버전의 코드를 빠르고 안전하게 배포
-
모니터링
안정적인 서비스 운영을 위해 서버와 코드에 어떤 이상이 없는지 바로 파악하고 대응해야됨
운영 서버 아키텍처의 이해 (운영 서버가 어떻게 구성돼 있는지....)
단일 서버 구성
요청 보내는 클라이언트 → 요청 처리하는 서버 한대, 디비와 애플리케이션이 같은 서버에서 실행되고 있음. 별도의 네트워크 설정 할 필요 없이 걍 로컬 호스트 대상으로
단점이 있음
- 서비스에 장애가 생길 확률이 높음.. 디비랑 서버가 같은 자원을 공유하기 때문에 문제 생기면 전체 서비스가 죽어버림
- 서버 자원을 효율적으로 사용하기 어려움..
- 보안성이 떨어짐
EC2를 이용한 서버 인스턴스 생성과 관리
쉽게 사양을 고르고 원하는 시간만큼 사용할 수 있는 '가상 서버' CentOS 이런 것 처럼
-
AMI (Amazon Machine Image)
인스턴스의 기반이 되는 이미지.. 그니깐 PC에 맥, 리눅스, 윈도우나 이런 운영체제 깔아주는 거라고 생각하면됨. 재사용도 가능
-
보안그룹
보안을 위해서 IP랑 포트번호를 이용해서 정의하는 서버 접속 규칙. 특정 IP 포트에 대해서만 서버에
-
키페어
서버에 접속하기 위한 열쇠 서버에는 공개키 / 사용자는 개인키
인스턴스 생성
ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Instances:sort=instanceId
https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#Instances:sort=instanceId
ap-northeast-2.console.aws.amazon.com
인스턴스 접속
# 권한주기
chmode 400 /path/to/인증서.pem
# ssh로 접속하기
ssh -i /path/to/인증서.pem ec2-use@ec2-52-79-180-113.ap-northeast-2.compute.amazonaws.com
HTTP, HTTPS 접근 가능하도록 보안그룹 설정
이런식으로 HTTP와 HTTPS를 열어주자
깃허브로 배포 준비
# root 권한주기
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-develd
# 디렉토리 생성
cd /var
# www 폴더 생성
sudo mkdir www
# /var/www 경로를 ec2-user의 소유로 변경해줘야됨
sudo chown ec2-user www
깃허브로 배포 과정
# 깃 클론해주기 (서버코드랑 클라이언트 코드 둘다)
git clone https://github.com/Re-Coder-3/career-spot-client.git
git clone https://github.com/Re-Coder-3/career-spot-server.git
# 서버코드에 .env 추가해주기
touch .env
vi .env # 환경변수들 추가해주기
# 서버, 클라이언트 동일
npm install
npm start
포트 열어주기
클라이언트 코드를 3000 번 포트로 열어뒀음.
보안규칙에 가서 3000번 포트를 열어주자!
접속완료 !!
마무리 단계
- nginx를 이용해서 백그라운드에서 접속 가능하도록 변경해주기
- AWS Route 를 이용해서 도메인 변경해주기
- RDS 용량 관리
- 배포 자동화 시도해보기
'2020' 카테고리의 다른 글
2020년이 끝나가기 전에 (0) | 2020.10.11 |
---|---|
REST API를 사용하여 서버 설계 및 구축하기 #_0 (0) | 2020.10.04 |
유니티로 RPS 게임 개발하기 #1 (0) | 2020.10.04 |
친구 생일선물로 웹사이트 만들기 (0) | 2020.10.03 |
2020년 첫 외주 기록 (0) | 2020.10.01 |