AWS EBS에 대한 개괄적이 개념은 아래의 글에서 확인이 가능하다.
[AWS] EBS(Elastic Block Store) 개념 및 과금에 대한 내용... EC2는 중지해도 EBS 과금은 발생한다!!
2024.04.29 - [Amazon Web Service] - [AWS] Terraform으로 대량의 EC2생성 시 발생하는 Capacity 에러, Service Quotas 그리고 EC2 시작 또는 생성 시 발생하는 문제 해결 및 개념 정리 [AWS] Terraform으로 대량의 EC2생성
cloudjs.tistory.com
AWS EBS GP2와 GP3 개념
성능(performance)
GP2
- 성능 스케일링: GP2 볼륨의 성능은 볼륨의 크기에 따라 자동으로 스케일된다. 이는 볼륨 크기가 증가하면 IOPS(Input/Output Operations Per Second)와 처리량도 proportionally 증가함을 의미한다.
- 기본 IOPS: 최소 100 IOPS에서 시작하며, 볼륨 크기 1GB당 3 IOPS가 제공
- 최대 성능: 최대 16,000 IOPS와 250 MB/s의 처리량을 제공
- 버스트 기능: 작은 크기의 볼륨(1TB 이하)은 필요 시 더 높은 성능을 제공하기 위해 버스트 크레딧 시스템을 사용
- 버스트 크레딧: 일정 기간 동안 사용되지 않은 I/O 용량을 축적하여, 트래픽이 급증할 때 일시적으로 더 높은 IOPS를 제공
- 제한사항: 지속적으로 높은 IOPS가 필요한 워크로드의 경우 버스트 크레딧이 소진되면 성능이 저하
GP3
- 고정 기본 성능: GP3 볼륨은 볼륨 크기와 상관없이 기본적으로 3,000 IOPS와 125 MB/s의 처리량을 제공
- 독립적인 성능 조정: 필요에 따라 추가 비용을 지불하고 IOPS를 최대 16,000까지, 처리량을 최대 1,000 MB/s까지 독립적으로 조정
- 유연성: 워크로드의 요구사항에 따라 IOPS와 처리량을 별도로 조정할 수 있어 성능 최적화가 용이
- 일관된 성능: 버스트 크레딧 시스템을 사용하지 않으므로, 지속적으로 안정적인 성능을 제공
유연성(flexibility)
GP2
- 제한된 유연성: 성능이 볼륨 크기에 직접적으로 연동되므로, 특정 성능을 달성하기 위해 불필요하게 큰 볼륨을 생성해야 할 수 있음.
- 확장성 제약: 워크로드의 변화에 따라 성능을 조정하려면 볼륨 크기를 조정해야 하며, 이는 관리와 비용 측면에서 비효율적일 수 있음.
GP3
- 높은 유연성: 볼륨 크기와 무관하게 IOPS와 처리량을 독립적으로 조정할 수 있어, 워크로드의 특성과 변화에 따라 최적의 설정을 할 수 있음.
- 손쉬운 조정: 성능 파라미터를 실시간으로 조정할 수 있어, 애플리케이션의 요구사항 변화에 신속하게 대응할 수 있음.
- 관리 편의성: 불필요한 스토리지 비용을 절감하면서도 필요한 성능을 정확하게 제공할 수 있어 전체적인 인프라 관리가 용이.
AWS EBS 볼륨수정 실습
AWS EC2를 사용하다보면, 상태검사 이슈가 발생하는 경우가 있다.
위와 같이 인스턴스 상태검사가 check failed 발생한다. 이런 경우 서버에 접속을 할 수 없다.
해당이슈는 대체적으로 많은 사유가 있지만, 내가 사용하는 서버에서 의심해볼수있는거는 EBS쪽으로 추정해봤다.
사실상 EBS 용량에는 문제가 없다. 용량 설정이 문제가 될수있지만, 용량을 정말 여유있게 했다면 문제가 없다.
단, EBS 지표에서 의심해볼만한 것을 찾았다.
해당하는 EBS의 모니터링 데이터이다.
실제 서버에서 문제가 생겼을 시간에 경보시간에 쓰기/읽기가 갑작스럽게 Burst하는것이 확인된다.
평균대기열(작업)에서도 읽기/쓰기 처리량과 비슷하게 값이 Burst하는것이 확인된다.
EBS의 유형이 gp2이며 iops가 510 값이다.
현재 위 데이터에서 읽기작업이 3.3k까지 증가했다. 그렇다면, iops 510이 부족하다는 증거이다.
그러면 GP2 유형이 아닌 GP3 유형으로 변경 후, IOPS를 3000이상으로 변경이 필요하다.
물론 GP2에서 Burst 기능이 지원이 되지만 gp2에 iops가 510이어도 Burst를 통해 2배를 지원받아도 1020이다.
결국 위에있는 3.3K에 미치지 못하는 수치이다.
그렇기 때문에 초당 3천번을 진행할 수 있는 iops 3000값이 필요하다.
변경하고자 하는 볼륨을 선택 후, 볼륨수정으로 들어간다.
- 볼륨 유형을 gp3로 선택
- IOPS를 원하는 값으로 설정
- 처리량 설정
수정을 눌러서 변경을 진행
여기서 주의사항 ❗IOPS 값이 크면 EBS 볼륨이 수정되는데 Optimizing이라는 수치가 뜨며, 약 10분정도 시간이 소요된다.❗
수정이 완료되었다면, 해당하는 EC2를 콘솔에서 접속해서 명령어를 통해서 확인한다.
AWS EC2는 기본적으로 AWS CLI를 제공한다.
aws ec2 describe-volumes --volume-ids <Volume_ID> --query "Volumes[*].VolumeType" --output text
다음과 같이 변경된 것을 확인 할 수 있다.
이렇게 AWS EC2의 EBS의 볼륨상태를 수정하여 확인하는 방법을 알아봤다.