AWS
- 가용 영역 레벨 서비스 : ec2
- 리전 레벨 서비스 : s3
- 글로벌 레벨 서비스 : IAM
1. IAM
-
루트 사용자를 사용해서 user 생성 권한을 가진 user를 생성 후 root 계정은 사용하지 않음
-
user 생성 권한을 가진 user를 통해 다른 권한을 가진 user 생성
-
권한은 정책을 통해 부여
- allow와 deny 중 deny가 우선
- 명시적 거부(explicit deny)
- 명시적 허용(explicit allow)
- 쓰여지지 않은 모든 리소스는 묵시적 거부로 해석
- 일반적으로 AWS에서는 가장 제한적인 권한이 적용되는 것이 우선시
- 유저에게 할당된 정책과 그룹에 할당된 정책 간에 충돌이 없는 경우에는 두 권한이 모두 적용
{
"version" : "2012-10-17",
"statement": [
{
"Effect": [], # 권한을 Allow할지 아니면 Deny 할지
"Action": [], # 특정 AWS 서비스에 대해 허용되는 API 호출 지정
"Resource": []# 해당 정책 규칙이 적용되는 엔터티의 범위 정의 (ex: Amazon S3, Amazon EC2, *)
}
]
}
-
일반적으로 IAM 정책을 그룹으로 부여
-
역할(Role) : 임시 자격 증명
- id와 password를 사용해서 user를 이용할 경우 해킹 등 보안의 위험이 있음
- role은 token을 통해 로그인
실습
2. EC2
-
인스턴스 종류
-
범용
-
컴퓨팀 최적화
-
메모리 최적화
-
가속 컴퓨팅
-
스토리지 최적화
-
요금
- AWS 프리 티어
- Savings palns
- 전용 호스트
- 온디멘드
- spot
-
가상 머신과 컨테이터 비교
- 가상 머신은 게스트 os를 갖고 컨테이너는 게스트 os를 갖지 않음
3. 서버리스
서버가 없는게 아니라 서버를 관리할 피요가 없다.
-
종류
-
이점
-
서버를 프로비저닝 또는 관리 필요 (X)
-
사용량에 따른 크기 조정
-
사용한 리소스만큼 비용만 지불
-
가용성 및 내결함성 기본 제공
4. AWS 네트워킹
-
Amazon VPC 및 서브넷
- 클래스 없는 도메인 간 라우팅(CIDR)
- internet gateways
-
라우팅
-
네트워크 액세스 제어 목록
VPC 생성 -> Subnets 생성 -> subnet 위에 ec2 생성 -> security group 생성/gateway 생성 -> route table 설정
5. Storage
- 유형
- 블록 스토리지
- 우리 컴퓨터에서 사용하는 방식
- 자주 삭제, 변경에 유리
- EBS
- 파일 스토리지
- 객체 스토리지
- 데이터 + 메타데이터 + 키 -> 객체
- S3
- 객체, 키, 버킷, 리전
- 보안
- IAM 정책 : 사용자나 그룹 및 역할에 연결
- 버킷 정책 : 버킷에 연결
- S3 블록 퍼블릭 액세스 : 기본은 외부 접근 차단, 필요에 따라 외부에서 접근 가능하도록 설정 가능
- Amazon S3 암호화 : 클라이언트 측 암호화 + 서버 측 암호화
- 버전 관리
- 업로드 할 때마다 객체 새 버전 생성(기존 객체 기록이 남음)
6. 데이터베이스
7. 모니터링, 로드 밸런싱 및 크기 조정
- Amazon CloudWatch
- 5분 단위 로그 수집 무료
- 초 단위 수집은 유료
- 지표 : 리소스들의 사용량
- Elastic Load Balancing(ELP)
- 리스너
- 대상 그룹 : 누구에게 트래픽을 분산할 것인지
- 규칙
- 크기 조정(수직 및 수평 크기 조정)
- 수직적 크기 조정 (scale up, scale down)
- 수평적 크기 조정 (scale out, scale in)
- Amazon EC2 Auto Scaling : 트래픽에 맞춰 필요에 따라 인스턴스를 자동으로 늘렸다 줄였다 함
- 내결함성 개선
- 애플리케이션 가용성 향상
- 더 저렴한 비용
- 조정 정책