Kiro와 함께 디지털 배지 시스템 구축 (및 Amazon ECS Express Mode)

발행: (2026년 1월 16일 오전 02:01 GMT+9)
10 min read
원문: Dev.to

Source: Dev.to

시작하기

저는 Kiro를 사용하여 앱을 개발합니다. 처음에 필요했던 것은 Amazon ECS Express Mode에 배포하기 위해 프로젝트를 준비하는 방법이었습니다.

  1. ECS MCP 서버 추가 – 기억이 흐릿할 때는 보통 문서를 참고하지만, 이제는 AI‑코딩 도구에게 무거운 작업을 맡깁니다. 저는 Kiro 세션에 Amazon ECS MCP Server를 추가했습니다:
{
  "mcpServers": {
    "awslabs.ecs-mcp-server": {
      "command": "uvx",
      "args": ["--from", "awslabs-ecs-mcp-server", "ecs-mcp-server"]
    }
  }
}

애플리케이션‑준비도 평가

다음으로 Kiro에게 준비도 검사를 요청했습니다:

프롬프트: “Amazon ECS MCP Server를 사용해 이 애플리케이션을 Amazon ECS Express 모드에 배포하기 위한 준비도 검사를 제공해 주세요.”

MCP Server 도구를 신뢰한 뒤, Kiro는 간결한 보고서를 반환했습니다. 보고서에는 변경이 필요한 세 가지 발견 사항이 강조되었습니다.

Amazon ECS Express 보고서

그 후 Kiro는 컨텍스트‑특정 체크리스트(IAM 정책, 서비스 권한 등)를 제공하고 배포 스크립트를 생성했습니다. 스크립트를 검토하면서 잠재적인 문제를 발견했습니다:

앱은 BASE_URL(예: 로컬 개발 시 127.0.0.1:5001)을 기대합니다. 서비스가 ECS Express에서 실행될 때까지 DNS 이름을 알 수 없습니다.

이에 대해 Kiro에게 다음과 같이 물었습니다:

프롬프트: “아직 DNS가 등록되지 않아 BASE_URL을 어떻게 설정해야 할지 모르겠어요. 도와줄 수 있나요?”

Kiro는 코드를 업데이트하고 배포 스크립트를 동적으로 처리하도록 수정했습니다.

BASE_URL 수정

Source:

Deploying to Amazon ECS Express

생성된 스크립트를 실행했습니다. 리소스가 프로비저닝되고 서비스가 시작되었지만 배포가 멈춘 것처럼 보였습니다. CloudWatch 로그를 확인해 보니 다음 오류가 나타났습니다:

exec /bin/sh: exec format error

문제는? 내 Mac이 ARM‑based 컨테이너 이미지(aarch64)를 빌드한다는 점이었습니다. 스크립트가 기본값으로 amd64를 사용해 형식이 맞지 않았습니다.

Dockerfile 및 빌드 명령에서 아키텍처를 aarch64로 수정했습니다. 수정 후 서비스가 정상적으로 시작되었습니다.

Call to Arm

API 문서를 빠르게 다시 확인해 보니 변경 사항이 맞는 것이 확인되었고, 배포가 최종적으로 성공했습니다.

요약

단계배운 점
MCP 서버 통합ECS MCP Server를 mcp.json에 추가하면 Kiro가 바로 배포 가능한 스크립트와 준비 상태 보고서를 생성합니다.
준비 상태 검사생성된 보고서는 IAM 권한 누락, 환경 변수 부족, 아키텍처 불일치 등을 초기에 표시합니다.
동적 구성런타임에 ECS 작업 정의나 AWS Parameter Store를 통해 해석될 수 있는 환경 변수(예: BASE_URL)를 사용합니다.
아키텍처 인식컨테이너 이미지 아키텍처를 대상 런타임(ARM vs. x86)과 항상 일치시킵니다.
반복 디버깅CloudWatch 로그는 exec format error와 같은 런타임 오류를 포착하는 데 매우 유용합니다.

Amazon ECS Express Mode로 컨테이너화된 앱을 배포하는 것이 이제 Kiro의 AI‑지원 워크플로우 덕분에 반복 가능한 프로세스가 되었습니다. 비슷한 서비스를 구축하고 있다면 Strands Agent와 ECS MCP Server를 한 번 사용해 보세요 – 수많은 수작업을 크게 줄여줄 것입니다.

