1. Amazon VPC
1.1 개요
Amazon Virtual Private Cloud (VPC)를 사용하면 AWS 계정 전용으로 AWS 클라우드에 호스팅 되는 가상 네트워크를 프로비저닝 할 수 있음
- VPC는 다른 가상 네트워크로부터 논리적으로 격리되어 있음.
- Amazon EC2 인스턴스와 같은 많은 AWS 리소스가 VPC에서 시작
- VPC의 주요 기능은
ㅁ IP범위
ㅁ 라우팅
ㅁ 네트워크 게이트 웨이
ㅁ 보안 설정
1.2. VPC 위치
- 각 VPC는 하나의 리전 내에 유지, VPC 내에 있는 리소스는 해당 리전 외부에 존재할 수 없음
- 같은 리전 내 다른 가용 영역에 있는 리소스는 같은 VPC에 존재할 수 있음.
1.3. VPC는 두개 이상의 가용 영역에 있는 리소스를 포함 할 수 있음
- 같은 계정 및 리전과 여러 리전 또는 계정에 여러 개의 VPC를 둘 수 있음
2. Amazon EC2
2.1 Amazon EC2 개요
Amazon Elastic Compute cloud (EC2)는 마우스 클릭 몇 번 또는 코드 몇 줄로 시작하고 관리할 수 있는 가상 컴퓨팅 환경(인스턴스)를 제공
- 서버 운영 체제 대부분 지원: Windows, Red Hat, SUSE, Ubuntu, Amazon Linux 등 서버 운영 체제 대부분 지원
- 자체 서버 이미지를 생성, 저장 및 재사용 (Amazon Machine Image, AMI)
- 한번에 하나의 인스턴스 또는 여러 개의 인스턴스를 시작
- 필요 할 때 인스턴스를 추가하고, 필요 없을 때 종료
- CPU, 메모리, 스토리지, 네트워킹, 그래픽 및 범용 유형이 제공
- 보안 그룹을 사용하여 인스턴스에 송수신되는 트래픽 제어
2.2 적합한 Amazon EC2 인스턴스 선택
AWS에서는 Intel Xeon 프로세서를 활용하여 제공 (https://aws.amazon.com/ko/intel/ )
인스턴스 선택 시 Core, Mem, 스토리지 크기 및 유형, 네트워크 성능, CPU 기술 고려
2.2.1. C5 인스턴스
I. 기본 구성
- 컴퓨팅 집약적 워크로드에 최적화된 인스턴스
- Intel AVX-512(Advanced Vector Extension 512) 지침 세트가 포함된 3.0Ghz Intel Xeon Platinum Process
- 새로운 대형 인스턴스 크기, c5.18xlarge, 72 vCPU 및 144Gib 메모리 제공
- EBS 최적화가 기본
II. 사용 사례
- 고성능 웹 서버
- 과학적 모델링
- 배치 처리
- 분산 분석
- 고성능 컴퓨팅(HPC)
- 기계 학습/딥 러닝 추론
- 광고 게재
- 확장성이 뛰어난 멀티 플레이어 게임
- 동영상 인코딩
2.2.2. H1 인스턴스
I. 기본 구성
- 스토리지 최적화 인스턴스
- 낮은 비용, 높은 디스크 처리량 및 대량 데이터 세트에 대한 높은 순차 디스크 I/O 액세스를 필요로 하는 애플리케이션용으로 설계
II. 사용 사례
- MapReduce 기반 워크로드, HDFS 및 MapR-FS와 같은 분산 파일 시스템, 네트워크 파일 시스템, Apache Kafka와 같은 로그 또는 데이터 처리 애플리케이션, 빅데이터 워크로드 클러스터
2.2.3. F1 인스턴스
https://aws.amazon.com/ko/blogs/aws/developer-preview-ec2-instances-f1-with-programmable-hardware/
- 클릭 몇 번으로 인스턴스에서 사용자 정의 FPGA(Field-Programmable Gate Arrant) 하드웨어에 직접 액세스
- 사용자 정의 하드웨어 가속을 신속하게 배포
- 예측 가능한 성능
- FPGA의 경제성 변화
- 기존 FPGA 알고리즘 사용
2.2.4. R4 인스턴스
- 메모리 집약적 애플리케이션 최적화
- R3대비 RAM GiB당 더 나은 가격 제공
2.2.5. T2 인스턴스
- 기준 수준의 CPU 성능에 기준 이상의 버스트 기능 제공
- 전체 CPU 성능을 자주 또는 일관적으로 사용하지 않지만 가끔씩 버스트해야 하는 워크로드에 적합
- t2.xlarge(16GiB 메모리) 및 t2.2xlarge(32GiB 메모리)를 추가
2.2.6. I3 인스턴스
- 비휘발성 메모리 익스프레스(NVMe) SSD 지원 인스턴스
- 짧은 지연 시간, 매운 높은 무작위 I/O 성능 및 높은 순차 읽기 처리량에 최적화된 스토리지
- 4KB 블록 크기로 최대 330만개의 무작위 IOPS 및 최대 16GB/S의 디스크 처리량 제공
- 저렴한 비용의 고성능 IOPS
- 트랜잭션 프로세싱 시스템, 관계형 및 NoSQL 데이터베이스, 데이터 웨어하우징 애플리케이션, 분석 워크로드 및 Elasticsearch 워크로드와 같은 워크로드에 안성 맞춤
- I3 인스턴스는 최대 64vCPU, 488GiB 메모리 및 15.2TB 스토리지와 함께 64k지 크기로 사용 가능
- ERP 애플리케이션에 가장 적합함
2.2.7. 인텔 프로세서 기술
- 인텔 AVX(AVX, AVX2 및 AVX-512) – 고도로 병렬적인 HPC 워크로드
ㅁ 생명 과학 공학, 데이터 마이닝, 재무 분석 또는 기타 기술 컴퓨팅 애플리케이션과 같은 고도로 병렬적인 HPC 워크로드에 안성 맞춤
ㅁ AVX는 이미지, 동영상 또는 오디오 처리를 개선
- 인텔 AES-NI – 데이터 암호화/복호화 가속
ㅁ 암호화 명령어로 보안을 강화하고 암호화/복호화 데이터와 관련된 성능 저하를 줄여줌
- 인텔 터보 부스트 기술 – 워크로드 급증에 따라 조정되는 성능을 통해 필요할 때 더 큰 컴퓨팅 파워 확보
ㅁ Thermal headroom이 있을 대 자동 Over-Clocking
- 인텔 TSX(트랜잭션 동기화) 확장- 처리량 가속화를 위해 독립적인 트랜잭션 실행을 활성화
- 인텔 TSX는 작은 단위 잠금(전체 해시 테이블에 대한 단일 잠금)을 사용하여 개발된 멀티스레드 애플리케이션에 대한 성능 이점을 제공
- 큰 단위 잠금은 사용하고 이해하기 더 쉽고 디버깅하기 더 쉬움
- 인텔 TSX는 프로그래머가 트랜잭션 동기화를 위해 코드 리전을 지정할 수 있도록 허용하는 명령어 세트 확장을 제공
- 프로그래머는 이 확장을 사용해 실제로는 큰 단위 잠금을 사용해 프로그래밍하면서 작은 단위 잠금의 성능을 달성할 수 있음.
- P 상태 및 C 상태 제어 – 애플리케이션 성능을 높이도록 각 코어 성능과 절전 상태를 개별적으로 미세 조정할 수 있는 기능 제공
2.3 Amazon EC2 요금
2.3.1. 초 단위 청구
- 요금은 종량 과금제 (최소 60초에서 1초씩 증가할 때마다 요금 청구)
- 온디맨드, 예약 및 스팟 형태
- 불규칙한 기간 동안 실행 중인 인스턴스 기준
- 시간에 따른 사용량을 극대화
- 모든 리전 및 가용 영역 가능
- Amazon Linux 및 Ubuntu에 대해서 지원
2.3.2. 요금 옵션
구분 |
온디맨드 인스턴스 |
스팟 인스턴스 |
예약 인스턴스 |
전용 호스트 |
조건 |
종량 과금제 |
미사용 용량에 입찰, 입찰가보다 가격이 높은 경우 인스턴스가 중단 될 수 있음 |
1년 또는 3년 |
온디맨드(시간당)로 구입 가능 온디맨드 가격에서 최대 70% 할인된 예약으로 구입 가능 |
이점 |
낮은 비용과 유연성 |
대규모 동적 워크로드 |
필요할 때 컴퓨팅 파워를 이용할 수 있도록 보장하는 예측 가능성 |
라이선싱 비용 절감 규정 준수 및 규제 요건 충족 |
비용 |
사용한 만큼만 지불 초 단위 청구 |
스팟 요금은 수요/공급에 다라 결정됨 초 단위 청구 |
선결제 금액이 없거나 낮음. 전체 비용이 절감됨 초 단위 청구 |
계정에서 호스트가 활성 상태인 매시간 온디맨드 요금 지불 |
사용 사례 |
변동이 심하거나 예측하기 힘든 단기 워크로드 애플리케이션 개발 또는 테스트 |
시작 및 종료 시간이 자유로운 애플리케이션 컴퓨팅 가격이 매우 저렴 해야만 수익이 나는 애플리케이션 대량의 용량 추가로 긴급히 컴퓨팅 파워가 필요한 사용자 |
안정적 상태 또는 예측 가능한 사용량 워크로드 재해 복구 등 예약된 용량이 필요한 애플리케이션 총 컴퓨팅 비용을 절감하기 위해 선 결제 금액을 지불할 수 있는 사용자 |
기존 보유 라이선스 사용 (BYOL) 규정 준수 및 규제 제한 사용량 및 라이선싱 추적 인스턴스 배치 제어 |
ㅁ 스팟 인스턴스 최대 절전
- 중단 발생 시 Amazon EBS 지원 인스턴스를 최대 절전 상태로 전환
- 용량을 사용할 수 있게 되면 인스턴스를 재개
- 암호화된 Amazon EBS 볼륨을 루트 볼륨으로 사용
- 최대 절전 에이전트가 필요
- 요구 사항에 대한 설명서 확인
2.4. Amazon EC2 모범 사례
2.4.1. Amazon EC2 보안
I. 자격 증명을 통해 사용자에 대한 최소화된 권한 부여
보안을 관리할 때, 세분화된 액세스 제어를 사용하여 잠재적으로 위험성 있는 활동을 줄이는 것이 중요
Amazon EC2 인스턴스에 대한 액세스 제공 시 AWS IAM을 사용하여 액세스가 필요한 환경에만 사용자가 액세스하도록 해야 함.
II. 보안 그룹에 최소한의 권한 규칙 구현
한 인스턴스의 사용자가 다른 인스턴스로 이동 할 수 있는 권한을 제한하는 것이 중요함
보안 그룹 내에 인스턴스의 트래픽이 어디에서 송수신 될 수 있는지 정확히 저장함으로써 보안 그룹을 사용해 이러한 행동을 방지
III. 인스턴스 업데이트
- Linux 인스턴스에 SSH 사용, Windows 인스턴스에 RDP 사용
- 모든 업데이트 또는 특정 업데이트 설치
- 업데이트가 완료되면 재부팅
- 새 인스턴스를 시작할 때 재사용하도록 업데이트되고 보호된 인스턴스 이미지 저장
두 스토리지 옵션의 차이를 이해하고 신중하게 선택하는 것이 중요함
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
2.6.1. 리소스 관리 기본 개념
인스턴스 메타 데이터는 실행 중인 인스턴스를 구현 또는 관리하는 데 사용할 수 있는 인스턴스 관련 데이터
2.6.2 Amazon EC2 VPC 한도
모범 사례”
- 인스턴스를 주기적으로 백업
- 앱의 중요 구성 요소는 여러 AZ에 걸쳐 배포
- 인스턴스를 다시 시작할 때 IP 주소를 동적으로 지정하도록 앱을 설계
- 이벤트를 모니터링하고 이에 대응
- 장애 조치를 처리할 수 있도록 준비
- 인스턴스와 EBS 볼륨 복구 프로세스를 주기적으로 테스트
3.1. Amazon Simple Storage Service (S3)
3.1.1. Amazon S3 검토
원활하게 확장되도록 설계된 관리형 클라우드 스토리지 솔루션으로 99.999999999%의 내구성 제공
- Amazon S3는 객체 수준 스토리지 제공
- 파일 일부를 변경하려면, 파일을 변경한 다음 변경된 파일 전체를 다시 업로드 해야 함
- 원하는 만큼 많은 수의 객체를 저장할 수 있음
- 데이터는 중복으로 저장됨
- 여러 시설과 각 시설의 여러 디바이스에 중복 저장
- Amazon S3는 AWS management Console, AWS SDK 또는 타사 솔루션을 통해 액세스 할 수 있음
- 객체 업로드와 저장 데이터는 자동으로 암호화 될 수 있음
- 스토리지 액세스 패턴을 분석하고 올바른 데이터를 올바른 스토리지 클래스로 전환하기 위한 스토리지 클래스 분석(S3analytics)을 제공함
3.1.2. Amazon S3 활용 방식
- Amazon S3는 데이터를 버킷 내에 저장
- 버킷이란 기본적으로 파일 집합에 대한 접두사
- 모든 Amazon S3에서 고유한 이름을 가져야 함
- 버킷은 객체에 대한 논리적 컨테이너
- 계정에 하나 이상의 버킷을 만들 수 있으며 각 버킷에 대한 액세스를 제어할 수 있음
- 즉, 버킷에서 객체를 생성, 삭제 및 나열 할 수 있으며 버킷 및 버킷의 객체에 대한 액세스 로그를 확인하고 Amazon S3가 버킷 및 버킷의 콘텐츠를 저장할 지리적 리전을 선택할 수 있음
3.1.3. Amazon S3 사용 비용
I. 다음에 대해 사용한 만큼만 지불
- 월별 GB
- 다른 리전으로 송신
- PUT, COPY, POST, LIST 및 GET 요청
II. 다음에 대해서는 지불하지 않음
- Amazon S3로 수신
- Amazon S3에서 같은 리전의 Amazon CloudFront 또는 Amazon EC2로 송신
3.1.4. Amazon S3 옵션
I. 일반 목적: Amazon S3 스탠다드
- 가용성 요구 사항이 더 높은 경우: 교차 리전 복제 사용
II. 액세스 빈도가 낮은 데이터: Amazon S3 스탠다드 – Infrequent Access
- 저장된 GB당 비용 저렴
- PUT, COPY, POST 또는 GET 요청당 비용이 많이 발생
- 최소 30일 스토리지
3.2. Amazon Elastic Block Store (EBS)
3.2.1 AWS 스토리지 옵션: 블록 및 객체 스토리지 비교
- 블록 스토리지 솔루션은 일반적으로 객체 수준 스토리지 보다 속도가 빠르고, 대역폭은 더 낮지만, 비용이 더 높음.
3.2.2. Amazon Elastic Block Store (EBS) 생성
- Amazon EBS는 블록 수준 스토리지 제공
- 볼륨은 가용 영역 내에서 자동으로 복제
- 볼륨은 Amazon S3로 자동 백업 될 수 있음
ㅁ 용도:
- EC2 인스턴스 용 부팅 볼륨 및 스토리지
- 파일 시스템 내 데이터 스토리지
- 데이터 베이스 호스트
- 엔터프라이즈 애플리케이션
3.2.3. Amazon EBS 볼륨 유형
구분 |
SSD(솔리드 스테이트 드라이브) |
HDD(하드 디스크 드라이브) |
||
범용 |
프로비저닝된 IOPS |
처리량에 최적화 |
Cold |
|
최대 볼륨 크기 |
16TiB |
16TiB |
16TiB |
16TiB |
볼륨당 최대 IOPS |
10,000 |
20,000 |
500 |
250 |
최대 처리량/볼륨 |
160MiB/S |
320MiB/S |
500MiB/S |
250MiB/S |
사용 사례 |
대부분의 워크로드 시스템 부트 볼륨 가상 데스크톱 지연 시간이 짧은 대화형 앱 개발 및 테스트 환경 |
I/O 집약적 워크로드 관계형 DB NoSQL DB |
낮은 가격으로 일관되고 빠른 처리량을 요구하는 스트리밍 워크로드 빅데이터 데이터 웨어하우스 로그 처리 부팅 볼륨이 될 수 없음 |
자주 액세스 하지 않는 대량의 데이터 볼륨을 처리량 중심으로 저장 스토리지 비용이 최대한 낮아야 하는 시나리오 부팅 볼륨이 될 수 없음 |
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
3.3.1. Amazon EFS 개요
- AWS 클라우드의 파일 스토리지
- 공유 스토리지
- 페타바이트 규모 파일 시스템
- 탄력적 용량
- 네트워크 파일 시스템 버전 4.0 및 4.1(NFSv4) 프로토콜 지원
- Amazon EC2용 모든 Linux 기반 AMI와 호환됨
3.3.2. Amazon EFS 아키텍처
- 가용 영역(AZ)별 탑재 대상 네트워크 인터페이스 생성됨
- 동일한 가용 영역내 탑재 대상에서 파일 시스템을 액세스 함
- 가용 영역 C의 경우 2개의 서브넷이 있지만 탑재 대상은 하나의 서브넷에만 생성됨
3.3.3. Amazon EFS 파일 시스템
ㅁ 탑재 대상
- 서브넷
- 보안 그룹
- 파일 시스템당 하나 이상
- VPC 서브넷에서 만들기
- 가용 영역당 하나
- 동일한 VPC에 있어야 함
ㅁ 태그
ㅁ 키-값 페어
3.3.4. Amazon EFS 구현
①. Amazon EC2 리소스를 만들고 EC2 인스턴스를 실행
②. Amazon EFS 파일 시스템 구성
③. 알맞은 서브넷에 탑재 대상을 생성
④. Amazon EC2 인스턴스를 탑재 대상에 연결
⑤. 리소스를 정리하고 AWS 계정 보호
3.4. Amazon Glacier
3.4.1. Amazon Glacier 개요
Amazon Glacier는 보안, 내구성 및 매우 저렴한 비용을 제공하도록 설계된 데이터 아카이브 서비스
- 99.999999999%의 내구성 제공하도록 설계
- 전송 데이터 및 저장 데이터에 SSL/TLS 암호화 지원
- 저장소 잠금 기능은 잠금 가능한 정책을 통해 규정 준수 강화
- 매우 저렴한 비용의 설계는 장기 아카이브에 적합
ㅇ 몇 분에서부터 몇 시간 가지 아카이브를 액세스할 세가지 옵션(고속 검색, 표준 및 대량)을 제공
ㅇ 고속 검색 1~5분, 표준 검색, 3~5시간, 대량 검색 5~12시간 내 완료
3.4.2. 수명 주기 정책
Amazon S3 수명 주기 정책을 사용하면 생성 후 기간을 기준으로 객체를 삭제 또는 제거 가능
객체별로 수명 주기 규칙을 설정할 수 있을 뿐 아니라 버킷별로 수명 주기 규칙을 설정할 수도 있음
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/object-lifecycle-mgmt.html
4. Amazon 데이터 베이스
4.1 Amazon Relational Database Service
4.1.1. Amazon Relational Database Service (RDS) 개요
- 관리형 서비스
- AWS Management Console, AWS RDS 명령줄 인터페이스 또는 간단한 API 호출을 통해 액세스 가능
- 확장 가능(컴퓨팅 스토리지)
- 자동화된 중복성 및 백업 지원
- 지원되는 데이터베이스 엔진
ㅁ Amazon Aurora, PostgreSQL, MySQL, MariaDB, ORACLE, Microsoft SQL Server
4.1.2. Amazon RDS 사용 시기
I. 앱에서 다음이 필요할 때 Amazon RDS를 사용
- 복잡한 트랜잭션 또는 복잡한 쿼리
- 보통 및 빠른 쿼리/쓰기 속도 – 최대
30,000 IOPS(15,000 읽기 + 15,000 쓰기)
- 단일 작업자 노드/샤드를 사용
- 높은 내구성
II. 앱에서 다음이 필요할 때는 Amazon RDS를 사용하지 말 것
- 대규모 읽기/쓰기 속도(예: 150,000 쓰기/초)
- 큰 데이터 크기 도는 처리량 수요로 인한 샤딩
- NoSQL 데이터베이스가 처리할 수 있는 간단한 Get/Put 요청 및 쿼리
- RDBMS 사용자 정의
4.2. Amazon DynamoDB
4.2.1. Amazon DynamoDB 개요
Amazon Dynamo DB는 완전 관리형 NoSQL 데이터베이스 서비스
데이터에 간단한 GET/PUT 요청을 실행하는 경우 관계형 데이터베이스 대신 DynamoDB 사용을 고려
- 규모와 관계없이 일관되게 10밀리초 미만의 지연 시간 제공
- 테이블 크기 및 처리량 제한이 없음
- 글로벌 테이블은 리전 간 데이터 복제와 업데이트 충돌 해결의 어려움을 없앱니다.
- 온디맨드 백업을 사용해 테이블의 전체 백업을 생성할 수 있음.
4.2.2. 기본 사항
- SSD에서만 실행
- 문서 및 키 값 스토어 모델을 지원
- 모바일, 웹, 게임 광고 기술 및 IoT 애플리케이션에 적합
- AWS Management Console, AWS 명령줄 인터페이스 또는 간단한 API 호출을 통해 액세스 가능
4.2.3. 기본 처리량
- 사용자가 처리량 용량 오구 사항(읽기/쓰기)을 지정하면, DynamoDB가 필요한 리소스를 할당
- 읽기 용량 유닛
ㅁ 최대 4KB 크기의 항목에 대해 초당 강력한 일관된 읽기 1건
ㅁ 최대 4KB 크기의 항목에 대해 초당 최종적 일관된 읽기 2건
일관성 수준 |
보증 |
강력 |
선형화 가능성 읽기를 통해 항목의 최신 버전 반환이 보장됩니다. |
제한된 부실 |
일관적인 접두사 최대한 k 접두사 또는 t 간격을 통해 쓰기 뒤 읽기 지연. |
세션 |
일관적인 접두사 단조 읽기, 단조 쓰기, 쓰기 읽기, 읽기 뒤 쓰기. |
일관적인 접두사 |
간격 없이 모든 업데이트의 일부 접두사의 업데이트 반환. |
최종 |
순서 외 읽기. |
- 쓰기 용량 유닛
ㅁ 최대 1KB 크기의 항목에 대해 초당 쓰기 1건
5. AWS IAM(Identity and Access Management)
5.1.1. AWS IAM 개요
AWS 리소스에 대한 사용자의 액세스 및 인증을 중앙에서 관리
- 추가 비용 없이 AWS 계정의 기능으로 제공
- 사용자, 그룹 및 역할을 생성하고, 정책을 이에 적용하여 AWS 리소스에 대한 액세스를 제어
- 어떤 리소스에 액세스할 수 있고 어떻게 액세스할 수 있는지 관리
- 맥락에 따라 필요한 자격 증명을 정의 (누가 어떤 서비스에 액세스하고 있으며 무슨 작업을 수행하고자 하는가)
5.1.2. 보안 자격 증명의 유형
구분 |
내용 |
이메일 주소 |
AWS 계정(루트)에 연결하는데 사용 |
IAM 사용자 이름 및 암호 |
AWS Management Console에 액세스 하는데 사용 |
액세스 키 |
API 및 SDK와 같은 프로그래밍 방식의 요청과 CLI에 주로 사용 |
멀티 팩터 인증 |
보안의 추가 계층 |
루트 계정과 IAM 사용자에 대해 활성화 |
|
키 페어 |
Amazon EC2와 같은 특정 AWS 서비스에만 사용 |
5.1.3. Root 계정 액세스와 IAM 액세스 비교
- 권한은 어떤 리소스와 어떤 작업을 사용할 수 있는지 결정
- 기본 설정에서 모든 권한은 암시적으로 거부
- 명시적으로 거부된 사항은 절대 허용될 수 없음
- 최소한의 권한 원칙 적용
5.1.4. IAM에서 권한 평가하는 방법
정책은 JSON 형식으로 저장, 버전 관리 시스템과 함께 사용할 수 있음
각 사용자, 그룹 또는 역할에 대해 최소한의 액세스 권한을 정의하는 것이 좋음
5.2.1. IAM 정책이란
\IAM 정책은 하나 이상의 권한으로 구성된 공식 문
- 정책을 IAM 엔터티 즉, 사용자, 그룹 또는 역할에 연결함
- 정책은 엔터티가 수행할 수 있거나 수행할 수 없는 작업에 대한 권한을 부여
- 정교한 액세스 제어가 가능
- 단일 정책이 여러 개의 엔터티에 연결될 수 있음
- 단일 엔터티에 여러 개의 정책이 연결 될 수 있음
모범 사례: 여러 IAM 사용자에게 같은 정책을 연결할 때, 사용자를 그룹에 넣은 후, 사용자가 아닌 그룹에 정책을 연결
5.2.2. IAM 정책 예시
이 정책은 사용자에게 다음에 대한 액세스 권한만을 부여
가. 이름이 테이블-이름으로 표시되는 DynamoDB 테이블
나. 이름이 버킷 이름과 버킷에 포함된 모든 객체로 표시는 AWS 계정의 기업 Amazon S3 버킷
5.3.1. IAM 사용자
- 사용자가 AWS에 생성한 엔터티
- AWS와 상호 작용하는 방법을 제공
- IAM 사용자에 대한 기본 보안 자격 증명은 없음
- IAM 사용자는 사람이 아닐 수도 있음
5.3.2. IAM 그룹
- IAM 사용자의 모음
- 전체 그룹에 대한 권한을 지정
- 기본 그룹은 없음
- 그룹은 중첩될 수 없음
- 한 사용자가 여러 그룹에 속할 수 있음
- 권한은 IAM 정책을 사용하여 정의함.
5.3.3. IAM 역할
- AWS 리소스에 대한 액세스 권한을 위임하는 데 사용
ㅁ 임시 액세스를 제공
ㅁ 정적 AWS 자격 증명의 필요성을 제거
- 권한은
ㅁ IAM 정책을 사용하여 정의
ㅁ IAM 사용자 또는 그룹이 아니라 역할에 연결
- 사용 사례
ㅁ AWS 리소스에 AWS 서비스에 대한 액세스 제공
ㅁ 외부 인증 사용자에게 액세스 제공
- 타사에게 액세스 제공
ㅁ 타사에서 AWS 리소스를 관리하는 서비스 제공 시 IAM 사용하면 AWS 보안 자격 증명을 공유하지 않고도 타사에 AWS 리소스에 대한 액세스 권한 부여 가능
다음 리소스에 액세스하도록 역할을 전환
- 자신의 AWS 계정
- 다른 AWS 계정(교차 계정 액세스)
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/getting-started_create-admin-group.html
I. 가능한 빨리 루트 계정 사용을 중단 할 것
A. 루트 계정으로 자신을 위한 IAM 사용자 생성
B. IAM 그룹을 만들고 전체 관리자 권한을 부여하며 IAM 사용자를 그룹에 추가
C. IAM 사용자 자격 증명으로 로그인함
D. 루트 계정 자격 증명을 매우 안전한 장소에 저장, 루트 계정 액세스 키가 있는 경우 이를 비활성화한 후 제거
II. 액세스를 위한 멀티 팩터 인증 구성
https://aws.amazon.com/ko/iam/details/mfa/
A. 루트 계정과 모든 IAM 사용자에 대한 MFA가 필요
B. MFA를 사용하여 AWS 서비스 API에 대한 액세스를 제어할 수 있음
소프트웨어 MFA 옵션: AWS 가상 MFA, Google authenticator, Authenticator(Windows 폼 앱) 또는 SMS 알림
하드웨어 MFA 옵션: Gemalto에서 제공하는 전자 키 또는 디스플레이 카드
III. AWS CloudTrail 활성화
AWS CloudTrail은 계정의 리소스에 대한 모든 API 요청을 로깅함.
A. CloudTrail 콘솔을 통해 추적을 생성, 추적에 이름을 붙이고, 모든 리전에 적용 후 로그가 저장될 새로운 Amazon S3 버킷에 이름을 입력
B. 관리자와 같이 액세스가 필요한 사용자 외에는 CloudTrail에 사용하는 Amazon S3 버킷에 대한 액세스가 제한되도록 해야 함.
C. CloudTrail 지원 항목
- 보안 분석
로그 파일을 로그 관리 및 분석 솔루션에 입력으로 사용하여 보안 분석을 수행하고 사용자 행동 패턴을 감지할 수 있음
- AWS 리소스 변경 사항 추적
Amazon EC2 인스턴스, VPC 보안 그룹, EBS 볼륨 등과 같은 AWS 리소스의 생성, 변경 및 삭제를 추적
ㅁ 작업 관련 문제 해결
사용자 환경의 리소스에 가장 최근에 이루어진 변경 사항을 빠르게 식별할 수 있음
ㅁ 규정 준수 지원
AWS 리소스가 규칙 및 규제 표준에 따라 관리되고 있음을 입증하는데 필요한 정보에 액세스할 수 있음
ㅁ AWS Config와 연동하여 변경에 대한 책임을 식별
AWS 리소스 인벤토리, 구성 내역 및 구성 변경 알림을 제공
AWS 리소스와 관련된 모든 구성 변경에 대한 세부 정보를 계속 제공
CloudTrail과 결합하여 변경을 일으킨 원인에 대한 완전한 가시성 확보
규정 준수 감사, 보안 분석, 리소스 변경 추적 및 문제 해결을 가능하게 함
IV. AWS 비용 및 사용 보고서와 같은 결제 보고서 활성화
https://docs.aws.amazon.com/ko_kr/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html
- 결제 보고서는 AWS 리소스 사용량에 대한 정보와 리소스 사용에 대한 추정 비용을 제공
- AWS는 사용자가 지정한 Amazon S3 버킷으로 보고서를 전달하며, 최소한 하루에 한번 보고서를 업데이트 함
- AWS 비용 및 사용 보고서는 AWS 사용을 추적하고, AWS 계정과 관련된 시간 별 또는 일별 추정 비용을 제공
https://docs.aws.amazon.com/ko_kr/config/latest/developerguide/resource-config-reference.html
AWS Config는 AWS 계정의 AWS 리소스에 대한 상세한 보기를 제공하여 리소스 간에 어떤 관계가 있는지와 리소스가 과거에 어떻게 구성 되었는지도 포함하여 시간이 지나면서 구성과 관계가 어떻게 변하는지 확인 할 수 있음.
AWS Config에서는 다음 작업을 수행 할 수 있음
- 현재 AWS 구성의 스냅샷을 받음
- AWS 리소스 구성을 검색
- AWS 리소스의 이전 구성을 검색
- 리소스가 변경 될 때 알림 수신
- 리소스 간의 관계 확인
상호 의존 관계가 있는 여러 AWS 리소스를 사용할 때 한 리소스의 구성 변경이 관련된 리소스에 의도하지 않는 영향을 줄 수 있음
AWS Config에서는 변경하려는 리소스가 다른 리소스와 어떤 관계가 있는지 확인 하고 변경의 영향을 평가할 수 있음
또한 AWS Config가 제공하는 리소스의 이전 구성을 사용하여 문제를 해결하고 문제가 되는 리소스의 문제 발생 이전의 구성을 확인 할 수 있음.
'AWS Architecture Basic > 기본 개념 및 주요 서비스' 카테고리의 다른 글
3. AWS 핵심 지식 (0) | 2021.02.08 |
---|---|
2. 범주 별 AWS 서비스 (0) | 2021.02.08 |
1. AWS 개념 (0) | 2021.02.08 |