1. 클라우드 개념을 알고 내가 어떤 서비스를 쓰는지 이해하기
2. 클라우드 설정들이 비슷하므로 계속해서 숙지하는 것이 좋다.
AWS는 왜 만들어졌을까?

CloudFront 글로벌 콘텐츠 전송 네트워크
세계 어디에서 접속해도 속도가 거의 비슷하도록 만들어주는 CDN(Content Delivery Network) 서비스
CloudFront와 S3를 연결, 버킷 내 콘텐츠들을 캐시 서버에 저장한다.
S3 버킷에 파일 업로드 -> CloudFront distribution이 edge location들로 배포하여 S3 버킷의 리전, 배포 리전, 접속 리전에 구애받지 않고 가까운 캐시 서버 네트워크와 연결

CF - Create Distribution 배포 생성
Git 분산형 형상 관리 도구
GitHub Git 엔진을 외부로 서비스해주는 웹사이트
CI/CD (배포 파이프라인) Continuous Integration / Continuous Delivery
.yml
IAM을 사용해서 GitHub Action이 push받은 수정된 파일을 내 S3에 업로드 할 수 있도록 권한을 준다.
repo 생성
> 파이참에서 repo clone
> 파이참 내에서 리소스 생성
> yml 파일 생성 (.github/workflows/main.yml)
> GitHub 내 repo Settings에서 yml 파일이 요구하는 access key값이나 배포 ID 등 입력하기
(소스에 입력해두면 보안적으로 안전하지 않기 때문에 변수로 지정해준다.)
.yml 설정값
VPC Virtual Private Cloud
서브넷 연결되는 서버 컴퓨팅 자원들에 내부 IP를 할당
라우팅 테이블 연결된 서브넷들을 라우팅
인터넷 게이트웨이 외부와 통신할 수 있도록 인터넷과 VPC를 연결
보안그룹
S3나 CF는 포트 조절할 필요가 없음
백엔드는 포트 지정해줘야할 일들이 생김 (mongoDB등 지정 포트)
아웃바운드: 내가 어떤 api를 호출할 때 나가는 포트
인바운드: 내 서비스, 서버 리소스로 들어오는 트래픽에 대한 포트
CIDER가 0이면 0.0.0.0 IP대역에 모든 대역들을 허용
/0 모든 대역대를 해당 포트로 들어오는 것을 허용
Ubuntu 는 리눅스, 리눅스는 파이썬 작업을 하려면 ssh 프로토콜의 포트 22 지정해 주어야 함.
(ex. http 80 https 443)
로컬에서 확인할 수 있도록 포트 5000 열어주기
탄력적 IP
리눅스 명령어
rm -f [지울 파일]
rm -rf [지울 폴더]
(복구 불가 주의!)
확인 http://[내 EC2 퍼블릭 IP]:5000/
ELB
http://[ELB DNS 이름]/
Auto Scaling
Elastic Beanstalk 통합 관리 서비스 (ELB+Auto Scaling+EC2)
⚙ EB 배포
EB로 배포할 때는 application.py 로 기본 이름 설정.
yml 파일 내 변수들 EB에서 체크!
1. application_name
2. environment_name
requirements.txt 라이브러리 모음 파일
SAVE 💾
대상 그룹에 추가 안하면 503 뜸
에러나면 확인해야할 것!
1. branch 명
2. EB 변수
3. 파일 자체 코드 확인
4. 보안 그룹