Amazon ECS Express Mode – 내 경험

그때는 MCP 서버가 이를 잡아낼 수 있었습니다 (현재는).

Amazon ECS Express Mode는 초기 배포를 위해 amd64 인스턴스 유형을 사용합니다. Kiro가 이미 비즈니스를 처리해 주었고, 빌드 스크립트를 업데이트하여 amd64 이미지가 생성되도록 했습니다.

Note! 더 많이 알고 있는 사람들과 이야기를 나눈 결과, Amazon ECS Express Mode에서 aarch64 인스턴스를 사용할 수 있습니다. 서비스를 만든 후에는 작업 정의 파일(컨테이너를 배포하기 위해 필요한 설정을 정의하는 핵심 구성 파일 – task.json)을 수정하여 AWS Graviton 인스턴스 유형을 지원하도록 변경할 수 있습니다. 실제로는 AWS Fargate가 이 작업을 수행하고 있습니다.

스크립트가 완벽하지는 않았습니다

예를 들어, 초기 성공적인 배포 후에 스크립트를 사용해 애플리케이션을 업데이트하려고 했을 때 다음과 같은 오류가 발생했습니다:

An error occurred (InvalidParameterException) when calling the CreateExpressGatewayService operation: 
Unable to Start a service that is still Draining.

Kiro는 배포 스크립트를 빠르게 조정했습니다(스크립트가 매번 update‑service 메서드 대신 동일한 서비스를 새로 만들려고 했기 때문). 모든 코드는 확인할 수 있으며, 레포는 이 글의 마지막에 공유합니다.

내가 배운 것

  1. Amazon ECS Express Mode는 의견이 반영된 기본값을 제공하여 컨테이너 워크로드를 빠르게 배포할 수 있게 해 주지만, 여전히 Amazon ECS입니다.
    • 기존 ECS 리소스 집합과 마찬가지로 모든 기능에 접근할 수 있습니다.
    • 맞춤 도메인 및 인증서 구성과 같은 배포 후 작업도 간단합니다 – 고급 커스터마이징 가이드를 참고하세요.
    • 필요하거나 원한다면 여전히 task‑definition JSON 파일을 편집할 수 있습니다.
  2. 인스턴스 유형 기본값 – 기본적으로 Express Mode는 amd64를 사용하고 aarch64는 사용하지 않습니다.
    • 많은 워크로드가 AWS Graviton으로 이동하고 있기 때문에, 서비스 생성 API를 사용하거나 배포 후 클러스터를 업데이트하여 Graviton 인스턴스로 전환할 수 있다는 점을 알아두면 유용합니다.
  3. Amazon ECS MCP Server는 훌륭합니다 – 이 서버는 Express Mode를 이해하고 작업하는 데 필요한 모든 것을 제공했으며, 해당 기능이 아직 새로웠음에도 큰 도움이 되었습니다.

결론

  • 출력을 검토하고 누락된 부분을 찾아보세요.
  • 명확성을 얻기 위해 올바른 질문을 (프롬프트를 통해) 하세요.

귀하의 역할은 작동하는 코드를 제공하는 데 있어 여전히 중요합니다.

Amazon ECS Express Mode에 대한 나의 경험은 훌륭했습니다 – 이는 AWS에 애플리케이션을 배포하는 것을 간단하고 빠르게 만들어 줍니다. Kiro와 Amazon ECS MCP Server를 결합하면, 이제 애플리케이션을 구축하고 배포하는 새로운 기본 접근 방식을 갖게 되었습니다.

리소스

Back to Blog

관련 글

더 보기 »

기술은 구원자가 아니라 촉진자다

왜 사고의 명확성이 사용하는 도구보다 더 중요한가? Technology는 종종 마법 스위치처럼 취급된다—켜기만 하면 모든 것이 개선된다. 새로운 software, ...

에이전틱 코딩에 입문하기

Copilot Agent와의 경험 나는 주로 GitHub Copilot을 사용해 인라인 편집과 PR 리뷰를 수행했으며, 대부분의 사고는 내 머리로 했습니다. 최근 나는 t...