안녕하세요.
최근에 작은 프로젝트를 배포하며 aws를 처음 써봤는데요.
당연히 프리티어일거라 생각하고 믿고 썼는데,,,
11월 20일에 첫 배포를 하고 약 10일 동안 사용하였는데 12월이 되었을 때 aws에서 돈이 나간 것을 확인했습니다...!

나의 과금 원인들
우선 첫 번째 과금원인은
1. ec2와 rds 가용역역이 달랐다.
ec2는 가용영역 c에, rds는 가용영역 b에 존재했습니다...
2. 스토리지 자동조정을 활성화했다.
3. 멀티 AZ를 허용했다.
그리고 몰랐던 마지막 원인...!
ec2 t3.small은 프리티어가 아니었다..
분명 ec2 선택 창에는 t3.small까지 프리티어라고 써있었는데요,, t3.small은 프리티어가 아니라고 합니다.
저도 왜 이렇게 콘솔에 표시되었는지는 모르겠네요... (aws 나쁜새끼들)
위의 과정을 거치니 비용이 아주 현저히 줄긴 했지만 여전히 소소하게 과금이 되고 있었습니다..
혹시 Elastic Ip를 사용하는 것이 문제인 것인지도 확인해보았습니다.
Elastic Ip는 계정 당 1개를 초과하면 비용이 발생하고, 1개여도 연결되지 않으면 비용이 발생합니다.
저는 Elastic Ip를 1개를 만들어 ec2에 연결해두었고, aws 내에서 생성된 Elastic Ip말고는 사용하는 Elastic Ip는 없었습니다..
물론 ec2에 연결되어 있지 않은 Elastic Ip 또한 존재하지 않았고요!
청구서의 세부 항목을 보니 다음과 같았습니다.

그 중에서 제일 큰 비용은 rds였고 제 계정이 프리티어가 맞는지 의심이 되었습니다...
왜냐하면 EC2를 t3.micro로 바꾸고 RDS 단일 AZ만 허용으로 바꿨는데도 12월에도 여전히 돈이 청구되고 있었기 때문입니다.

나의 계정은 프리티어가 아니었다...
저는 회원가입을 약 2025년 8월쯔음에 했고 aws 정책이 7월부터 바뀌어,
프리티어 계정이 사라지고, 신규 계정에게 100달러 크레딧을 주는 것으로 변했다고 합니다..
(나는 그것도 모르고 옛날 블로그 글만 보고 내 계정이 프리티어인 줄 알았지...)
아무튼 새 계정으로 잘 가입하여 100달러 크레딧을 받았습니다 !!

기존 계정에서 생성한 EC2와 RDS를 새 계정으로 안전하게 옮기기
aws는 스냅샷으로 백업본을 저장하고 복구할 수 있는 것은 알고 있었는데, 이것이 타 계정에도 가능할지가 몰라 걱정되었습니다...
다행히 이 또한 가능했고 ec2는 AMI 이미지를 만들어, RDS는 KMS에서 고객 관리형 key를 만들고 스냅샷을 찍어 다른 계정에 공유할 수 있었습니다!
타 계정 공유가 무료는 아니지만 과금이 크지 않아 진행했습니다. (5달러 이내임)
AMI 이미지 생성 및 타 AWS 계정에 공유
1. 인스턴스 > 작업 > 이미지 및 템플릿 > 이미지 생성

2. 이미지 생성 클릭

3. EC2 > 이미지 > AMI > 원하는 AMI 클릭 > 작업 > AMI 권한 편집

4. 공유계정에 원하는 계정의 ID 추가


KMS 키 생성 및 RDS 스냅샷 생성
1. KMS > 고객 관리형 키 > 오른쪽 상단 키 생성

2. 키 구성, 레이블 추가, 키 관리 권한 정의, 키 사용 권한 정



3. 키 정책 편집

위의 키 정책 부분에 원하는 aws 계정 Id를 추가하는 블록을 만들어줘야합니다.
{
"Version": "2012-10-17",
"Id": "key-consolepolicy-3",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{원래계정ID}:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "AllowAccountBToUseKey",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{권한 추가해줄 계정ID}:root"
},
"Action": [
"kms:DescribeKey",
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:CreateGrant"
],
"Resource": "*"
},
{
"Sid": "Allow access for Key Administrators",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{원래 계정 ID}:user/{원래 계정 이름}"
},
"Action": [
"kms:Create*",
"kms:Describe*",
"kms:Enable*",
"kms:List*",
"kms:Put*",
"kms:Update*",
"kms:Revoke*",
"kms:Disable*",
"kms:Get*",
"kms:Delete*",
"kms:TagResource",
"kms:UntagResource",
"kms:ScheduleKeyDeletion",
"kms:CancelKeyDeletion",
"kms:RotateKeyOnDemand"
],
"Resource": "*"
}
]
}
4. RDS 스냅샷 생성 및 스냅샷 이름 입력
- RDS > 데이터베이스 > 원하는 DB 선택 > 작업 > 스냅샷 생성


5. 생성한 스냅샷 복사 (원하는 계정과 공유하는 KMS 키를 사용하기 위해)

6. 만든 고객 관리형 KMS 키 선택 (별칭)

5. RDS > 스냅샷 > 작업 > 스냅샷 공유

6. 추가 > 옮길 AWS 계정 ID 입력

새로운 AWS 계정에서 공유받은 AMI으로부터 EC2 생성하기
1. 새 계정 > EC2 > AMI > 왼쪽 상당 프라이빗 이미지 > AMI로 인스턴스 시작


성공~

새로운 AWS 계정에서 공유받은 RDS 스냅샷으로부터 RDS 생성하기
1. 새로운 AWS 계정 > RDS > 스냅샷 > 나와 공유됨 > 스냅샷 복사


2. RDS > 스냅샷 > 수동 > 스냅샷 복원


단일 AZ가 아니면 과금됩니다...!!

성공~

