Physical Address
South Korea
Physical Address
South Korea


최근 아는 엔지니어 분이 계신 고객사에서 AWS ECS Anywhere Agent 업그레이드 작업을 진행한다는 이야기를 들었습니다. 평소 AWS 클라우드 내부에서 ECS(Elastic Container Service)는 밥 먹듯이 다뤄봤지만, 솔직히 ‘ECS Anywhere’는 실제 운영 환경에서 접할 기회가 많지 않았습니다.
“굳이 온프레미스 서버를 AWS에 연결해서 쓴다고? 왜?” 라는 호기심이 발동하더군요. 마침 하이브리드 클라우드와 랜딩존(Landing Zone) 아키텍처를 고민하던 차라, AWS 공식 문서와 기술 자료를 샅샅이 뒤져가며 직접 VM(가상 머신)에 에이전트를 올리고 연동해 봤습니다.
실제 구축해 보니 기술 문서에는 안 나오는 인프라 엔지니어들의 현실적인 고민과, 왜 기업들이 그 비싼 비용을 들여가며 하이브리드 환경을 고집하는지 그 이유를 명확히 알 수 있었습니다. 직접 겪은 시행착오를 바탕으로, ECS Anywhere의 본질과 실전 설치 가이드를 담백하게 공유해 봅니다.
많은 기업들이 “클라우드가 대세”라며 마이그레이션을 추진하지만, 현실은 그리 만만치 않습니다. 깐깐한 보안 정책, 금융권의 규제 사항, 그리고 무엇보다 아직 감가상각도 안 끝난 쌩쌩한 온프레미스 장비들이 발목을 잡기 때문입니다.
그래서 현실적으로 타협하는 방식이 바로 하이브리드 클라우드(Hybrid Cloud)입니다. 전산실에 있는 VMware, Sangfor, 혹은 오픈소스 기반의 Proxmox VE 같은 가상화 환경은 그대로 유지하면서, 서비스 운영 체계만 AWS의 편리한 인프라를 가져다 쓰는 것이죠.
여기서 AWS ECS Anywhere는 온프레미스 서버와 AWS 클라우드를 끈끈하게 이어주는 ‘가교’ 역할을 합니다. 특히 기업 규모가 커서 AWS 랜딩존(Landing Zone) 환경을 꼼꼼하게 운영하는 곳이라면, 기존 인프라 자산을 100% 활용하면서도 AWS ECS 기반의 세련된 컨테이너 관리 체계를 그대로 이식할 수 있습니다.
기술 문서를 읽다 보면 가장 많이 나오는 지루한 표현이 있습니다. 바로 “중앙집중식으로 컨테이너를 관리한다”는 말인데요. 엔지니어 입장에서 이런 뜬구름 잡는 소리는 와닿지 않습니다. 팍팍한 인프라 운영 관점에서 이 말의 진짜 의미를 풀어보겠습니다.
현재 많은 기업들의 전산실을 가보면 난장판인 경우가 많습니다. 어떤 팀은 VMware vSphere를 쓰고, 어떤 팀은 비용 아낀다고 Proxmox를 쓰고, 또 어떤 인프라는 Sangfor HCI 위에 올라가 있죠. 이 환경에서 각각 컨테이너를 띄우고 배포하려면 지옥이 펼쳐집니다.
여기에 ECS Anywhere 에이전트를 딱 한 번만 설치해 주면 신세계가 열립니다. 인프라가 VMware 위에 있든, 방구석 Proxmox 위에 있든 상관없이 모든 서버 자원이 AWS ECS 콘솔 화면 딱 하나로 통합(Ingestion)됩니다.
💡 한 줄 핵심 요약
비싼 하드웨어와 가상 머신(VM)은 우리 회사 전산실에 그대로 두고, 명령을 내리는 ‘두뇌(컨트롤 플레인)’만 AWS 클라우드를 사용하는 구조입니다. 덕분에 개발자와 운영자는 오직 AWS 화면이나 API만 바라보고 모든 컨테이너를 배포하고 제어할 수 있게 됩니다.
현업 인프라 엔지니어들과 이야기해 보면 이 부분에서 가장 큰 의문과 거부감을 가집니다. “이거 에이전트 설치하면 내 VM OS 통제권까지 AWS가 다 가져가는 거 아냐?” 라는 우려죠. 결론부터 말씀드리면 “연결과 원격 제어는 AWS의 도움을 받지만, 자원의 생로병사는 여전히 내 책임이다”가 정답입니다.
에이전트를 설치하면 내부적으로 AWS Systems Manager(SSM) 기술이 작동합니다. 온프레미스 VM이 AWS에 ‘관리형 인스턴스(Managed Instance)’로 등록되는 것이죠. 이로 인해 두 가지 엄청난 보너스가 생깁니다.
이 서비스의 본질은 어디까지나 ‘ECS(컨테이너 서비스)’입니다. AWS가 우리 전산실 서버의 하드웨어 건강 상태까지 챙겨주지는 않습니다.
예를 들어, Proxmox 물리 서버의 파워서플라이가 펑 하고 터지거나 VM 커널 패닉으로 서버가 뻗어버린다면? AWS ECS가 이 VM을 자동으로 리부팅해 주지 못합니다. 그건 여전히 전산실 관리자가 땀 흘리며 해결해야 할 영역(vCenter나 Proxmox 관리 콘솔)입니다.
다만, ECS는 귀신같이 이를 감지합니다. VM OS가 죽으면 “어? 이 서버 응답 없네?” 하고 판단한 뒤, 그 위에서 돌던 웹서버 컨테이너(Task)들만 쏙 빼내어 옆에 살아있는 다른 정상적인 VM으로 이사시켜 서비스를 유지(Auto-Healing)해 줍니다. 엔지니어의 야간 장애 출동 전화를 줄여주는 일등 공신이죠.
| 구분 | 온프레미스 플랫폼 (VMware / Proxmox 등) | AWS ECS Anywhere (하이브리드 환경) |
| VM 인프라 관리 | VM 생성/삭제, 디스크 용량 증설, 하이퍼바이저 이중화(HA) | VM OS 자원 모니터링, AWS SSM 기반 원격 명령 수행 |
| 컨테이너 관리 | 관여 안 함 (단순 자원 제공) | 컨테이너 배포, 개수 유지, 헬스 체크, 자동 복구(Auto-Healing) |
개인 계정에서 ECS Anywhere를 테스트할 때는 대충 클릭 몇 번이면 끝납니다. 하지만 대기업이나 금융권의 AWS 랜딩존(Landing Zone) 환경으로 넘어가면 이야기가 완전히 달라집니다. 랜딩존은 보안과 네트워크 거버넌스가 워낙 까다롭기 때문입니다.
랜딩존 환경에서는 권한 분리가 철저합니다. 온프레미스 VM을 아무 계정에나 막 붙일 수 없습니다. 일반적으로는 전사 공통 서비스를 모아둔 공유 서비스 계정(Shared Services Account)이나, 실제 서비스를 서빙하는 워크로드 계정(Workload Account)의 ECS 클러스터에 귀속되도록 사전에 아키텍처를 정교하게 쪼개놓아야 합니다. 온프레미스 VM이 AWS API와 통신할 때 사용할 IAM 역할(Role)도 ‘최소 권한 원칙’에 맞추어 꼼꼼하게 생성해야 합니다.
기업 환경에서는 보안상 온프레미스 서버가 인터넷(Public Outbound)으로 다이렉트 통신하는 것을 법적으로나 기술적으로 철저히 막아둡니다. 대개 AWS Direct Connect(전용선)나 Site-to-Site VPN을 통해 내부망으로만 연결되어 있죠.
이런 환경에서 ECS Anywhere를 성공시키려면, AWS 랜딩존 내부에 VPC 엔드포인트(AWS PrivateLink)를 촘촘하게 뚫어주어야 합니다. SSM, EC2 Messages, ECS Telemetry 등의 API 통신이 외부 인터넷이 아닌 ‘사설 사내 네트워크’를 타고 안전하게 이동할 수 있도록 길을 만들어주는 작업입니다.
💡 실전 에디터 팁: > 실제로 에이전트 설치가 실패하는 원인의 90% 이상은 스크립트 오류가 아니라 ‘네트워크 방화벽’ 문제입니다. 무작정 스크립트만 실행하지 말고, 사내 방화벽 담당자에게 아웃바운드 허용을 요청해야 합니다. 이때 IP 방식보다는 URL 기반(예:
*.amazonaws.com)으로 방화벽을 오픈하는 것이 정신 건강에 좋습니다. IP는 수시로 바뀌기 때문이죠.
전체적인 인프라 그림과 방화벽을 정리했다면, 이제 설치할 차례입니다. AWS가 제공하는 스크립트 덕분에 과정 자체는 아주 심플합니다. 엔지니어로서 흐름을 놓치지 않도록 단계별로 짚어보겠습니다.
먼저 AWS 랜딩존 내 가동할 워크로드 계정의 ECS 콘솔에 접속합니다. 클러스터를 생성할 때 인프라 타입을 ‘외부(External)’로 지정하여 생성합니다. 생성이 완료되면 외부 인스턴스 등록(Register) 버튼을 눌러 보안 통신을 위한 일회성 정품 인증 키(Activation ID 및 Activation Code)를 발급받아 메모장에 잘 복사해 둡니다.
VMware나 Proxmox에서 운영 중인 테스트용 Linux VM(Ubuntu, CentOS, RHEL 등)에 SSH로 접속하여 아래 스펙과 통신 상태를 체크합니다.
curl이나 telnet으로 찔러보기준비가 끝났다면 아래의 통합 설치 스크립트를 온프레미스 VM 터미널에 그대로 복사해서 실행합니다. 이때 아까 메모장에 적어둔 키값과 리전 정보를 정확히 매개변수로 넣어줍니다.
Bash
# AWS ECS Anywhere 통합 설치 스크립트 실행
curl --proto '=https' --tlsv1.2 -sSf https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install.sh | bash -s -- \
--cluster <내-ECS-클러스터-이름> \
--activation-id <발급받은-Activation-ID> \
--activation-code <발급받은-Activation-Code> \
--region <ap-northeast-2 등-사용할-리전>
만약 이 단계에서 스크립트가 멈추거나 에러가 난다면, 십중팔구 AWS와 통신이 막힌 것입니다. 당황하지 말고 사내 네트워크 라우팅과 방화벽 정책(Security Group, ACL)을 다시 검토해 보세요.
스크립트가 성공적으로 끝나면 VM 내부에서 소리 없이 놀라운 변화가 일어납니다.
amazon-ssm-agent가 리눅스 시스템 서비스(systemd)로 등록되어 AWS Systems Manager와 비밀 통로를 개설합니다.ecs-agent가 도커(Docker) 컨테이너 형태로 자동 구동되어 AWS ECS 컨트롤 플레인과 “나 살아있어요” 하고 주기적으로 신호(Ping)를 주고받습니다.이번에 고객사의 요구사항을 계기로 ECS Anywhere를 깊게 파보면서 느낀 점이 많습니다. 모든 시스템을 억지로 클라우드로 뜯어고치지 않더라도, AWS가 수년간 쌓아온 훌륭한 컨테이너 오케스트레이션과 인프라 관리 기능을 온프레미스에 그대로 녹여낼 수 있다는 점이 정말 매력적이었습니다.
특히 여러 가상화 플랫폼(VMware, Proxmox 등)이 파편화되어 운영 효율이 떨어지던 환경이라면, 관리 포인트를 AWS 콘솔 하나로 묶어버리는 이 방식이 아주 훌륭한 돌파구가 될 수 있습니다.
지금 사내 전산실 자원을 어떻게 효율적으로 굴려야 할지 고민하고 계신가요? 그렇다면 노는 테스트용 VM 한 대를 골라 ECS Anywhere 에이전트를 가볍게 올려보세요. 백문이 불여일견이라고, 직접 콘솔에 연동되는 모습을 보면 하이브리드 클라우드의 미래가 어떤 방향으로 가고 있는지 확실히 체감하실 수 있을 겁니다.
Q1. ECS Anywhere를 쓰면 비용이 감당 가능한 수준인가요?
ECS Anywhere는 온프레미스에서 실행되는 인스턴스 개수(시간당 등록된 인스턴스 수)를 기준으로 비용이 청구됩니다. AWS의 EC2나 Fargate 인프라 자체를 빌려 쓰는 것보다는 훨씬 저렴한 ‘컨트롤 플레인 이용료’ 개념입니다. 다만, 컨테이너 이미지를 다운로드하거나 AWS 내부 서비스와 통신할 때 발생하는 데이터 전송 비용(Data Transfer Out) 및 SSM 연계 서비스 비용이 합산되므로, 네트워크 트래픽 패턴을 미리 시뮬레이션해 보는 것이 좋습니다.
Q2. 인프라팀에서 VMware의 vMotion이나 Proxmox의 HA 기능을 자주 쓰는데, 에이전트와 충돌하지 않을까요?
결론부터 말씀드리면 전혀 충돌하지 않고 아주 잘 작동합니다. 하이퍼바이저 레벨에서 VM을 다른 물리 서버 노드로 라이브 마이그레이션(Live Migration)하더라도, VM OS 내부의 네트워크 연결성과 에이전트 프로세스만 끊기지 않고 유지된다면 AWS ECS는 중단 없이 해당 VM을 동일한 자원으로 인식합니다. 안심하고 기존 가상화 플랫폼의 고급 기능들을 그대로 병행해서 사용하셔도 됩니다.
기업 경쟁력을 결정짓는 AI Economics: 운영 모델의 혁신과 가치 창출 전략
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html