[개요]
구 데이터 백업 케이스에서, 같은 데이터 용량대비 스냅샷보다 S3 Glacier의 비용이 더 저렴하여 EBS안에 있는 객체들을 S3 Glacier로 옮겨 구 데이터를 저렴한 가격으로 저장하길 기대했습니다. 하지만, 예상치도 못한 S3 Put Request 비용이 발생하여 저장과정에서 많은 비용이 발생하였습니다. 이를 통해 S3 Request 비용에 대한 리스크를 인지하여, 이것을 극복하고자 Public 망과 Private 망 각각의 S3 Put Request 비용에 차이가 있는지 테스트를 진행하였습니다.
[준비물]
- 다른 리전(ex.서울, 버지니아)의 EC2 2EA
- 다른 리전(ex.서울, 버지니아)의 S3 버킷 2EA
(다른 2개의 리전에 테스트를 하는 이유는, 발생하는 Put Request 비용을 비교하기 위해서 입니다.)
[테스트]
1. 비용 확인
- 테스트를 시작하기전에, 현재 S3 서비스에서 발생한 비용을 먼저 확인합니다.
<테스트를 시작하기전 서울 리전은 Put Request 비용이 $0.08, 버지니아 리전은 $0.00인 것을 확인>
2. Public 망을 통한 EC2 -> S3 Put Request
- Public 통신이 가능한 EC2(이 테스트의 경우 서울리전)에 원격 접속하여 S3 접근권한이 있는 액세스 키를 등록합니다.
- 테스트에 사용될 dummy 파일 객체를 1만개 생성합니다.
- aws cli 명령어를 사용하여 생성한 1만개의 객체를 S3에 저장합니다. (1만건의 Put Request 발생)
3. Private 망을 통한 EC2 -> S3 Put Request
- Public EC2와 동일하게 Private EC2(버지니아 리전) 역시 액세스 키를 등록하고 dummy 파일을 생성하여 준비합니다. (위와 동일한 작업으로 스크린샷은 생략)
- Target 버킷(EC2와 같은 버지니아 리전)에 액세스 포인트를 생성합니다.
- VPC <–> S3간 Private 연결을 위해 S3 엔드포인트를 생성합니다. (Private EC2는 Public IP를 가지고 있지 않기 때문에 원격접속을 위해 ssm을 통한 원격접속이 필요합니다. 이것을 위해 필요한 ec2, ec2messages, ssm, ssmmessages 엔드포인트 또한 생성합니다.)
- SSM 원격접속과 S3 버킷정책
댓글