안녕하세요, 이번 글에서는 AWS 클라우드의 리소스를 관리할 수 있는 두 가지 툴, AWS Config와 Cloud Custodian에 대해 알아보겠습니다.
AWS 리소스 관리가 왜 필요한가요?
AWS 클라우드에서는 필요한 AWS 리소스(EC2, S3, IAM 등)를 자유롭게 구성할 수 있다는 장점이 있습니다. 하지만 클라우드를 사용하는 조직의 규모가 커질수록 AWS 리소스의 수가 많아지고 그 구성도 복잡해지기 쉬운데요.
(AWS에는 다양한 리소스가 있어서 조직이나 서비스의 규모가 커질수록 체계적인 리소스 관리가 필요합니다.)
체계적인 관리 없이 AWS 리소스가 얼기설기 얽힌 상황에서 문제라도 발생한다면… 문제 원인 찾기가 너무 힘들어지겠죠. 그래서 리소스 관리가 필요한 것입니다.
이런 배경에서 등장한 AWS 리소스 관리 툴은 리소스 구성에 대한 규칙을 정의할 수도 있는데요. 보안을 강화하기 위해 지켜져야 할 규칙을 정의해서 AWS 리소스의 구성들이 그 규칙에 부합하는지 검사할 수 있는 것입니다.
위에서 이야기한 두 가지 툴 중에 AWS가 웹 콘솔 상에서 리소스 관리를 할 수 있도록 제작한 서비스가 바로, AWS Config입니다.
AWS Config에는 어떤 특징이 있나요?
AWS Config는 AWS의 관리형 서비스이기 때문에 AWS 웹 콘솔에서 손쉽게 시작할 수 있고, 유지보수 걱정도 적습니다.
그리고 수많은 AWS 리소스에 대해 완전히 지원하기 때문에, 문제가 발생했을 때 트러블슈팅에 유리하죠. 웹 콘솔 상에서 대시보드 화면으로 관련 정보를 쉽게 확인할 수도 있습니다.
(AWS 웹 콘솔에서 확인할 수 있는 AWS Config의 대시보드 화면입니다.)
게다가 리소스 구성의 과거 이력이 저장돼서 리소스에 대한 규칙이 준수되었는지 확인할 때 용이하답니다.
하지만 AWS가 관리하는 서비스이기 때문에 사용에 따른 비용이 발생하는데요. AWS Config의 대상이 되는 리소스 구성 항목과 규칙당 비용이 책정되다보니, 조직의 예산 상황에 따라 큰 제약이 될 수도 있습니다.
이와 대조적으로, 처음에 언급했던 또다른 AWS 리소스 관리 툴 Cloud Custodian은 오픈소스 프로젝트이기 때문에 툴 사용으로 인한 비용이 발생하지는 않습니다.
그럼 Cloud Custodian이 더 좋은 건가요?
두 가지 툴 모두 각자의 장단점이 있기 때문에 상황에 따라 고려하는 점이 다를 뿐이지, 절대적으로 무엇이 더 좋고 나쁘다고는 할 수 없습니다.
그럼 이제 Cloud Custodian의 특징을 좀 더 살펴볼게요.
Cloud Custodian은 위에서 언급한 오픈소스라는 점 말고도 리소스 관리 규칙을 직접 정의하기가 좀 더 용이하다는 장점이 있습니다.
웹 콘솔상에서 미리 정의된 규칙을 사용하는 AWS Config와는 달리 Cloud Custodian은 읽기 쉬운 YAML 양식 기반으로 리소스 규칙을 정의할 수 있기 때문인데요.
참고로, Cloud Custodian은 AWS뿐만 아니라 Azure, GCP도 지원하고 있기 때문에 여러 클라우드 플랫폼을 사용하는 상황이라면 큰 장점이 될 것입니다.
거기에 CNCF에서 인큐베이팅 단계로 속해있으니 이미 검증이 되고 있는 프로젝트라고 할 수 있겠습니다.
(Cloud Custodian은 CNCF의 인큐베이팅 단계 프로젝트입니다.)
하지만 오픈소스 프로젝트라는 특징으로 인해 생기는 단점도 있습니다. 바로 설치와 유지보수 문제인데요.
관리형 서비스인 AWS Config와 다르게, Cloud Custodian을 잘 활용하려면 직접 툴을 설치하고 유지보수해야 하기 때문에 별도의 노력과 전문 지식이 필요합니다.
게다가 Cloud Custodian은 대시보드를 따로 제공하지 않습니다. 만약 필요하다면 직접 구현해야 하는 거죠. 웹 콘솔 상에서 관련된 정보를 바로 확인 가능했던 AWS Config와 대비되는 점입니다.
지금까지 AWS Config와 Cloud Custodian의 특징을 알아봤는데요. AWS 리소스 관리에 있어서 둘 중에 하나를 골라야 한다면, 두 가지 기준으로 고려해야 할 것입니다.
바로 비용과 유연성인데요.
만약 비용에 상관없이 바로 AWS 리소스를 관리하고 싶다면 AWS Config, 리소스 관리 규칙을 유연하게 정의하고 싶다면 Cloud Custodian이 더 적합할 것입니다.