AWS계정을 만들면 기본적으로 외부 인터넷과 연동된 디폴트 VPC가 하나 생성된다.
연결되는 서버 컴퓨팅 자원들에 내부IP를 할당한다.
👉 VPC는 AWS의 네트워크 안에서 논리적 네트워크 요소이다.
네트워크적으로 볼 때 클라우드 네트워크 안에 또 논리적으로 내 네트워크를 만들 수 있는 방법.
보안그룹 = 방화벽
AWS EC2 공식문서 - https://docs.aws.amazon.com/ec2/?id=docs_gateway
- Amazon Elastic Computer Cloud
- 인스턴스라고도 하며 홈페이지를 사용할 때의 서버라고 보면 된다. (클라우드 가상 서버)
퍼블릭 IPv4 주소:5000 (5000번 포트로 접속) - 보안그룹에서 5000번 포트 추가해주기!
ELB : 여러 대의 EC2를 묶어서 사용하기 위한 서비스.Elastic load Balancer
서버의 트래픽 용량을 증설할 수 있는 방법 : EC2 앞에 ELB 연결하는 것
ELB 검색 > 로드밸런서 > 로드밸런서 생성 > Application Load Balancer 선택
EC2를 직접적으로 사용하는 형태 중에 제일 편리하게 사용할 수 있다.
배포만 하면 EC2, AutoScaler, ELB같은 것들을 AWS상에서 설정으로 간단하게 조절할 수 있다. 개발자는 인프라를 떠나서 개발에만 집중할 수 있게 해준다.
모니터링하다가 트래픽이 많이 들어올 것 같으면 용량설정의 최소 인스턴스 개수를 늘려주면 실행중인 EC2 인스턴스가 늘어난다.
CORS (Cross-Original domain)
cors = CORS(application, resources={r"/*": {"origins": "*"}})
백엔드에서는 EB로만 배포하면 되기 때문에 ACCESS_KEY랑 AWS_SECRET_ACCESS_KEY만 필요하다. 우선 settings > Action Secrets에 키를 넣어준다.
EB는 소스만 배포하면 자동으로 배포되고 Auto Scaling도 되기 때문에 편하게 쓸 수 있다. 라이브러리 설치도 알아서 하기 때문에 설치할 라이브러리 목록을 만들어서 레퍼지토리에 포함시켜야 한다.
가상환경 만들어주기
settings > Python Interpreter > 톱니바퀴 > add > 가상환경 만들기
터미널에 명령어 입력 -> 라이브러리 목록 만들기
pip freeze > requirements.txt
pip install boto3 flask flask_cors
request.txt 파일이 생기면 다시
pip freeze > requirements.txt
라이브러리 목록이 생긴다.
front 때와 마찬가지로 commit과 push를 해주면 Git Action이 생성된 것을 확인할 수 있다.