Amazon ECS를 위한 로컬 우선 데스크톱 IDE인 Mercek
요약
Mercek는 Amazon ECS 관리를 위한 로컬 우선 데스크톱 IDE입니다. 사용자의 기기 자격 증명을 활용하여 여러 계정 및 리전의 AWS 서비스를 통합적으로 보여줍니다. 이 도구는 배포, 메트릭, 로그 등 다양한 정보를 한 곳에서 확인하고 관리할 수 있게 합니다.
핵심 포인트
- Amazon ECS 관리를 위한 로컬 우선 데스크톱 IDE 제공
- 다중 계정/리전 자격 증명 및 서비스 통합 가시성 지원
- 배포 롤백, 메트릭, 로그 등 핵심 정보를 한 곳에서 확인 가능
- 쓰기 작업 시 diff 또는 확인 절차를 거쳐 안전한 관리 환경 제공
Mercek는 Amazon ECS를 위한 데스크톱 애플리케이션입니다. 사용자의 기기에 이미 있는 AWS 자격 증명을 사용하여 모든 계정과 리전의 서비스를 보여줍니다. 변경 사항을 승인할 때까지 읽기 전용이며, 중간 서버나 텔레메트리가 없이 AWS와 직접 통신합니다.

왜 필요한가 (Why)
AWS 콘솔은 일상적인 ECS 작업에 느리고, 계정 간의 가시성이 떨어집니다. Mercek는 사용자의 서비스를 하나의 창에 모아 탭과 계정을 전환할 필요 없이 배포(rollouts), 메트릭(metrics), 로그(logs), 비용(cost), 그리고 의존성(dependencies)을 확인할 수 있게 해줍니다.
기능 (Features)
~/.aws프로필에서 다중 계정, 다중 리전 디스커버리(Multi-account, multi-region discovery) 지원 (SSO, assume-role, MFA, 정적 키 포함), 프로필별 옵트인 스코프 설정 가능.- 다중 클러스터 개요 — 모든 활성 스코프에 걸친 서비스 상태(실패 / 저하 / 배포 중 / 정상)와 '주의 필요' 목록을 제공하는 홈 뷰.
- 서비스/클러스터/태스크 상세 정보 — 배포, 이벤트, 태스크, 대상 그룹 상태, 오토스케일링, 메트릭, 적정화(right-sizing), 환경 설정, 네트워킹, 컨테이너 관련 기능.
- 배포 및 롤백 — 실시간 롤아웃 상태, 서킷 브레이커 상태, 원클릭 롤백, 서비스별 배포 타임라인, 단일 단계 이미지 배포, 그리고 크로스 환경/크로스 리전 비교 기능.
- 생성 및 관리 — 클러스터, 서비스, 태스크 정의를 생성하고 관리(처음부터), 일회성 태스크 실행 및 삭제/등록 해제 지원 — 모든 쓰기 작업은 diff 또는 확인을 거치며, VPC / 서브넷 / 보안 그룹은 직접 입력하는 것이 아니라 메뉴에서 선택.
- 로그 — 서비스의 모든 태스크 또는 단일 태스크에 걸쳐 하단 서랍에서 CloudWatch 로그를 조회하며, 텍스트 필터링, 레벨 하이라이팅, 복사/다운로드 기능 제공.
- ECS Exec — 실행 중인 컨테이너 내부로 진입하는 인터랙티브 셸(interactive shell)이며, 아직 execute-command가 설정되지 않은 서비스에 대해 원클릭으로 활성화할 수 있는 경로를 제공.
- 메트릭 및 비용 — Container Insights를 통해 CPU / 메모리 / ALB 정보를 AWS/ECS 폴백 방식으로 제공; 차트에 배포 시점이 표시되는 선택 가능한 1시간~7일 기간 설정 가능; Fargate 비용 추정치와 실제 최대 피크 기반의 적정화 판정(right-sizing verdict) 제공.
- 토폴로지 맵 — 인터넷 → 대상 그룹 → 서비스 흐름을 보여주며, 태스크 정의 환경 변수에서 파생된 의존성 간선(dependency edges)도 표시.
- Sentinel — 드리프트(drift), 정체된 배포, 플래핑(flapping) 태스크, OOM 킬(OOM kills), 이미지 취약점 등을 감지하는 백그라운드 워처(watcher).
- 이미지 보안 — 서비스 이미지별 ECR 취약점 스캔 심각도 표시.
- 에이전트 패널 — 에이전트 클라이언트 프로토콜(Agent Client Protocol)을 통해 사용자가 직접 코딩 에이전트(예: Claude Code)를 연결할 수 있음.
AWS에 대해서는 읽기 전용(read-only)입니다. 제안하는 모든 변경 사항은 diff 및 확인 대화 상자를 열고 해당 AWS CLI 명령을 실행합니다.
- AWS 콘솔에서 열기 — AWS 콘솔의 아무 클러스터, 서비스 또는 작업으로 이동할 수 있습니다.
- 최신 상태 유지 — 앱 내 자동 업데이트 기능이 새 릴리스와 업데이트를 한 번의 클릭으로 확인합니다.
- 키보드 기반 — ⌘K 명령 팔레트 및 전반적인 단축키가 제공됩니다.
설치(Install)
macOS (Apple Silicon 및 Intel) 및 Linux(.deb / .AppImage); Windows는 계획 중입니다. 최신 빌드는 릴리스 페이지에서 다운로드하거나 아래에서 소스 코드를 빌드하세요. 설치 후 Mercek는 자체적으로 업데이트를 유지합니다. 실행 시 새 릴리스를 확인하고 한 번의 클릭으로 업데이트됩니다.
앱 열기 (미서명 빌드)
Mercek는 아직 Apple의 공증(notarized)을 받지 못했기 때문에, 첫 실행 시 macOS에서 *"Apple could not verify 'Mercek' is free of malware…"*라는 메시지가 표시됩니다. 이는 미서명 앱에 대해 예상되는 현상입니다. 다음 방법 중 하나로 열 수 있습니다:
- 터미널(Terminal) — 격리 플래그를 제거한 후 정상적으로 실행합니다:
xattr -dr com.apple.quarantine /Applications/Mercek.app
- **파인더(Finder)** — `Mercek.app`을 마우스 오른쪽 버튼으로 클릭(Control-click) → **열기** → **열기**를 선택합니다.
- **시스템 설정(System Settings) → 개인 정보 보호 및 보안(Privacy & Security)** → *"Mercek was blocked"*까지 스크롤하여 **어쨌든 열기(Open Anyway)**를 클릭합니다.
이는 임시방편일 뿐, 계획은 아닙니다. 현재는 OS 수준에서 작동하지만 첫인상이 좋지 않고 Apple이 계속해서 규제를 강화하고 있습니다. 서명 및 공증이 진정한 해결책이며 경고 메시지를 제거할 것입니다.
## 보안 모델(Security model)
- **기본적으로 읽기 전용** — 쓰기는 항상 확인하는 diff를 거칩니다.
- **자격 증명 저장 안 함** — 기존 AWS 자격 증명 체인을 사용하며, 해결된 비밀 정보는 ARN으로 마스킹되어 디스크에 절대 기록되지 않습니다.
- **텔레메트리 없음** — Mercek는 사용자님의 AWS 계정하고만 통신하며 그 외에는 아무것도 하지 않습니다.
취약점을 신고하려면 [SECURITY.md](./SECURITY.md)를 참조하세요.
## 소스 코드 빌드(Build from source)
```bash
git clone [email protected]:utibeabasi6/mercek.git
cd mercek
pnpm install
...
최신 Rust 툴체인(toolchain), pnpm, 그리고 OS별 Tauri 필수 조건이 필요합니다.
아키텍처 (Architecture)
- 백엔드 (
src-tauri/, Rust):commands → discovery → resources → aws → domain순으로 계층화되었으며, AWS SDK 타입은resources/아래에 제한됩니다. - 프론트엔드 (
src/, React 19 + TypeScript):features/아래에서 기능별로 분할되었습니다 (feature-sliced). - 타입 브릿지: Rust 도메인 타입은
ts-rs를 통해 TypeScript로 내보내집니다. 절대로src/types/generated/파일을 직접 수정하지 마세요 —pnpm gen:types를 실행하세요. - 오프라인 테스트: 컴파일 타임의
mockcargo 기능이 목업(fixtures)을 교체합니다 —cargo test --features mock.
자세한 내용은 CONTRIBUTING.md를 참고하세요.
기여 (Contributing)
Issue와 pull request는 환영합니다 — CONTRIBUTING.md 및 우리의 Code of Conduct를 확인해 주세요. 질문이 있다면, discussion을 열어주세요.
라이선스 (License)
MIT © Utibeabasi Umanah
Mercek는 Amazon Web Services와 제휴하지 않았습니다. ECS, Fargate, CloudWatch, 및 ECR은 Amazon.com, Inc.의 상표입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기