개발을 하다 보면 클라우드를 쓰는 걸 한 번쯤은 고려해 보고 또한 많이 사용되는 게 대세인 듯합니다. 클라우드를 쓰게 되면 직접 서버를 준비해서 구성할 필요가 없으므로 여러모로 편리하기도 하지만 편리하다는 이유로 이것저것 막 쓰다 보면 어느샌가 비용이 증가하는 상황을 겪기도 합니다.
그러다 보니 AWS를 건드릴 때마다 이건 비용이 얼마나 들까를 자연스레 고민하게 됩니다. 여기에 더해 AWS와 통신을 하는 기능을 개발해야 한다면 개발과정에서 잘 동작하는지 여러 번 체크해야 되니 이 과정에서도 생기는 비용을 고려해 보자면 "AWS를 Mocking 해야 되겠는데.."라는 생각으로 자연스레 이어지게 됩니다.
AWS를 Mocking 하는 방법이 뭐가 있을까를 막연하게 생각하던 도중에 글또에서 알게 되신 분에게서 "LocalStack"이라는 AWS를 Mocking 할 수 있는 도구가 있다는 것을 듣게 되었습니다.
개인적으로는 LocalStack을 사용함으로써 awscli를 사용하는 방법도 익히고 실제 AWS에 명령을 날릴 필요도 없어졌습니다. 일석이조였습니다. AWS Mocking을 해야 되는 상황에 대해서 구체적으로 언급하지 않았습니다만 이러한 상황은 주로 테스트 코드를 작성할 때 만나는 경우였습니다.
테스트 코드는 자주 실행되기 때문에 테스트 코드가 실제 AWS에 의존하게 된다면 Application 기능이 수행되는 것에 더해 테스트 코드를 실행만큼 비용이 추가로 발생하는 꼴이니 이 부분도 어느 정도 해결은 되었습니다.
특정한 경우지만 평소에 EC2 같은 것을 Mocking 할 일이 없었기에 언제 EC2를 Mocking 해서 사용할 수 있을까를 고민해 보게 되었는데 일차원적으로는 지금까지 EC2를 Mocking 해서 사용할 일이 없었기 때문에 의의로 사용성이 없는 건가라는 생각이 들었습니다.
곰곰이 생각해 보니 AWS Script를 작성할 때도 LocalStack을 통해 미리 테스트해 볼 수 있지 않을까 싶습니다. 사용하는 방법에 따라서 다양한 상황에서 많이 써먹을 수 있는 좋은 도구인 듯합니다.
(LocalStack의 설치와 사용방법은 제 블로그에서 확인하실 수 있습니다)