AWS EKS 클러스터 생성하고, 클러스터를 삭제하는데 요금이 계속 부과가 되어서 문서를 찾아보니 인스턴스를 종료해도 계정에 EC2 리소스가 계속 프로비저닝 되어 있는 경우에는 요금이 계속 부과된다고 한다. 참고로 EKS 클러스터를 생성하면 자동으로 EC2 인스턴스가 클러스터에 할당된다.
EC2 콘솔에 들어가면, Instances(running) 이 0으로 표시되어 있지만, Elastic IPs가 아직 사용중임을 확인할 수 있었다. disassociate address를 하면 권한이 없다는 오류가 발생한다. 나는 이것을 삭제할 권한이 필요하다고 생각하고, 팀 내부에 escalation 했다.
하지만 진실은 Elastic IPs 를 disassociate 하기 위해서는, 이를 의존하고 있는 리소스들을 먼저 해제해주어야 한다.
의존 리소스를 확인하려면 다음 스크립트를 실행해보면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
vpc="vpc-xxxxxxxxxxxxx"
aws ec2 describe-internet-gateways --filters 'Name=attachment.vpc-id,Values='$vpc | grep InternetGatewayId
aws ec2 describe-subnets --filters 'Name=vpc-id,Values='$vpc | grep SubnetId
aws ec2 describe-route-tables --filters 'Name=vpc-id,Values='$vpc | grep RouteTableId
aws ec2 describe-network-acls --filters 'Name=vpc-id,Values='$vpc | grep NetworkAclId
aws ec2 describe-vpc-peering-connections --filters 'Name=requester-vpc-info.vpc-id,Values='$vpc | grep VpcPeeringConnectionId
aws ec2 describe-vpc-endpoints --filters 'Name=vpc-id,Values='$vpc | grep VpcEndpointId
aws ec2 describe-nat-gateways --filter 'Name=vpc-id,Values='$vpc | grep NatGatewayId
aws ec2 describe-security-groups --filters 'Name=vpc-id,Values='$vpc | grep GroupId
aws ec2 describe-instances --filters 'Name=vpc-id,Values='$vpc | grep InstanceId
aws ec2 describe-vpn-connections --filters 'Name=vpc-id,Values='$vpc | grep VpnConnectionId
aws ec2 describe-vpn-gateways --filters 'Name=attachment.vpc-id,Values='$vpc | grep VpnGatewayId
aws ec2 describe-network-interfaces --filters 'Name=vpc-id,Values='$vpc | grep NetworkInterfaceId
다음 문서를 따라하면 관련 자원을 해제할 수 있다.
소감
개인적으로 ElasticIPs를 삭제하려고 할때, Permission Denied
가 발생한것이 좀 해깔리게 만든것 같다. 애초에, 관련 자원을 표시해서 먼저 해제하라고 했더라면 더 좋지 않았을까 라는 아쉬움이 남는다.