끊임없이 검증하라

나에게 당연할지라도

Learning

L4_AWS 프리티어_프리티어 만료 후 인스턴스&계정 삭제

fadet 2023. 4. 5. 17:27

이 포스트는 학습 과정에서 그 내용을 기록한 글이기에 부정확한 정보가 포함될 수 있습니다. 따라서 해당 글은 참고용으로만 봐주시고 틀린 부분이 있다면 알려주시면 감사하겠습니다. 

 

❗ 이 글은 AWS 프리티어를 사용하고 계시거나 사용한 후 1년이 지나 만료되신 주니어 개발자를 위해 작성되었습니다. AWS 요금 설정에 대해 자세히 알고 계시다면 읽을 필요가 없습니다.

 


 

처음 AWS를 사용하여 배포했던 토이 프로젝트를 한지도 어느덧 1년이 지났습니다. 1년 동안 코로나 걸렸으니, 운동 습관 들이느니 그런 핑계로 개발 공부를 날려먹은 게 참... 어쨌든 프리티어가 끝나간다는 것은 얼추 알고 있었는데 끝나자마자 칼같이 이런 청구서가 메일로 왔습니다.

 

띠용!

프리티어 만료 후 하루에 1달러라니... 보니까 정신이 번쩍 들어서 빨리 계정을 삭제해야겠다는 생각이 들어서 이 글도 포스트 할 겸 진행했습니다.

 

* 사실 오랜만에 접속했는데 폰 OTP가 초기화되서 MFA 인증을 못해가지고  AWS에 문의 날렸다가 갑자기 외국인한테 전화 와서 10년 만에 외국인이랑 통화했... 여러분은 AWS 쓸 때 스마트폰 변경하면 MFA 옮겨주는 과정 꼭 까먹지 마시길

 

 

Budgets

 

우선 AWS 프리티어의 과금에 대해 간단히 알아보겠습니다. 프리티어는 보통 주니어 개발자들이 t2.micro를 사용한 작은 서비스를 테스트해 보기 위해 이용하므로 규모가 작다면 설정만 잘해도 보통 과금이 되지 않습니다. 프리티어에서 과금이 되는 경우는 보유한 크레딧을 다 사용했을 때입니다. 그래서 만약 설정을 잘 못했거나 사용량이 많아질 경우 크레딧을 다 써서 과금이 생긴다면 이를 본인이 알고 있어야 합니다. 하지만 매번 청구서 탭에 가서 금액 확인하고 크레딧 확인하는 건 여간 귀찮은 게 아닙니다. 따라서 AWS에선 Budgets을 제공합니다.

 

AWS에선 기본적으로 과금이 발생했을 경우 한 달 간격으로 청구서를 메일로 보내주긴 합니다. 하지만 그럴 경우 모르고 있다가 한 달 동안 모인 게 폭탄이 될지도 모르죠. 따라서 제공되는 Budgets을 이용하시면 됩니다.

 

설정은 간단하니 짧게 언급하고 가겠습니다. AWS 콘솔에 Budgets 입력하시고 메뉴로 가시면

저 같은 경우에 이미 Budget을 설정해 놔서 해당 임계값이 초과됨으로 나온 걸 보실 수 있을 겁니다. 처음이시라면 예산 생성으로 Budget을 하나 만드시면 이렇게 예산에서 임계값이 초과될 때마다 아래처럼 메일이 날아옵니다. 일반적으로 임계값은 절댓값 0.01$로 설정하시면 됩니다.

메일의 경우 지정된 계정으로 하루하루 보내주니 문제가 있다면 바로 알 수 있겠죠. 이 정도만 알아도 크게 무리는 없으나 Budgets에 대한 더 자세한 정보가 필요하다면 직접 찾아보시길 바랍니다.

 

프리티어 만료 후 삭제해야 할 그룹

 

Budgets을 설정해 놨으면 프리티어 사용 중인 1년간은 크게 문제가 없습니다. 문제가 발생하면 바로바로 메일 날아오니 그거보고 크레딧 확인하고 로그 봐서 문제를 해결해 주면 되니까요. 하지만 프리티어 만료 후 사용한 만큼 칼같이 요금이 청구됩니다. 따라서 프리티어가 만료되셨지만 세팅해 준 거 옮기기 귀찮으신 돈 좀 있는 분 제외하면 계정을 삭제해 주는 것이 좋습니다.

 

하지만 여기서 중요한 게 있습니다. 계정을 삭제해도 삭제한 당월의 요금은 그대로 청구됩니다! 따라서 계정을 삭제하시기 전에 꼭 모든 사용 그룹을 삭제하신 후 계정을 탈퇴해야만 합니다.

 

