AWS Infra
리전 : 3개 이상의 가용영역을 포함
가용영역 : 2개 이상의 데이터센터를 포함
VPC 생성 시 해당 리전의 모든 가용영역이 포함됨
각 가용영역 내에 서브넷은 개별적으로 생성됨
독립되어있는 public VPC의 인터넷 사용을 위해 라우트테이블을 통해 IGW와 연결
리소스 레벨에 따른 구분
- 글로벌 (ex. IAM user)
- 리전 (ex. vpc, S3 bucket)
- 가용영역 (ex. EC2 instance, RDS, subnet)
** 모던 어플리케이션 특징
- 마이크로서비스 … 실행환경의 독립(컨테이너) + 요청과 응답의 기술적 독립(REST API)
- 데브옵스
- 서버리스
→ 비즈니스 변화에 빠르게 대응하기 위함
AWS 개발 환경
- AWS 콘솔
- AWS CLI
- SDK (python-boto3 …)
IAM
AWS 최초 가입 시 account 생성
기본적으로 생성되는 IAM Root User : full access, 삭제 불가 > Access key 삭제 권장
IAM User : 신규 생성 시 Policy를 이용해 권한 부여 필요
IAM Policy : 명시적 거부 > 묵시적 거부 > 명시적 허용 순
IAM Group : User 묶음, Policy를 연결하여 권한 부여
IAM Role : 임시자격증명 (임시키 활용), IAM User 또는 AWS 서비스에 수임
* 보안 우선순위
- 코드, CLI 내에 Access Key 직접 입력한 경우
- 환경변수에 Access Key 직접 입력한 경우
- 보안 인증 정보 파일 내의 프로파일 (./aws/credentials)
- 인스턴스 프로파일 (인스턴스가 역할을 수임한 경우)
AWS 스토리지
블록 스토리지 (EBS) : 블록 단위로 관리 가능
파일 스토리지 (EFS)
객체 스토리지 (S3) : 블록, 파일과 다르게 계층 구조가 없음 (사용자 시점에서는 폴더가 만들어진 것처럼 되어있지만 파일 접두어임)
Amazon S3
버전 관리 : 기본적으로 파일명이 동일한 객체가 들어오는 경우 업데이트 됨 → 버전 관리를 활성화하면 별도 버전 ID가 발급되어서 덮어쓰지 않고 중복 저장 가능
객체 태그 : 권한 설정 시 편리함
액세스 포인트 : 특정 버킷과 연결되는 네트워크 엔드포인트, 그룹별 액세스 권한 조절 시 사용