
IBM Bob으로 기존 AWS 인프라 마이그레이션 시작하기
요약
기존 AWS 인프라를 IBM Bob이라는 AI 도구를 활용하여 Amazon ECS Express로 마이그레이션하는 과정을 다루고 있습니다. 사용자는 App Runner의 지원 종료에 대응하기 위해 재사용 가능한 애플리케이션을 목표로 삼았으며, AI에게 원하는 아키텍처(ECS Express)를 명확히 이해시키기 위한 프롬프팅 전략과 반복적인 상호작용이 중요함을 보여줍니다.
핵심 포인트
- IBM Bob은 코드와 인프라 코드를 분석하여 기존 환경을 파악하는 능력이 뛰어남.
- AI에게 원하는 아키텍처(ECS Express)를 명확히 이해시키기 위해서는 구체적이고 반복적인 프롬프트가 필요함.
- AWS App Runner의 지원 종료에 대응하여 ECS Express로 마이그레이션 계획을 수립할 수 있음.
동기
안녕하세요. IBM Bob을 탐색하는 것은 처음입니다. 저는 평가판(Trial Version)을 사용하고 있었습니다. IBM Bob에 대해 더 알고 싶습니다. 제가 가지고 있는 기존의 AWS 인프라가 있고, 비교적 간단해서 마이그레이션할 수 있습니다. 그래서 IBM Bob에게 AWS App Runner를 Amazon ECS Express로 마이그레이션하도록 요청했습니다.
AWS App Runner가 지원 종료(end of support)에 대해 저에게 통지했기 때문에, 저는 아직 마이그레이션을 생각하지 않았습니다. 하지만 몇 가지 고민 끝에, 기존 애플리케이션을 재사용할 수도 있을 것 같아 마음을 바꿨습니다.
마이그레이션 가이드를 읽어보니, 제 간단한 애플리케이션에는 정보가 너무 많았습니다. 저는 AWS App Runner, AWS Secrets Manager, 그리고 AWS CDK를 거의 사용하지 않았습니다. 커스텀 도메인은 아직 사용해 본 적이 없기 때문에, 순조로울 것 같습니다.
계획부터 시작하기
저는 기존 인프라를 직접 마이그레이션하는 것이 싫었습니다. 비록 개발 환경일지라도 말입니다. 배경 설명을 드리자면, 저는 제 개발/실험 환경을 마이그레이션하고 싶습니다. 기본적으로 저의 전략은 ECS Express를 초기화하고 AWS App Runner는 유지하는 것입니다.
Vibe Coding - 계획을 위한 첫 번째 프롬프트
저는 Bob에게 계획을 준비해 달라고 요청했고, 아주 첫 번째 프롬프트를 던졌습니다.
IBM Bob이 계획을 처리한 방식에서 제가 좋아하는 몇 가지 점들이 있습니다.
- IBM Bob은 애플리케이션 코드와 인프라 코드를 빠르게 읽어서 기존 인프라를 명확하게 이해할 수 있습니다.
- 제가 사전에 명확하게 요청하지 않았음에도 불구하고, IBM Bob은 마이그레이션하는 가장 좋은 방법에 대해 조언해 줄 수 있습니다.
하지만 그것은 제가 원하지 않는다고 가정하고 있습니다. 저는 인프라를 많이 다루지 않고도 ECS를 처리하는 간단한 방법인 Amazon ECS Express를 사용하고 싶습니다. 이것이 상당히 새로운 지식이기에, IBM Bob은 제가 표준/일반적인 Fargate 기반의 Amazon ECS를 원하는 것으로 가정합니다. 따라서 첫 번째 시도는 부분적으로는 좋습니다. 여기 첫 커밋/시도입니다.
IBM Bob을 움직여 새로운 지식을 명확히 이해시키기
IBM Bob은 저를 놀라게 하는 것을 멈출 수 없습니다. Amazon ECS Express 사용 방법을 더 자세히 설명하는 아티클을 제공함으로써 제가 원하는 것을 이해할 수 있습니다. 두 번째 시도에서도 저는 마이그레이션 가이드를 제공했지만, IBM Bob은 Amazon ECS Express로 마이그레이션하는 방법을 이해하지 못했습니다.
CfnExpressGatewayService를 탐색하도록 Bob을 유도한 후, 놀랍게도 IBM Bob은 첫 번째와 두 번째 시도 이후에 빠른 해결책을 제시해 주었습니다. 여기 확실한 결과입니다.
배운 교훈
IBM Bob을 사용해보는 것은 정말 좋은 경험이었습니다. 마지막 시도 후, 제 애플리케이션이 여전히 작동하는지 알 수 없었습니다. 저는 애플리케이션이 환경 변수(Environment Variable)를 인식하지 못하고 있는지 알아차리지 못했습니다. 언제부터 그랬는지 확실하진 않지만, 배포를 시도한 후에 계속 실패했습니다. 인프라 설정 문제라고 생각했지만 그렇지 않았습니다. 로컬에서 더 디버깅한 결과, 환경 변수가 감지되지 않는 것을 발견했습니다. 그래서 애플리케이션을 수정하고 인프라 설정을 IBM Bob이 처음에 제안했던 것으로 되돌렸습니다. 짜잔, 이제 완벽하게 실행됩니다!
감사 인사 (Thank you)
읽어주셔서 감사합니다. 수정/마이그레이션 자체는 정말 빨랐지만, 최근에 로컬 환경에서 실행하거나 확인할 시간이 충분하지 않았기 때문에 디버깅 과정은 그렇지 못했습니다. 애플리케이션을 검토할 시간이 좀 지난 후에야 인프라 마이그레이션 후 배포가 실패했던 이유를 알게 되었습니다.
이것은 깊이 있는 지식을 단계별로 어떻게 마이그레이션하는지에 대한 이야기는 아닙니다. 제 프롬프트의 결과는 여러분에게 다르게 나올 수 있기 때문에, 저는 그것에 의존하고 싶지 않습니다. 하지만, 제가 기대하는 것은 여러분이 AI를 어떻게 구동하여 마이그레이션 프로세스에 가장 좋은 컨텍스트(context)를 얻어낼 수 있는지에 대한 것입니다. 도움이 되기를 바랍니다.
안녕히 계세요! (Cheers!)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
