해당 게시글은 국민대학교 이경용 교수님의
수업 내용을 바탕으로 작성하였습니다.
AWS Infrastructure
1. Region & Availability Zone (AZ)
물리적 지리적 위치를 기준으로 구성된 자원 세트
하나의 Region 최소 2개 이상의 AZ로 구성됨.
하나의 AZ 안에 여러 데이터 센터로 구성되어있다.
특징
- AZ 간에는 실패가 전파 되지 않음.
- AZ 간의 통신 > Region 간의 통신보다 빠름.
Amazon Elastic Compute Cloud (EC2)
필요에 따라서 사용자는 활용하고자 하는 컴퓨터 특성에 따라서 인스턴스를 선택함.
사용하는 만큼 과금됨 [ CPU 활용에 따라 과금되는 것이 아닌, 사용 기간에 따라 과금됨 ]
1. EC2 구성 요소
AMI (Amazon Machine Image)
- 인스턴스 구동을 위한 템플릿
- 운영체제 및 소프트웨어가 설치된 이미지
- 사용자가 임의의 AMI 생성 가능 (관리는 AWS가 담당)
- My AMIs (사용자 생성 AMI)
IAM Role
실행될 EC2 인스턴스가 다른 AWS 자원을 접근 시 가지는 권한.
Role에 attach된 policy가 접근 권한을 설정
인스턴스가 시작한 후에도 설정 가능.
User Data
인스턴스가 시작할 때 실행하는 명령어를 지정하게 해줌.
ex> 인스턴스마다 실행할 명령어가 다른 경우, 별도의 AMI로 만들기보다 하나의 AMI를 만들고, user data를 통해 인자 전달.
Storage 옵션
Root 볼륨의 사이즈 지정 가능
추가적인 디스크 장착 가능
볼륨 크기, SSD, HDD 등 지정 가능
EBS 또는 인스턴스 로컬 스토리지 설정 가능
인스턴스 로컬 스토리지
- 데이터 영속성 x [Instance 재부팅 시 매칭되는 스토리지가 달라질 수 있음.]
- 일부 인스턴스 타입에서만 지원
Key Pair
인스턴스에 SSH로 접근하기 위한 비대칭 키 (RSA 키)
사용자 KeyPair로 EBS encryption 불가능
2. 과금 옵션
On-demand
가장 보편적인 과금 체계
인스턴스 타입마다 가격 다름
변동이 심하거나 예측하기 힘든 단기 워크로드를 띔.
Reserved instance
장기적으로 사용함을 기준으로 할인을 받음
안정적 상태 또는 예측 가능한 사용량 워크로드를 띔.
선결제 금액을 지불.
Spot Instance
남아도는 자원을 싼 가격 (7~80% 할인)에 활용할 수 있음
사용중인 자원은 언제든지 종료될 수 있음.
컴퓨팅 가격이 매우 저렴해야만 수익이 나는 애플리케이션에서 사용.
Reserved Host (전용 호스트)
호스트 기기를 다른 사용자와 공유하지 않음.
라이센스 관련 규정 및 규제 만족
EC2 인스턴스 수명 주기
인스턴스 수명주기에서 중요한 것은 중지 상태와 종료 상태의 차이이다.
Stop (중지) vs Terminate (종료)
중지는 인스턴스를 언제든지 재부팅할 수 있으며, 메모리가 남아있는 상태이다. (따라서, 인스턴스 과금은 없지만 EBS 스토리지 과금은 적용된다)
종료는 인스턴스를 삭제하는 작업이다.
최대 절전 모드 (Stop)
인스턴스 내의 메모리 (RAM) 에 저장된 내용을 저장 가능 (Disk에 Dump)
메모리 내용 및 프로세스 재시작 가능
암호화된 EBS 루트 볼륨 사용 및 150GB RAM 까지 가능
EC2 인스턴스로의 접근 제어
- SG (Security Group)
인스턴스당 I/O bound 트래픽의 방화벽 역할 담당.
기본적으로 모든 inbound 트래픽을 허용하지 않고, 기본적으로 outbound 트래픽은 허용함.
Incoming 요청의 경우 CIDR로 표현된 특정 소스 기기로부터의 접근 허용 가능.
Amazon Elastic Block Storage (EBS)
파일 저장소 서비스이며, 각 EBS는 EC2 인스턴스에 장착 가능
- Block 단위 저장 서비스
- 하나의 AZ 내에서 복제돼있음.
- 네트워크를 통해서 EC2와 연결됨.
- EC2 내 로컬 저장소가 아님.
EBS 볼륨 타입
EBS 지원 기능
1. 스냅샷
특정 시점의 파일을 기준으로 생성 가능
스냅샷으로부터 새로운 볼륨 생성 및 EC2 인스턴스에 장착 가능
스냅샷을 생성한 볼륨 용량에 따른 과금 발생
2. 암호화
추가 요금 없이 암호화 지원
3. 탄력성
용량 증가 가능
Amazon Simple Storage Service (S3)
Fully-managed object 저장 서비스로 확장성이 보장되며 안전성 99.99999999% 보장
- 블락 단위가 아닌 오브젝트 단위로 저장 (EBS와의 차이)
- 버킷을 생성하며 버킷은 전세계 모든 AWS 지역에서 unique 해야 함.
- EC2의 부팅 볼륨으로 활용될 수 없음. (EBS 활용)
- 데이터 복제는 AWS가 관리 함.
S3 스토리지 클래스
1. Amazon S3 Standard
기본 스토리지 클래스.
2. Amazon S3 Intelligent-Tiering
- 자주 액세스되지 않은 데이터를 비용이 낮은 스토리지 옮김 (비용 절감)
- 예를 들어, 최근에 파일을 사람들이 자주 접근하면 스탠다드에 옮기고, 접근빈도가 낮으면 IA로 옮기고, 다시 많이 찾으면 스탠다드에 옮기는 형식이다.
3. Amazon S3 Standard-Infrequent Access (IA)
- 자주 접근되지는 않으나 접근시 빠른 접근이 요구되는 파일이 많을시 저렴한 가격에 IA에 보관하면 유용하다.
- 일반 S3에 비해 비용은 저렴하나 데이터를 불러올때마다 추가 비용 발생한다.
4. Amazon S3 One Zone- Infrequent Access
- 기본적으로 IA와 같지만 하나의 AZ에만 데이터 저장하는 클래스이다.
- 덜 중요하고 자주 사용되지 않는 데이터를 저장하는데 적합하다.
- 단일영역 IA는 스탠다드 IA와 트래픽 요금은 같지만 저장요금은 더 저렴(20%)하다.
5. Amazon S3 Glacier
- 장기적으로 데이터 보관 Archive. (S3 객체의 생성 시간에 따른 자동 아카이빙 가능)
- 거의 접근하지 않을 데이터 저장 시 유용하며 매우 저렴한 비용을 자랑한다.
- 그러나 데이터 접근시 대략 수분에서 수시간 소요됨.
S3 특징
저장된 객체는 HTTP로 접근 가능 (퍼블릭하게 설정 가능)
- 정적 파일들, 정적 웹페이지 호스팅, 데이터 백업
가격 모델
- 다른 지역으로 파일이 나가는 경우 transfer 비용 발생.
- S3로 업로드, 같은 Region 내에서 파일 전송, CloudFront로의 전송은 무료.
Amazon Relational Database Service (RDS)
클라우드에서 관계형 데이터베이스를 구성하고 운영하는 서비스
장점
데이터베이스 활용 시 환경에 따른 책임지는 부분이 줄어든다.
RDS 인스턴스
- DB 인스턴스 클래스
- DB 인스턴스 스토리지
Amazon Aurora DB
Cloud-native 데이터 베이스
MySQL, PostgreSQL과 호환성 제공
RDS의 모든 장점 상속
클라우드 서비스(S3)를 활용한 고가용성 확보 (BackUp) => 다중 AZ에 복사본을 두고 S3에 저장하는 형식.
AWS Identity and Access Management (IAM)
사용자 및 자원에 대한 인증과 권한 절차 실행.
클라우드 자원에 대해 아주 세부적인 접근 권한 설정을 가능하게 해줌.
(누가 접근하는지, 어떤 자원이 다른 서비스에 접근하는지, 어떤 방식으로 접근하는 지)
IAM 핵심 요소
- user : 사용자 또는 응용 프로그램
- group : IAM user의 집합체
- policy : 특정 자원이 다른 어떤 자원을 접근할 수 있는 지 정의
- role : AWS 자원간 또는 사용자간 permission을 부여할 때 활용.
IAM User를 통한 인증
사용자를 생성할 경우 접근 방식을 정할 수 있음.
- 프로그램 또는 코드를 활용하여 접근을 가능하게 함.
- Access Key ID와 Secret Access Key로 구성됨.
- AWS CLI, AWS SDK를 통해 접근 가능.
IAM Policy 세부 사항
IAM Policy는 세부 자원 및 사용자의 접근 권한 제어를 표현할 수 있음.
모든 연산들은 묵시적으로 모두 거절되고, 허용하고 싶은 연산은 명시적으로 허용해줘야 함.
IAM Policy는 접근 제어 권한을 정의하는 문서임.
1. Identity-based policy
- Policy를 IAM Entity (user, group, role) 에게 할당
- Entity가 수행 가능한, 수행 불가능한 actions들을 정의
- entity : policy = n : n 의 관계를 가짐. (하나의 entity가 여러 policy를 갖거나, 하나의 policy를 여러 entity가 사용 가능)
2. resource-based policy
- 자원 자체에 할당되는 policy
- 특정 리소스를 접근할 수 있는 사용자가 누구이고 어떤 action을 할 수 있는지 정의
- 특정 aws 서비스에서만 사용 가능 (S3)
IAM 접근 제어
IAM Group
IAM user들의 집합.
여러 user들에게 같은 policy를 부여할 수 있음.
IAM Roles
permission을 가지는 IAM identity.
IAM user와 유사한 점 : Policy를 attach 할 수 있음.
IAM user와 다른 점 : 특정 사용자 또는 한 명의 사용자만 연계되는 게 아니라 사용자, 응용, 서비스 등에 Assume 가능
Role을 통해 임시적 권한 부여 가능
- 같은 AWS Account 내에 다른 IAM user 간에 role 사용 가능
- 서로 다른 AWS Account의 IAM user 간에도 사용 가능
예시) EC2에서 S3 버킷에 접근하려고 할 때
1. S3 버킷에 접근 권한을 부여하는 policy를 생성
2. 해당 policy를 role에 attach
3. EC2 Instance가 해당 Role을 assume
AWS에서 올바르게 계정 관리하는 법
계정을 처음 만든 후 IAM 계정을 만들어서 Administrator Access Role을 해당 계정에 부여
Root 계정으로 logout 후 IAM 계정으로 로그인
AWS Organization
- aws 계정을 여러 그룹으로 나누어 관리하게 해줌.
- 하나의 Root 계정, 다수의 AWS Account들, 그룹을 표현하는 Organization Unit (OU) 로 구성.
- Root 계정에서 통합 Billing 지원
- IAM 계정 간에는 자원 공유가 되는 경우가 많지만, Organization 내 다른 계정 간에는 명시적 공유 필요.
- OU 단에서 policy를 attach 하여 각 계정에서 접근할 수 있는 권한 명시 가능.
'Infra & Cloud > Cloud Computing' 카테고리의 다른 글
[Cloud Computing] Cloud Deployment Automation (1) | 2024.12.06 |
---|---|
[Cloud Computing] Cloud High Availability (2) | 2024.12.06 |
[Cloud Computing] Serverless Computing (1) | 2024.12.06 |
[Cloud Computing] Container (2) | 2024.12.06 |
[Cloud Computing] 1. Distribute System (0) | 2024.11.25 |