AWS에서는 직접 생성하지 않아도 자동으로 생성되는 자원들이 간혹 있다.
Default VPC나 KMS의 AWS Managed Keys가 그 예이다.
이 주제는 untagged resources를 정리하면서 시작되는데, 대개 AWS가 남몰래 만들어 놓은 자원들은 태그가 있을리 없기 때문에, untagged resources로 검색되기 마련이다. 그런데 처음에 이게 뭐지? 지워도 되나? 싶은 생각에서부터 시작된 포스팅.
VPC는 (Virtual Private Cloud) 이름에서 알 수 있듯이 가상의 사설 클라우드를 의미하는데, 조금 더 풀어보면 물리적이 아닌, 논리적으로 분리된 가상의 클라우드(네트워크) 환경을 구성한 것이다.
비슷한 개념으로 VPN (Vertual Private Network)는 가상의 사설 망으로 물리적으로는 연결되어 있으나 논리적으로 망을 분리하여 다른 네트워크 인 것처럼 동작하도록 한다.
VPC 사용 목적은 보안상의 이유라거나 원하는 자원 집합을 그룹별로 구성, 관리하기 위해 사용한다.
AWS VPC를 사용하면 Region별로 내가 만들지 않은 VPC가 있는 것을 볼 수 있는데,
이는 AWS에서 친절하게 사용하라고 만들어 놓은 Default VPC이다.
물론 존재 자체로 비용은 발생하는 것은 아니지만 삭제해도 상관은 없다.
앞서 언급했듯이 자체 생성 및 사용하는데는 비용이 없고, VPC안에서 사용한 자원 및 데이터 전송 요금이 각 서비스 비용으로 분류되어 과금된다.
단, VPC의 기능인 VPC peering(VPC간 통신-VPC Peering-In/Out), VPC Direct Connect(On-Prem과 VPC 연결), VPC Flow Logs(VPC 로그 기록)이 있는데 이는 별도로 비용이 부과된다.
KMS(Key Management Service)는 데이터를 암호화하거나 복호화할 때 사용할 수 있는 key를 관리해주는 서비스로, KMS Keys는 KMS의 이름에서도 담고 있는 KMS의 'key'이다.
KMS에 저장된 key를 가져다가 코드상에서 데이터를 암호화한다거나 복호화할 때쓰는 것이 대표적인 예시라고 할 수 있다.
https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys
KMS에는 세가지 종류가 있다.
AWS service integrated with KMS https://aws.amazon.com/ko/kms/features/#AWS_Service_Integration
두번째 AWS managed keys가 이 포스팅의 두번째 주인공인데,
이 녀석이 생기는 이유는 일부 AWS 서비스 사용할 때, customer managed key or AWS managed key를 선택하게 되는데 이때 (나도 모르게) 선택하면 생성된다.
이 key를 쓰면 직접 만들고 유지 관리할 필요가 없다는 장점이 있지만, 반대로 속성 변경, 순환 주기, key 정책 변경, 삭제가 불가능하다는 점!! (영 보기싫다면 aws support에 요청하면 지워주지 않을까??)
https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt
다행히 시간 과금이 아니라 사용 과금이라 필요시에만 과금된다. 휴!
Default VPC는 안쓰면 삭제하면 되고 AWS managed keys는 삭제가 불가능한데다 안쓰면 비용이 안나오니 그냥 두면 될 것 같다.