Amazon EC2 (Elastic Compute Cloud)
Amazon EC2는 클라우드에서 안전하고 확장 가능한 컴퓨팅 용량을 제공하는 서비스로, 사용자가 원하는 만큼의 가상 서버를 신속히 구성하고 관리할 수 있도록 지원함
목차
- EC2 Introduce
- EC2 Components
- EC2 Instaces
- EC2 Instace Purchase Options
- EC2 AMI
- EC2 Security Group
- EC2 Auto Scaling Group
- AWS Elastic Block Store
- 참고 자료
EC2 Introduce
Amazon EC2는 사용자가 애플리케이션을 클라우드에서 실행할 수 있도록 다양한 인스턴스 유형을 제공하며, 이를 통해 확장성, 유연성, 비용 효율성을 갖춘 서버 환경을 지원합니다.
주요 개념
- Instance: EC2에서 제공하는 가상 머신(virtual machine).
- AMI (Amazon Machine Image): 인스턴스 생성을 위한 템플릿.
- Instance Type: 컴퓨팅, 메모리, 스토리지 등이 다른 다양한 유형.
- Amazon EBS Volume : Elastic Block Store를 사용하는 데이터에 대한 영구 스토리지 볼륨
- Instance Store Volume : 인스턴스를 중단, 최대 절전 모드로 전환 또는 종료할 때 삭제되는 임시 데이터용 스토리지 볼륨.
- Key Pair : 인스턴스에 대한 보안 로그인 정보. AWS는 퍼블릭 키를 저장하고 사용자는 프라이빗 키를 안전한 장소에 저장
- Security Group: 인스턴스에 도달할 수 있는 프로토콜, 포트 및 소스 IP 범위와 인스턴스가 연결할 수 있는 대상 IP 범위를 지정할 수 있는 가상 방화벽.
EC2 Components
- AMI: 인스턴스에서 실행할 소프트웨어(예: OS)가 포함된 템플릿
- Key Pair: 인스턴스에 연결할 때 ID를 증명하는 데 사용하는 보안 자격 증명 세트. 퍼블릭 키는 인스턴스에 있고 프라이빗 키는 로컬에 있음
- Network: Virtual Private Cloud(VPC)는 AWS 계정 전용 가상 네트워크이며 기본 VPC에는 각 가용 영역에 기본 서브넷이 있음
- Security Group: 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할
- EBS Volume: 이미지의 루트 볼륨이 필요함. 필요에 따라 데이터 볼륨을 추가할 수 있음
EC2 Instances
1. 인스턴스 종류
인스턴스 유형 | 설명 |
---|
범용 | 다양한 워크로드에 적합한 균형 있는 성능 제공 (예: T, M 시리즈) |
컴퓨팅 최적화 | 고성능 CPU가 필요한 컴퓨팅 작업에 적합 (예: C 시리즈) |
메모리 최적화 | 대규모 메모리를 요구하는 데이터베이스, 캐싱 등에 적합 (예: R, X 시리즈) |
스토리지 최적화 | 고속 I/O 성능을 요구하는 작업에 최적화 (예: I, D 시리즈) |
가속화된 컴퓨팅 | GPU, FPGA 등이 필요한 고성능 연산에 최적 (예: P, G 시리즈) |
2. 인스턴스 선택 시 고려사항
- 애플리케이션의 특성과 요구사항 (CPU, 메모리, 스토리지, 네트워크 성능)
- 비용 효율성 (온디맨드, 예약 인스턴스, 스팟 인스턴스 등의 가격 모델 고려)
- 확장성 및 탄력성 요구사항
- 규정 준수 및 보안 요구사항
- 지리적 위치 및 가용 영역 고려
3. EC2 인스턴스 선택 방법 및 최적화 도구 활용
- AWS EC2는 다양한 인스턴스 유형을 제공하여, 워크로드 특성에 맞게 선택할 수 있도록 함.
- Cost Explorer:
- 사용법: 지난 14일간의 리소스 사용량과 비용을 분석해 특정 인스턴스 패밀리 내에서 가장 적합한 인스턴스 크기를 추천받을 수 있음.
- 활용 팁: 여러 인스턴스를 테스트할 필요 없이, 예상 비용과 리소스 요구량을 미리 분석할 수 있어 효율적
- Compute Optimizer:
- 사용법: 머신러닝을 기반으로 인스턴스 성능을 최적화하는 추천 사항을 제공
- 활용 팁: CPU, 메모리, 네트워크 등의 요구사항을 예측해, 현재 선택된 인스턴스가 적합한지 판단하고 더 나은 성능 또는 비용 최적화를 위해 인스턴스 크기나 유형 변경을 제안
- Amazon EC2 인스턴스 유형으로, 기본적인 수준의 컴퓨팅 성능을 제공하면서도 필요할 때 순간적으로 추가 성능을 사용할 수 있는 기능을 가진 인스턴스.
- 이러한 인스턴스는 기본적으로 저렴한 가격에 기본 성능을 유지하며, 일정 기간 동안 CPU 크레딧을 축적하여 추가 성능이 필요한 순간에 크레딧을 사용해 성능을 확장할 수 있음
- 많은 범용 워크로드는 평균적으로 바쁘지 않고, 높은 수준의 지속적인 CPU 성능이 필요하지 않음..
- 주요 특징
- CPU 크레딧 기반: 인스턴스는 CPU 크레딧을 모아서 필요할 때 소비함. 크레딧이 충분할 경우 순간적으로 CPU 성능을 높일 수 있음
- 기본 성능 + 순간 확장성: 기본적인 성능은 항상 제공되며, 크레딧이 쌓이면 순간적인 성능 확장이 가능
- 비용 효율성: 저렴한 비용으로 안정적인 컴퓨팅 성능을 제공하면서, 필요할 때만 추가 성능을 사용해 비용 절감을 가능
- 활용 사례
- 성능 순간 확장 가능 인스턴스는 다음과 같은 불규칙한 트래픽이나 가벼운 작업 부하가 있는 애플리케이션에 적합하다.
- 웹 서버: 대부분의 웹 사이트는 트래픽이 일정하지 않기 때문에, 기본 성능으로 대부분의 요청을 처리하고, 순간적인 트래픽 증가 시 확장된 성능으로 대응이 가능!
- 개발 및 테스트 환경: 지속적인 높은 성능이 필요하지 않지만, 간헐적으로 높은 성능을 요구하는 개발, 테스트 서버에 적합
- 소규모 데이터베이스: 트래픽이 일정하지 않은 소규모 데이터베이스에서는 기본 성능으로 충분하며, 순간적으로 처리 성능이 요구될 때 확장된 성능을 사용할 수 있음
- 마이크로서비스: 특정 시간에만 높은 성능이 필요하고 그 외에는 기본 성능만으로도 충분한 마이크로서비스 아키텍처에 적합
- 장점
- 유연성: 일관된 기본 성능과 필요할 때의 순간 성능 확장이 가능해 다양한 애플리케이션에서 활용할 수 있음
- 비용 절감: 필요한 순간에만 성능을 확장하기 때문에 비용을 최적화할 수 있음
- 사용 가능 타입
- EC2 버스트 인스턴스는 T4g, T3a 및 T3 인스턴스 유형과 이전 세대 T2 인스턴스 유형으로 구성됨
- T4g: T3 대비 최대 40% 더 높은 가격 대비 성능과 20% 더 낮은 비용을 제공하는 가장 저렴한 유형
- T3a: T3 인스턴스 대비 10% 더 낮은 비용으로 가장 저렴한 x86 기반 인스턴스
- T3: 이전 세대 T2 인스턴스에 비해 최대 30% 낮은 가격/성능으로 x86 워크로드에 대한 최고의 피크 가격/성능
- T2:이전 세대 버스트 가능 인스턴스
EC2 Instance Purchase Options
1. 구매옵션 종류
- 온디멘드(On-Demand) 인스턴스
- 특징: 필요할 때 즉시 인스턴스를 시작하며, 장기 계약 없이 시간당 또는 초당 과금.
- 활용: 예측 불가능한 워크로드나 일시적인 테스트 환경에 적합.
- 예시: 특정 마케팅 캠페인, 이벤트로 트래픽 급격히 증가할 때 혹은 스타트업의 초기 제품 (장기약정 부담)
- 예약 인스턴스(Reserved Instances)
- 특징: 1년 또는 3년 동안 EC2 인스턴스를 예약하여 비용을 절감. 최대 75%까지 할인 가능.
- 활용: 일정한 워크로드가 예상되는 경우에 장기적으로 비용 절감.
- 워크로드 예시: 지속적인 접근이 필요하고 예상 사용량이 일정한 사내 인프라 어플리케이션, 백엔드 데이터 베이스 서버 등 항상 가동이 필요한 시스템.
- 절약 플랜(Savings Plans)
- 특징: EC2 인스턴스 유형과 상관없이, 약정한 사용량에 대해 할인 제공. 1년 또는 3년 약정.
- 활용: 특정 인스턴스 유형에 제한되지 않고 유연하게 인스턴스를 사용할 때 비용 절감.
- 예시: 워크로드 특성상 EC2 인스턴스 유형을 자주 변경하거나 서버리스 환경(Lambda, Fargate)과 함께 사용하는 경우나, 신규 서비스 런칭 후 안정화 단계 (사용자 패턴에 따라 유형 변경할 때)
- 스팟 인스턴스(Spot Instances)
- 특징: AWS에서 사용하지 않는 여유 인스턴스를 저렴하게 사용할 수 있음. 최대 90%까지 할인 가능하지만 언제든 종료될 수 있음.
- 활용: 중단에 민감하지 않은 배치 작업, 빅데이터 처리, 분산 컴퓨팅 작업에 적합.
- 예시: 비정기적 데이터 분석 작업, 이미지 및 동영상 렌더링 작업과 같은 일정 시간이 소요되는 배치작업, 대규모 분산 컴퓨팅 작업 (HPC)
- 전용 호스트(Dedicated Hosts)
- 특징: 물리적 서버 전체를 전용으로 사용하며, 인스턴스 배치를 제어할 수 있음. 라이선스 관리에도 유리.
- 활용: 라이선스 요구 사항이 있거나 규제 준수를 위해 물리적 서버에 대한 완전한 제어가 필요한 경우.
- 예시: BYOL(Bring Your Own License)을 사용해야 하거나 특정 물리적 서버 요구 사항이 있을 때, 데이터 격리 요구가 높은 프로젝트나 민감한 정보가 포함된 워크로드.
- 전용 인스턴스(Dedicated Instances)
- 특징: 다른 고객과 물리적 서버를 공유하지 않고 전용 인프라에서 실행. 그러나 전용 호스트처럼 물리적 제어는 없음.
- 활용: 보안과 규제 요건에 맞춰 물리적 격리가 필요한 워크로드에 적합.
- 예시: 보안 요건이 높은 데이터베이스나 다른 고객과의 물리적 격리를 위해 전용 인프라가 필요한 워크로드
- 용량 예약(Capacity Reservations)
- 특징: 특정 리전에 용량을 예약해 필요할 때 즉시 사용할 수 있도록 보장. 예약 기간 동안에는 온디멘드 가격 적용.
- 활용: 특정 시점에 리소스가 반드시 필요할 때나 중단 없는 가용성이 요구될 때.
- 예시: 예측 가능한 이벤트 준비(연말연시와 같은), 긴급 대응용 DR(재해 복구) 시스템 (즉각 가동하여 가용성 보장이 필요한 비즈니스)
2. 스팟 인스턴스 (spot instance)
- 개요
- 온디맨드에 비해 최대 90%까지 할인 받을 수 있음
- 스팟 인스턴스에 대해 지불할 수 있는 최대 스팟 가격을 정의함
- 인스턴스의 스팟 가격이 설정해둔 최대 가격보다 낮다면 해당 인스턴스를 유지
- 만약 초과할 경우 중지하거나 종료함 (유예시간 2분)
- 시간 당 스팟은 오퍼와 용량에 따라 달라짐
- 가격은 수요와 공급에 따라 항상 변화함
- 안정성이 떨어지는 특성. 전체 EC2 인스턴스가 부족해지면 스팟 인스턴스를 종료 시킴..
- 개념
- 스팟 요청(Spot Request):
- 스팟 요청 유형에는 단일 스팟 인스턴스를 요청하는 "단일 요청"과 여러 인스턴스를 요청하는 "스팟 플릿(Spot Fleet)"이 있음
- 요청 시 최대 가격을 설정하며, 현재 스팟 가격이 설정한 가격 이하일 때 요청이 충족됨
- 스팟 플릿(Spot Fleet)
- 다양한 인스턴스 유형과 가용 영역에서 필요한 수의 스팟 인스턴스를 조합하여 자동으로 요청
- 비용을 최적화하고, 여러 인스턴스를 관리할 수 있도록 지원하며, 온디맨드와 스팟 인스턴스를 혼합하여 사용 가능
- 스팟 플릿은 스팟 인스턴스의 집합이며, 선택적으로 온디멘드 인스턴스임
- 스팟 플릿은 가장 낮은 가격을 스팟 인스턴스를 자동으로 요청할 수 있게 해줌.
- 가능한 Launch pool을 정의 → 인스턴스 타입, OS, AZ
- 여러개의 Launch pool을 가질 수 있으며 플릿이 가장 적합한 런치풀을 선택함
- 스팟 플릿이 예산 혹은 용량에 도달할 경우, 인스턴스 시작을 중지함.
- 스팟 가격(Spot Price):
- 스팟 인스턴스의 가격은 AWS의 여유 용량에 따라 변동하며, 사용자는 최대 가격을 지정할 수 있음
- 지정한 가격보다 현재 스팟 가격이 높아지면 인스턴스가 종료될 수 있음
- 중단 알림(Interruption Notice)
- AWS는 스팟 인스턴스를 회수하기 약 2분 전에 중단 알림을 제공
- 이를 통해 중요한 작업을 저장하거나 종료 작업을 수행할 수 있음
- Spot Block
- AWS가 스팟 인스턴스를 회수하는 걸 원하지 않을 경우 사용할 수 있는 옵션
- 지정된 기간동안 스팟 인스턴스를 차단하는 기능 (1~6시간)
- 그 동안 중단 없이, 해당 블록을 사용할 수 있음
- 간헐적으로 인스턴스가 회수되는 경우가 있으나 일반적으로는 회수 되지 않음
- 할당 전략
- 최저가격 : 스팟 플릿은 가장 낮은 풀에서 인스턴스를 실행하기 때문에 비용 최적화가 가능. 워크로드가 매우 짧은 경우도 좋은 옵션임.
- 다각화: 다양한 방법으로 스팟 인스턴스를 실행할 수 있음
이 경우, 스팟 인스턴스는 유저가 정의한 모든 풀에 분산됨. → 가용성과 긴 워크로드에 적합 → 한 풀이 사라져도 다른 풀이 활성화되어 있음
- 용량 최적화 : 사용 가능한 용량이 가장 큰 풀을 선택하고, 그 중 가장 낮은 풀을 선택하는 전략. 대부분의 워크로드에 가장 적합한 선택임
- 활용사례
- 배치 작업 및 데이터 분석, 장애 복원력이 뛰어난 워크로드 등에 사용함
- 중요한 작업이나 데이터 베이스엔 적합하지 않음
EC2 AMI
Amazon Machine Image(AMI)는 여러 유형으로 제공되며, 각 유형은 운영체제, 애플리케이션 스택, 구동 소프트웨어 등에 따라 차별화된 특성을 지님.
1. AMI 유형
2. 루트 디바이스 유형
AMI(Amazon Machine Image)의 루트 디바이스는 인스턴스를 시작할 때 기본 운영 체제가 설치되는 스토리지 장치를 의미함. 이 디바이스는 인스턴스의 부팅 및 운영에 필수적이다.
- 부팅 디바이스: 인스턴스가 시작될 때 가장 먼저 접근하는 디바이스로, 운영 체제와 필수 애플리케이션이 포함됨 종류로는 EBS, Instance Store가 있음
- EBS (Elastic Block Store)
- 특성:
- EBS 볼륨은 EC2 인스턴스와 독립적으로 존재하여, 인스턴스가 종료되더라도 데이터가 유지됨
- EBS 볼륨의 상태를 스냅샷으로 저장할 수 있어, 복구 및 백업이 용이.
- 볼륨 크기를 동적으로 변경할 수 있음
- 일반적으로 사용되는 스토리지, 프로비저닝된 IOPS SSD, 스루풋 최적화 HDD 등 다양한 유형으로 제공됨.
- EBS는 가용 영역 내에서 데이터의 내구성을 보장하기 위해 자동으로 복제됨
- 활용 사례:
- 데이터베이스: 관계형 데이터베이스 및 NoSQL 데이터베이스의 영구 저장소로 적합
- 애플리케이션 서버: 운영 체제와 애플리케이션 데이터를 저장하는 데 사용
- 파일 스토리지: 파일 시스템을 구성하여 파일 저장 및 접근을 위한 스토리지로 활용
- 백업 및 복구: 스냅샷을 통해 중요한 데이터를 백업하고, 필요 시 빠르게 복구할 수 있음
- Instance Store
- 특성:
- 임시 스토리지: 인스턴스와 함께 생성되며, 인스턴스가 종료되면 데이터가 삭제되어 데이터의 영구성을 보장하지 않음
- 고속 성능: 인스턴스 스토리는 EC2 호스트의 로컬 디스크를 기반으로 하여 매우 높은 I/O 성능을 제공
- 간단한 구조: 별도의 설정 없이 바로 사용할 수 있어 즉각적인 성능 요구에 대응할 수 있음
- 활용 사례:
- 임시 데이터 처리: 데이터 처리 또는 계산 과정에서 생성된 임시 파일 및 데이터 저장에 적합
- 캐시 및 세션 저장소: 웹 애플리케이션에서 세션 정보나 캐시 데이터를 빠르게 처리하고 저장하는 데 유용
- 테스트 및 개발: 개발 및 테스트 환경에서 빠르게 인스턴스를 생성하고, 테스트 결과나 로그 데이터를 저장할 수 있음
- 빅데이터 처리: 대량의 데이터를 처리할 때 인스턴스 스토리지를 활용하여 빠른 속도로 데이터에 접근할 수 있음
EC2 Security Group
1. 개요
- EC2 보안 그룹은 AWS에서 제공하는 가상 방화벽
- EC2 인스턴스에 대한 네트워크 접근을 제어
- 보안 그룹은 인스턴스의 네트워크 트래픽을 허용하거나 차단하는 규칙을 설정할 수 있도록 해줌
- 이는 인스턴스를 안전하게 보호하고, 외부의 불필요한 접근을 차단하는 데 중요한 역할을 함
2. 목적
- EC2 인스턴스에 대한 접근을 제어하여 외부 공격 및 무단 접근으로부터 보호함
- 특정 포트 및 IP 주소에서의 트래픽을 허용하거나 차단하여 보안 정책을 시행
- 변경이 필요할 때 즉시 규칙을 수정할 수 있어, 동적으로 보안 요구 사항에 대응할 수 있음
3. 특성
- 보안 그룹은 상태 기반으로 작동. 즉, 인바운드 규칙에서 허용된 트래픽에 대한 응답은 자동으로 허용
- 간편하게 보안 그룹에 규칙을 추가하거나 삭제하며, 실시간으로 적용
- 여러 EC2 인스턴스에 동일한 보안 그룹을 적용할 수 있어 관리가 용이
- 기본적으로 모든 인바운드 트래픽이 차단되고, 모든 아웃바운드 트래픽은 허용
- 보안그룹은 리전과 VPC조합에만 제한됨
- 다른 리전으로 전환하는 경우나 새 VPC를 생성한 경우, 새 보안그룹을 생성해야함
- 보안그룹은 EC2 인스턴스 외부에 있음
즉, 트래픽이 블록될 경우, EC2는 이를 모름
4. 활용 사례
- 웹 서버 보호: HTTP/HTTPS 포트를 열어 웹 서버에 대한 접근을 허용하고, 다른 포트는 차단하여 보안을 강화
- 데이터베이스 접근 제어: RDS와 같은 데이터베이스에 대한 접근을 제한하여 특정 IP 주소에서만 연결할 수 있도록 설정
- 개발 및 테스트 환경: 개발자들이 인스턴스에 접근할 수 있도록 특정 IP 범위를 허용하고, 불필요한 접근을 차단
- VPN 설정: VPN을 통해 내부 네트워크와 EC2 인스턴스를 연결할 때, 필요한 포트만 열어 외부 접근을 제한
5. Best Practices 및 주의점
- 필요한 최소한의 접근 권한만을 부여하여 보안을 강화. 불필요한 포트는 차단
- 보안 그룹 규칙을 정기적으로 검토하여, 변경된 요구 사항이나 취약점을 반영
- 가능하면 CIDR 블록을 사용하여 특정 IP 주소 또는 범위만 허용하도록 설정
- AWS CloudTrail 및 VPC 흐름 로그를 활성화하여 보안 그룹의 활동을 모니터링
- 보안 그룹을 설정할 때 신뢰할 수 없는 IP 또는 포트에 대한 접근을 차단
- 개발 운영 측면에서는 ssh 액세스를 위해 보안그룹을 별도로 분리하는 것이 좋음
- 만약 임의의 포트에 연결하려고 했는데, 응답이 오지 않고 정지해있으며 타임아웃이 발생할 경우
이는 보안 그룹 문제일 가능성이 높음
- 실제로 연결 거부 오류가 발생하면 실제로 연결이 거부 되었다는 응답을 받음.
EC2 Auto Scaling Group
1. 개요
- 오토스케일링 그룹은 EC2 인스턴스를 자동으로 시작하고 중지하여 워크로드 수요에 맞춰 리소스를 조정
- 최소, 최대, 원하는 용량을 설정하여 필요에 따라 인스턴스 수를 자동으로 조정
2. 목적
- 서버 장애나 애플리케이션 오류 발생 시 자동으로 대체 인스턴스를 추가하여 고가용성을 유지
- 수요가 적을 때 자동으로 인스턴스를 줄여 불필요한 리소스 비용을 절감
- 트래픽이 증가하면 인스턴스를 추가하여 성능을 유지하고 사용자가 항상 원활하게 서비스를 이용할 수 있도록 함
3. 구성
- Auto Scaling Group (ASG):
- 관리할 EC2 인스턴스 집합을 정의함.
- ASG는 최소, 최대, 원하는 인스턴스 수를 설정할 수 있음
- Launch Template/Configuration:
- EC2 유형 및 크기
- AMI, 보안그룹, Key, IAM Policy
- EC2 User Data.. 등
- Scaling Policies:
- 트래픽 부하에 따라 인스턴스를 추가하거나 줄이는 정책을 설정
- 이러한 정책은 사용자가 정의하는 조건(예: CPU 사용량)에 따라 동작함
- 예시) CPU 점유율이 N%를 넘어섰을 때 추가 실행, 2개 이상이 필요한 스택에서 EC2 하나가 죽었을 때 추가 실행..
4. 오토스케일링 설정 정책
오토스케일링 그룹은 다양한 정책을 사용해 트래픽 부하에 따라 자동으로 조정할 수 있음
-
동적 스케일링(Dynamic Scaling)
- 정책 기반: 특정 기준(예: CPU 사용률, 메모리 사용률 등)에 따라 자동으로 인스턴스 수를 조정
- 단계적 조정 정책(Step Scaling): 특정 조건을 만족할 때 여러 단계를 거쳐 점진적으로 인스턴스를 확장하거나 축소
- 간단한 조정 정책(Simple Scaling): 조건 충족 시 한 번에 하나의 인스턴스를 추가하거나 제거하는 단순한 조정 방법
- 목표 추적 조정(Target Tracking Scaling): 예를 들어 평균 CPU 사용률이 50%를 유지하도록 설정하는 등 특정 지표를 목표로 자동으로 확장 및 축소함
-
예측 스케일링(Predictive Scaling)
- 머신러닝을 통해 트래픽 패턴을 분석하고, 예측된 수요에 따라 자동으로 인스턴스 수를 조정함.
- 트래픽의 시간대별 변동을 예측하여 미리 리소스를 확보할 수 있음
-
종료 정책
- 인스턴스 숫자를 줄일 경우 어떤 순서로 인스턴스를 종료시킬 것인가에 대한 정책
5. Best Practice 및 주의점
- Amazon CloudWatch를 사용해 오토스케일링 지표를 모니터링하고, 트래픽 변화에 빠르게 대응할 수 있도록 하기
- 용량 계획 수립을 통해 최소, 최대 인스턴스 수를 실제 트래픽 패턴에 맞게 설정하여 불필요한 리소스 낭비를 줄이기
- 실패 복구 전략 설정을 통해 오토스케일링이 서버 장애 시 자동으로 인스턴스를 대체할 수 있도록 설정하여 애플리케이션 가용성을 높이기
- 스팟 인스턴스와 온디맨드 인스턴스를 혼합한 유연한 구성을 통해 비용 절감을 극대화 하기
- 스케일링 정책이 너무 빠르게 동작하면 비용이 증가할 수 있고, 너무 느리면 성능 저하가 발생할 수 있으므로 적절한 속도로 설정해야 함
- 트래픽 급증에 따라 인스턴스가 빠르게 확장되면 예상보다 비용이 많이 발생할 수 있으므로, 모니터링 및 알림 설정을 통해 관리해야 함
AWS Elastic Block Store
EC2 인스턴스와 함께 사용할 수 있는 확장 가능하고 고성능의 블록 스토리지 리소스
1. 개요
- AWS 클라우드에서 제공하는 고성능 블록 스토리지 서비스로, EC2 인스턴스와 연결하여 데이터를 영구적으로 저장할 수 있도록 지원
- EBS 볼륨은 특정 가용 영역(AZ)에 배포되며, 인스턴스 종료 후에도 데이터를 보존
- 다양한 스토리지 유형을 제공하여 성능과 비용을 최적화할 수 있으며, 중요한 데이터 보호와 고가용성을 위해 여러 기능을 갖추고 있음
2. 주요 기능
- 유연한 스토리지 옵션을 제공하여 용량, 성능, 가격에 맞춘 여러 EBS 볼륨 유형(SSD, HDD)을 제공하여 다양한 워크로드에 대응
- 데이터를 AZ 내에서 자동 복제하여 내구성을 보장
- EC2 인스턴스와 함께 사용되며, 인스턴스와 연결 및 분리를 쉽게 할 수 있음
- Amazon S3에 데이터를 백업할 수 있는 스냅샷 기능을 지원하여 데이터 복구와 복제에 용이
- 전송 및 저장 중 데이터를 암호화하여 보안성을 강화할 수 있음
3. EBS 볼륨 유형
- EBS는 다양한 유형의 볼륨으로, 각 볼륨마다 성능과 비용 효율성이 다름..
- 실무에서는 워크로드 특성에 맞는 볼륨을 선택하는 것이 중요
- General Purpose SSD (gp3/gp2): IOPS 3000으로 시작할 수 있음,
- 특징: 범용적인 SSD, 높은 성능이 필요하지 않은 웹 서버나 일반 업무용 애플리케이션에 적합
- 사용 사례: 일반적인 애플리케이션 서버, 웹 서버, 개발 및 테스트 환경.
- 추가 팁:
gp3
를 통해 사용자 설정에 따라 IOPS와 처리량을 조절할 수 있어 gp2보다 유연
- Provisioned IOPS SSD (io2/io1):
- 특징: 높은 IOPS를 제공하여 데이터베이스 등 I/O 집약적인 워크로드에 적합
- 사용 사례: 고성능 데이터베이스(예: OLTP, SQL DB), 빅데이터 처리.
- 추가 팁: 내구성이 높은
io2
는 99.999%의 내구성을 제공하여 중요한 데이터를 다루는 애플리케이션에서 활용 가능
- Throughput Optimized HDD (st1):
- 특징: 대용량 처리량이 필요한 애플리케이션에 최적화된 HDD.
- 사용 사례: 빅데이터 분석, 로그 처리, 데이터 웨어하우스.
- 추가 팁: 주로 순차적인 대규모 데이터 처리에 적합하며, 비용이 저렴
- Cold HDD (sc1):
- 특징: 데이터 접근 빈도가 낮은 장기 보관용 데이터에 적합한 비용 효율적 HDD.
- 사용 사례: 백업 데이터, 아카이빙.
- 추가 팁: sc1은 비용이 낮아 데이터 접근 빈도가 낮은 환경에서 적합
4. 활용 사례
- 데이터베이스 스토리지: 프로비저닝된 IOPS SSD 볼륨을 통해 데이터베이스에서 고성능 입출력을 처리
- 파일 시스템: 일반 목적 SSD 볼륨을 사용하여 파일 시스템을 생성하고, 웹 애플리케이션의 데이터를 저장
- 빅데이터 및 데이터 분석: 스루풋 최적화 HDD 볼륨을 사용하여 대규모 데이터를 빠르게 처리하고 분석할 수 있음
- 백업 및 아카이브: 콜드 HDD를 사용하여 오래된 데이터를 아카이브하고 비용을 절감할 수 있음
5. Best Practices 및 주의점
- 데이터 손실 방지와 복구 시간을 줄이기 위해 정기적으로 스냅샷을 생성하는 전략 필요
- 워크로드에 맞는 볼륨 유형을 선택하여 성능과 비용 효율성을 최적화
- 인스턴스 종료 시 EBS 볼륨의 데이터 유지 여부를 확인하여 중요한 데이터 손실을 방지해야 함
6. 볼륨 유형 및 비교
볼륨 타입 | IOPS 성능 | 처리량 (Throughput) |
---|
gp3 (일반 목적 SSD) | 최대 16,000 IOPS | 최대 1,000 MB/s |
gp2 (일반 목적 SSD) | 3 IOPS/GB, 최대 16,000 IOPS | 최대 250 MB/s |
io2 (프로비저닝된 IOPS SSD) | 최대 64,000 IOPS | 최대 1,000 MB/s |
io1 (프로비저닝된 IOPS SSD) | 최대 64,000 IOPS | 최대 1,000 MB/s |
st1 (스루풋 최적화 HDD) | 최대 500 IOPS | 최대 500 MB/s |
sc1 (콜드 HDD) | 최대 250 IOPS | 최대 250 MB/s |
7. EBS 스냅샷 및 백업 전략(DR or Security Compliance)
AWS EBS는 스냅샷을 통해 데이터를 백업하고 복구하는 기능을 제공. 스냅샷을 자동화하면 데이터 복구가 용이
- 스냅샷 생성 전략:
- 주기적 스냅샷: 변경이 빈번한 데이터는 하루 한 번, 주기적으로 변경이 적은 데이터는 주 단위로 스냅샷을 생성하는 것이 일반적
- 증분식 스냅샷: 변경된 부분만 저장하기 때문에, 지속적인 스냅샷을 생성해도 비용이 낮게 유지됨
- Data Lifecycle Manager와 AWS Backup을 통한 자동화:
- Data Lifecycle Manager (DLM): 자동으로 스냅샷을 생성, 보관 주기 관리가 가능! DLM을 사용하면 스냅샷을 여러 주기로 생성할 수 있음
- AWS Backup: EBS뿐 아니라 RDS, DynamoDB 등의 백업을 중앙에서 통합적으로 관리할 수 있음
다음 포스팅에서는 ELB(Elastic Load Balancer)와 Auto Scaling 연동 사례 및 DR, 확장성에 대한 아키텍처를 중심으로 작성할 예정
참고 자료