Mercek: Amazon ECS용 데스크톱 IDE
Mercek은 Amazon Elastic Container Service (ECS)의 관리를 단순화하도록 설계된 데스크톱 IDE로, 여러 AWS 계정 및 리전에 걸친 리소스를 하나의 인터페이스에 집계합니다. 여러 페이지를 탐색하고 리전을 전환해야 하는 경우가 잦은 AWS Management Console과 달리, Mercek은 통합된 리소스 트리와 배포, 모니터링, 비용 분석을 위한 도구를 제공합니다.
통합 리소스 탐색 및 관리
Mercek은 여러 AWS 계정 및 리전에 걸쳐 클러스터, 서비스, 작업을 동시에 탐색할 수 있게 해줍니다. 애플리케이션은 기존 ~/.aws 프로파일을 읽으며, SSO, assume‑role, MFA 설정도 포함해 사용자가 도구를 위해 새로운 자격 증명을 만들 필요가 없도록 합니다.
핵심 탐색 기능:
- 다중 계정/리전 보기: 선택된 모든 클러스터와 서비스를 하나의 트리 뷰에 나열합니다.
- 병렬 탐색: 대규모 환경에서도 응답성을 유지하도록 리소스 탐색을 병렬로 수행합니다.
- 직접 AWS 통신: 앱이 AWS API와 직접 통신하므로 데이터를 관리하기 위해 제3자 백엔드나 서버가 필요하지 않습니다.
배포 추적 및 롤백
Mercek은 ECS 서비스의 롤아웃 상태를 모니터링할 수 있는 전용 Deployments 탭을 제공합니다. 이 뷰는 배포 회로 차단기 상태와 실패한 작업 수를 통합해 실시간으로 문제를 파악할 수 있게 합니다.
배포 실패를 완화하기 위해, 도구는 배포 화면에서 직접 이전 작업 정의로 롤백할 수 있게 해줍니다. 또한 사용자는 서비스 구성을 서로 다른 환경이나 리전 간에 비교해 드리프트나 설정 오류를 식별할 수 있습니다.
통합 메트릭 및 비용 분석
Mercek은 성능 및 재무 데이터를 하나의 화면에 통합해 ECS 콘솔과 CloudWatch 사이를 "hop" 할 필요를 줄여줍니다.
성능 모니터링
- 메트릭 소스: 앱은 CPU와 메모리 데이터를 위해 Container Insights를 사용하고, Insights가 비활성화된 경우 표준 AWS/ECS 메트릭으로 대체합니다.
- ALB 통합: 로드밸런싱된 서비스에 대해 Mercek은 요청 수, 지연 시간, 5xx 오류 비율을 표시합니다.
- 시간 윈도우: 사용자는 1시간부터 7일까지의 기간을 선택할 수 있으며, 차트에 배포 마커가 겹쳐져 성능 변화와 특정 롤아웃을 연계해 볼 수 있습니다.
비용 및 사이징
- Fargate 비용 추정: 앱은 요청된 CPU와 메모리, 실행 중인 작업 수를 기반으로 월간 Fargate 비용을 추정합니다.
- 적정 사이징 판단: 요청된 리소스를 피크 사용량과 비교해 서비스가 과다 혹은 과소 프로비저닝 되었는지 판단하며, Spot과 On‑Demand 가격을 모두 고려합니다.
검사 및 토폴로지 매핑
Mercek은 심층 검사 도구와 자동 의존성 맵을 포함해 인프라 레이아웃을 시각화합니다.
- 로그 테일링: 사용자는 서비스 내 모든 작업 또는 특정 작업의 CloudWatch 로그를 실시간으로 tail 할 수 있으며, 텍스트 필터링 및 로그 레벨 하이라이팅을 지원합니다.
- ECS Exec: 실행 중인 컨테이너에 인터랙티브 쉘을 열 수 있습니다.
- 환경 검사: 작업 환경 변수를 볼 수 있으며, 비밀은 ARN 형태로 마스킹돼 민감 데이터 노출을 방지합니다.
- 토폴로지 그래프: Mercek은 기존 AWS 데이터를 기반으로 의존성 맵을 자동으로 구축해 인터넷 → 로드밸런서 → 서비스 경로를 표시하고, 작업 정의의 환경 변수를 통해 서비스 간 연결을 추론합니다.
Agent Client Protocol을 통한 AI 통합
Mercek은 Agent Client Protocol을 구현해 사용자가 자체 코딩 에이전트(예: Claude Code)를 연결할 수 있게 합니다. 에이전트는 AWS 상태에 대한 읽기 전용 접근만 허용되며, 현재 상태를 설명하거나 앱을 특정 화면으로 안내할 수 있습니다.
에이전트가 변경을 제안하면 Mercek은 해당 제안을 diff 형태로 보여주고 일치하는 AWS CLI 명령을 제공합니다. 사용자는 변경을 수동으로 승인해야만 AWS 환경에 적용됩니다.
Sentinel을 이용한 백그라운드 모니터링
Sentinel은 특정 이상 현상이 발생했을 때 관찰 결과를 제시하는 백그라운드 모니터링 기능으로, 다음과 같은 상황을 감지합니다:
- 실행 중인 작업 수가 원하는 수보다 낮음: 활성 작업 수가 요청된 수보다 적을 때.
- 배포 정체: 롤아웃이 멈추었거나 실패했을 때.
- Flapping 작업: 작업이 반복적으로 재시작될 때.
- OOM 킬: 컨테이너가 종료 코드 137로 종료될 때.
기술 구현 및 프라이버시
Mercek은 macOS (Apple Silicon 및 Intel)용 오픈 소스 데스크톱 애플리케이션이며, Linux와 Windows 빌드는 현재 로드맵에 포함되어 있습니다.
보안 및 프라이버시를 보장하기 위해 도구는 로컬‑퍼스트 아키텍처를 따릅니다:
- 백엔드 없음: 모든 API 호출이 로컬 머신에서 직접 AWS로 전송됩니다.
- 텔레메트리 없음: 애플리케이션에 분석이나 "phone home" 기능이 전혀 포함되지 않습니다.
- 비밀 저장 안 함: 자격 증명이 디스크에 기록되지 않으며, 기존 AWS 자격 증명 체인에서 가져옵니다.
커뮤니티 피드백
이 도구는 ECS 관리에 유용하다는 평가를 받았지만, 일부 커뮤니티 사용자는 Electron 프레임워크 사용에 대해 메모리 사용량과 네이티브 툴킷 선호를 이유로 우려를 표했습니다.
"이걸 사용해 보고 싶지만, 현재 내 컴퓨터에 Electron 애플리케이션이 너무 많아요... 네이티브 애플리케이션으로 만들 수 있을까요?"
반대로, 다른 사용자들은 Mercek과 같은 특화된 도구는 다른 개발자 툴에 비해 메모리 사용량이 비교적 낮다고 지적했습니다:
"내 M2 MacBook Pro 64GB에서 메모리 사용량이 30.5 MB 정도에 머물고 있어요... 이 앱은 단지 또 다른 배경화면 정도의 메모리만 차지합니다."
다른 개발자들은 E1S와 같은 도구와의 유사성을 언급했으며, E1S는 ECS를 위한 k9s‑like 경험을 제공하는 것을 목표로 합니다.