MuleSoft에서 AWS EC2 인스턴스 작업 자동화

MuleSoft에서 AWS EC2 인스턴스 제어



굉장히 ~ 오랜만의 투고가 됩니다만, MuleSoft에 관한 기사가 됩니다.
제휴 검증을 위해 Automation Anywhere의 Automation 360 온프레미스 환경을 AWS에 세우려고 했습니다만,
Automation 360은, 검증용으로 최저한의 환경에서라고 생각해도 메모리 16GB정도 없으면 힘들군요. CPU도 2 코어에서는 엄격한 느낌입니다.
그렇게 하면 AWS LightSail에서는 적당한 비용도 걸려 버린다고.
이번 환경은 그다지 많이 이용하는 것은 아니기 때문에 매일 아침 스케줄한 Bot를 가동시키는 시간대와, 나머지는 온디맨드로 사용할 때만 기동할 수 있으면 좋기 때문에 EC2 VPC로 해, 매일 아침 자동으로 개시·정지할 수 있다 하려고 할까 생각합니다.

Amazon EC2 Connector - Mule 4



MuleSoft Exchange에는 수많은 커넥터가 이미 준비되어 있습니다.
Anypoint Studio에서 "Amazon"을 키워드로 검색해 보면 EC2는 커넥터가!
바로 이것을 추가하고 시도해 보겠습니다.



커넥터의 메소드



공식 문서 에 설명이 있으므로, 자세한 것은 그쪽을 참조해 주시면 좋겠습니다만, 매우 많은 조작에 대응하고 있습니다.












인스턴스 상태 확인



먼저 인스턴스의 상태를 확인해 보겠습니다. (AWS 인스턴스의 조작은, 기동과 개시, 정지와 휴지와 종료해, 혼란스럽네요・・・)
Anypoint Studio에서 이런 느낌으로 짜 봅니다.


HTTP 리스너를 사용하여/getStatus를 받습니다.
범용화하는 경우는 쿼리 파라미터 또는 URI 파라미터로 인스턴스 ID를 받는 형태가 된다고 생각합니다만, 우선은 고정으로.

두 번째 단계는 EC2 커넥터의 Describe instance status 조작입니다.
이 단계의 내용은 나중에 설명합니다.

세 번째 단계는 Transform Message입니다.
이전 EC2 커넥터의 리턴이 Java 오브젝트로 리턴되기 때문에,
그 정보를 알기 쉽게 표시하기 위해 JSON으로 변환하고 있습니다.

EC2 커넥터 사용



먼저 EC2와 연결하기 위한 설정인 Amazon EC2 Configration을 만듭니다.
필요한 것은 "Access Key"와 "Secret Key"입니다.
EC2 관리 콘솔의 IAM에서 사용자를 만들고 여기에 키를 설정합니다.


그리고 "Describe instance status"조작의 설정.
Connector Configuration은 위에서 만든 설정을 지정합니다.
그리고는, 인스턴스 ID의 지정만. 간단하네요!


Transform Message에 대해서는 우선 Payload를 모두 JSON으로 만들려고합니다.



실행 결과



Advanced REST CLient에서 실행해 보면 이런 느낌이 듭니다.


MuleSoft에서 AWS EC2를 조작하는 것은 매우 간단합니다.



이 기사에서는 인스턴스 상태 참조 만 시도했지만,
인스턴스의 시작 등도 같은 느낌으로 설정만으로 할 수 있습니다.

Anypoint Studio는 Automation 360보다 조금 어렵습니다만, 한번 마스터 해 버리면 Rest Web Service로부터 기동할 수 있는 플로우를 작성할 수 있거나와, RPA로 부족한 부분은 API/Integration 플랫폼인 MuleSoft로 보충한다.
반대로, MuleSoft로 부족한 부분(화면 조작이 필요한 앱등의 자동화)은 RPA로 실시한다고 할 수 있으므로,
꼭 시도해 주시면 좋겠습니다.
MuleSoft의 검증 환경도 30일 한정입니다만, 몇 번이라도 만들 수 있습니다!

좋은 웹페이지 즐겨찾기