일반적으로 프리티어 사용 중이신 분이라면 크게 아래와 같은 서비스들만 삭제해 주면 됩니다.

- EC2
- RDS
- VPC

일반적으로 VPC로 EC2와 RDS가 묶여있는 구조를 사용하시기 때문에 서비스 삭제 시 그 서비스에 다른 종속성이 연결되어 있으면 오류가 생기므로 보통 종속성이 가장 적은 EC2 > RDS > VPC 순서로 삭제하시는 게 편합니다.

 

더 정확하게 알고 싶으시면 AWS 청구서에 가셔서 아래와 같은 항목을 보시면 내가 지워야 할 서비스에 대해 더 자세히 나옵니다.

 

# EC2

 

EC2의 경우 고려하실 항목이 1 인스턴스 2 탄력적 IP 3 보안 그룹 4 키페어 정도입니다. 인스턴스의 경우 종료되는데 시간이 조금 걸리지만 종료 후 삭제하시면 일반적으로 크게 문제 될 것은 없습니다. 탄력적 IP 또한 연결을 해제하신 뒤 삭제하시면 됩니다. 키페어 역시 쉽게 삭제가 됩니다. 조금 귀찮은 게 보안 그룹인데 보통 보안 그룹의 경우 EC2, RDS, VPC 세 개 한꺼번에 묶여 있는 경우가 많아서 종속성 이슈로 잘 안 지워지는데, 그러므로 보통 안 지워지면 일단 놔두고 VPC 지울 때 한 번에 지우는 게 낫기에 뒤에서 다시 언급하겠습니다.

 

# RDS

 

RDS는 보통 신경 쓸게 DB 인스턴스, 보안 그룹 이 둘 밖에 없긴 합니다만 DB 인스턴스 삭제 시에 조금 신경 쓸 부분이 생길 수 있습니다. 쉽게 삭제되면 좋겠지만 가끔 서브넷, 파라미터 그룹, 보안 그룹, 예약 인스턴스 등이 엮여서 삭제가 안될 경우가 있습니다. 종속성 멤버들을 먼저 삭제해 보시고 그래도 안되면 AWS 공식 DOCS를 보시는 것을 추천합니다. 보안 그룹의 경우 뒤에 VPC와 함께 제거할 테니 놔두셔도 됩니다.

 

# VPC

저는 처음에 그냥 청구서보고 프리티어 종료 뒤에 EC2와 RDS만 삭제하면 과금은 없겠거니 생각하고 둘만 지웠습니다. 청구서를 보면 이 둘이 가장 돈 먹는 활성 서비스니까요. 하지만 이 둘 삭제 후에도 다음날 청구서가 날아왔습니다.

큰 금액은 아니지만 이게 30일 쌓이면 3$인데 사실 적다면 적은 돈이지만 굳이 낼 필요 없다면 안 내는게 베스트겠죠? 따라서 VPC도 삭제해 주도록 합시다. VPC는 종속성이 어마어마하게 많아서 생길 수 있는 문제가 꽤나 많습니다. 따라서 특정 상황의 경우엔 공식 문서를 보고 해결하시길 추천드립니다. 이 포스트의 경우 일반적으로 가장 많이 발생하는 이슈에 대해서만 다루도록 하겠습니다.

 

VPC를 삭제하실 때 보통 문제가 되는 항목은 1 보안 그룹 2 네트워크 ACL입니다. 보안 그룹의 경우 삭제할 때 꽤나 귀찮습니다. 우선 기본 default 보안 그룹의 경우 삭제도 되지 않고 이 default에 종속된 규칙이 있다면 다른 그룹 역시 삭제가 되지 않습니다. 그렇기 때문에 반드시 모든 보안 그룹(default 포함)의 인바운드, 아웃바운드 규칙을 삭제하신 후 보안 그룹을 지우는 게 좋습니다.

 

보안 그룹이 지워졌다면 다음으로 네트워크 ACL입니다. 이는 연결 해제 후 지우면 보통 쉽게 지워집니다. 네트워크 ACL 삭제 대신 네트워크 ACL 릴리스를 찾으시면 됩니다.

 

원래라면 EC2, RDS 종속성들도 모두 제거해야 하지만 앞서 진행했으므로 이 과정들만 하면 보통 VPC도 삭제되실 겁니다. 이 과정들 중 스냅샷이 남아있는 경우도 있는데 이것은 과금되지 않으니 넘어가시면 됩니다.

 


 

마지막으로 주의해야 할 사항은 모든 과정 이후에도 과금이 되는지 2~3일 지켜보시고 계정을 탈퇴하셔야 된다는 겁니다. 이거 확인 안 하고 그냥 탈퇴하시면 안 됩니다.