최근에 팀에서 AWS 자격증 비용을 지원해준다고 하여 준비하면서 공부했던 내용을 작성하려고 합니다.
기초편에서는 IAM, EC2 , AutoScaling, EBS, Instance Store에 대해서 배워 봅시다!
IAM은 AWS 계정 및 권한 관리 서비스 입니다.
해당 IAM의 구성요소로는 사람, 그룹, 정책, 역할로 이루어져 있습니다.
역할은 AWS 리소스에서 사용하는 자격증명 , 정책을 연결하여 IAM 역할에 작업 수행에 필요한 권한 부여할 때 사용합니다.
정책은 AWS 리소스에 접근하기 위한 권한을 임명하는 것을 말합니다.
-> 신뢰정책 (Trust Policy) 은 다른 AWS 계정에 역할을 자신의 정책을 위임 하는 것을 말합니다.
사람, 그룹은 정책이나 역할을 부여받는 대상자를 의미합니다.
IAM 자격증명 보고서는 계정의 모든 사용자와 암호, 엑세스 키 , 자격 증명 상태에 대한 정보 보고서 다운로드 기능 제공합니다.
IAM 엑세스 관리자 : 사용자 또는 역할이 허용된 서비스에 마지막 엑세스 시간 측정 기능 제공 합니다.
해당 엑세스 관리자는 강력한 암호 정책과 멀티팩터 인증(MFA) 적용하여 좀 더 보안에 신경을 써주는 것이 좋습니다.
Permission Boundary : 정책이 겹치는 경우 겹치는 정책만 가지고 있게 됩니다.
EC2 (Elastic computer cloud) : 우리가 사용하는 기본 인스턴스를 말합니다.
TAG : AWS 자원을 관리 할 때 관리를 편하기 위해 사용자가 정의하는 키와 값쌍을 의미하며 EC2 자원을 효율적으로 관리가 가능합니다.
AMI (Amazon Machine Image) : 해당 EC2혹은 특정 리소스 설정을 동일한 설정 할 때 사용하는 image 즉 스냅샷이라고 생각하면 편하다.
종류 : AWS제공 AMI , AWS 마켓플레이스 AMI 가 있다.
Amazon Ec2 Metadata : EC2의 인스턴스의 속성 및 정보 데이터를 의미한다.
-> AMI Id, IP 주소 , EBS 매핑 등 169.254.169.254 에 접속하여 메타 데이터 조회 가능합니다.
-> userData 에 해당 데이터들을 가져와서 연결하는데 사용 할 수 있으며 userData는 인스턴스가 생성되었을 때 실행해야 하는 명령어를 의미합니다.
최대 절전 모드 (hiberate) : EC2 상태 중에서 메모리의 정보를 하드디스크에 저장하여 로드를 빠르게 하는 모드를 의미합니다.
클로스터 : 동일한 랙 안에 인스턴스를 배치하는 전략이며 네트워크 성능을 올리 수 있으나 한 랙에 문제 발생시 모든 인스턴스에 문제가 발생합니다. -> DR전략 필수
분산(spread) : 렉 하나당 인스턴스 하나를 분리 AZ당 7개의 인스턴스만 배치할 수 있기 때문에 많은 인스턴스 배치해야하는 경우 도입이 어려울 수 있습니다.
파티션: 분산 및 클로스터를 합친 개념
온디맨드 인스턴스 : 약정없이 초당 사용한 만큼 비용 지불, 초기 개발시에 사용합니다.
스팟 인스턴스 : 사용 안하는 인스턴스를 경매 방식으로 구매 , 저렴하나 인스턴스가 꺼질 수 있습니다.
Savings Plan : 사용량 혹은 인스턴스 패밀리를 약정해서 할인 받는 요금 모델 : RI보다 유연합니다.
-> 약간 덜 관리하고 덜 할인 받는 모델
Reserved Instances(예약 인스턴스) : 사용 기간을 약정해서 할인 받는 모델을 말합니다.
-> 제약사항이 많지만 할인율 높음
전용 호스트 : 물리적인 전용 서버를 할당받는 방식 CPU 코어나 물리적 서버에 할당되는 라이선스를 보유한 경우에 적합
전용 인스턴스 : 물리적인 전용 서버를 할당받는 방식은 동일하나 라이센스나 인스턴스 배치 불가능
고가용성을 제공하기 위해 EC2 인스턴스 를 자유자제로 조절하는 기능을 제공합니다.
조절하는 방식은 다음과 같습니다.
Horizontal Scale(Scale Out) : 인스턴스의 개수 늘리기
Vertiual Scale(Scale Up) : 성능 높이기
시작 구성 요소 : EC2의 타입, 사이즈, AMI, 보안 그룹, 유저 데이터
보안그룹이란? 각 인스턴스끼리 접근 제한을 설정 할 수 있으며 InBound OutBound 소켓 설정을 할 수 있으며 말 그대로 보안 기능을 제공한다.
항상 현재 인스턴스 수준 유지 관리
지정된 수의 실행 인스턴스만 유지 , 해당 인스턴스가 비정상이면 종료후 새 인스턴스 생성
수동 조정
최대 , 최소 원하는 용량을 설정하여 사용
온디맨드 기반 조정( 동적조정)
3-1) 대상 추적 조정(Target Tracking)
사용자가 지정한 지표 목표값이 초과 될시에 그룹을 조정하는 방식
CPU, 인터페이스 송/수신한 평균 바이트 수
3-2) 단계 조정(Step Scaling)
CloudWatch alarm 의 지표를 기반으로 그룹을 조정
크기 조정 활동 또는 상태 확인 교체가 완료되고 Cooldown Period 를 가짐
3-3) 단순 조정(Simple Scaling)
CloudWatch alarm 의 지표를 기반으로 그룹을 조정
Cooldown Period를 안가지고 계속 그룹 조정
3-4) Amazon SQS 기반 크기 조정
SQS 대기열의 시스템 로드 변경에 따른 그룹 조정
일정을 기반으로 조정
-> 확장 작업이 시간 및 날짜 함수에 따라 자동 실행, 사람이 몰리는 시간대를 예측하여 인스턴스 늘리기
예측 조정 사용(Predictive Scaling)
-> 머신러닝을 사용하여 데이터 기반 용량 예측
Scaling Cooldowns : 인스턴스의 개수 변동 이후에 휴식 기간을 가짐, 안정적인 서비스가 진행될 때 까지 스케일링 진행하지 않는 것을 말한다.
LifeCycle Hook : Auto Scaling 수명 주기 이벤트를 인식하고 사용자 지정 작업 실행 (스프링 빈처리기 생각)
인스턴스 시작전 (Pending State) , 인스턴스 종료 전(Terminating State) 상태를 제공한다.
EBS(Elastic Block Sotre) : 우리가 게임을 설치하게 된다면 해당 게임 파일이 설치되는 공간 EC2와 별개의 공간으로 이루어져 있으며 공간을 늘렸다 할 수 있다.
여러개의 EBS 볼륨을 생성하여 EC2에 추가가능 하나 동일한 AZ와 SSD에 대해서만 가능
스냅샷을 통한 EBS 볼륨 백업 , 복구 , 복제 기능을 제공합니다.
수명주기관리를 통한 스냅샷 관리 자동화 기능을 제공합니다.
AWS Key Management Service (KMS) 를 통해 암호화 가능
해당 EBS에서 알고 있으면 좋은 점은 하나의 AZ에 대해서만 생성가능하며 DR의 지문에 어울리지 않지만 그만큼 빠른 성능을 제공할 수 있습니다.
블록 스토리지 중에서 임시 스토리지이며인스턴스는 서버에 직접 장착하여 IOPS 성능을 높인다
임시 파일을 저장하는 가장 빠른 옵션이지만 인스턴스가 종료시 해당 데이터를 손실합니다.
지금까지 AWS 에서 제공하는 기본편에 대한 기능을 알아보았습니다. :)
다음에는 AWS 데이터베이스에 대해서 배워봅시다.