레거시(legacy) 애플리케이션이란 오래됐거나, 더 이상 개발이 이뤄지지 않거나, 유지보수가 겨우 되는 시스템을 말합니다. Windows Server 2008 위에서 돌아가는 .NET Framework 3.5 앱, Oracle 11g에 종속된 ERP, 심지어 IBM 메인프레임까지 포함됩니다.
이걸 AWS로 옮겨야 하는 이유는 단순합니다.
☁️ 온프레미스 서버의 유지보수 비용·라이선스 갱신 압박
📉 보안 패치 종료 (EoL) 위협
🚀 스케일링이 필요한 비즈니스 요구
그런데 문제는 — 레거시는 그냥 복사해서 붙여넣기 하듯 옮길 수가 없다는 것입니다.
🔍 AWS 마이그레이션의 6가지 전략 — "6 R's"
AWS와 Gartner가 정립한 클라우드 마이그레이션 전략 프레임워크입니다.
전략
별칭
설명
Rehost
Lift & Shift
그대로 EC2에 올림. 변경 최소
Replatform
Lift, Tinker & Shift
핵심은 유지하되 일부 최적화 (예: RDS 전환)
Refactor
Re-architect
아키텍처 자체를 클라우드 네이티브로 재설계
Repurchase
Drop & Shop
SaaS 솔루션으로 교체 (예: Salesforce)
Retire
—
더 이상 필요 없는 시스템 폐기
Retain
—
당분간 건드리지 않음
레거시라면 대부분 Rehost(1단계) → Replatform(2단계) 순서로 접근하는 게 현실적입니다.
🚚 1단계: Rehost — 일단 EC2에 올려라
가장 빠르고 위험 부담이 낮은 방법입니다. 서버를 통째로 복사해서 EC2 인스턴스로 올리는 방식이죠.
🛠️ 주요 도구: AWS Application Migration Service (MGN)
예전 이름이 CloudEndure Migration이었고, 현재는 AWS MGN으로 통합됐습니다.
Oracle, MS SQL Server, MySQL, PostgreSQL, MongoDB, SAP ASE, IBM Db2 등
2) AWS SCT (Schema Conversion Tool)
스키마(구조)를 변환하는 도구입니다. DMS가 데이터를 옮긴다면, SCT는 테이블 구조, 인덱스, 스토어드 프로시저, 트리거 등을 변환합니다.
Oracle PL/SQL → PostgreSQL PL/pgSQL 변환
변환 불가 항목은 리포트로 표시해줌 (수동 수정 필요 항목 식별)
GUI 기반 툴 (무료 다운로드)
[SCT 워크플로우]
1. 소스 DB 연결 → 스키마 분석
2. 변환 리포트 생성 (호환성 평가)
3. 자동 변환 실행
4. 수동 수정 필요 항목 확인 및 처리
5. 타겟 DB에 변환된 스키마 적용
💡 DMS vs SCT 정리
SCT = 구조(스키마) 변환
DMS = 데이터 복제 및 이전
보통 둘을 함께 사용합니다
💻 실전 마이그레이션 흐름 예시
Oracle 11g → Aurora PostgreSQL 전환 시나리오:
[1단계] AWS SCT 설치 및 스키마 분석
→ 변환 가능 항목 자동 변환
→ 수동 수정 목록 확인
[2단계] Aurora PostgreSQL 인스턴스 생성
→ RDS 콘솔 또는 Terraform으로 프로비저닝
[3단계] DMS 복제 인스턴스 생성
→ 소스/타겟 엔드포인트 설정
[4단계] 전체 로드(Full Load) 실행
→ 기존 데이터 전체 복제
[5단계] CDC 활성화
→ 실시간 변경사항 동기화 (운영 중 마이그레이션)
[6단계] 애플리케이션 DB 접속 정보 변경
→ 컷오버 및 모니터링
# 간단한 DMS 엔드포인트 생성 예시 (boto3)
import boto3
dms = boto3.client('dms', region_name='ap-northeast-2')
# 소스 엔드포인트 (Oracle)
response = dms.create_endpoint(
EndpointIdentifier='source-oracle',
EndpointType='source',
EngineName='oracle',
Username='migration_user',
Password='your_password',
ServerName='192.168.1.100',
Port=1521,
DatabaseName='ORCL'
)
print(response['Endpoint']['EndpointArn'])
⚠️ 주의사항 / 흔한 실수
1. 라이선스 함정 🪤 Windows Server, Oracle DB 등은 AWS에서 라이선스 포함(License Included) 요금과 BYOL 요금이 다릅니다. 이걸 모르고 올리면 비용이 폭발합니다.
2. 네트워크 레이턴시 간과 😵 온프레미스 시절엔 같은 IDC 안에 있던 DB와 앱이 이제는 인터넷(또는 VPN/Direct Connect)을 타야 합니다. 특히 레거시 앱은 DB 쿼리를 수백 번씩 날리는 경우가 많아 레이턴시 차이가 치명적입니다.
3. SCT 리포트 무시 ⛔ SCT가 "수동 변환 필요"라고 표시한 항목을 무시하고 DMS만 돌리면 — 데이터는 옮겨졌지만 프로시저가 동작 안 하는 상황이 발생합니다.
4. 컷오버 전 충분한 검증 부재 CDC로 동기화 중에도 실제 앱을 타겟 DB에 연결해 테스트(병렬 운영)하는 구간이 반드시 필요합니다. 컷오버 당일 처음 테스트하면 늦습니다.
5. IAM 권한 설정 미흡 DMS 복제 인스턴스가 소스 DB와 타겟 DB 모두에 접근할 수 있어야 합니다. VPC 보안그룹, 서브넷, IAM Role 설정을 사전에 꼼꼼히 체크하세요.
✅ 정리 / 마무리
레거시를 AWS로 올리는 건 한 방에 되는 일이 아닙니다. 단계별 접근이 핵심입니다.
단계
전략
도구
1단계
Rehost (Lift & Shift)
AWS MGN
2단계
Replatform (DB 전환)
AWS SCT + DMS
3단계
Refactor (선택)
Lambda, ECS, Aurora Serverless 등
다음 단계로 나아가려면:
✅ AWS Application Migration Service (MGN) 공식 문서 실습
✅ AWS SCT 다운로드 후 샘플 Oracle 스키마로 변환 체험
✅ AWS DMS Workshop (AWS 공식 무료 핸즈온)
레거시를 AWS에 올리는 건 두렵지만 — 제대로 된 도구와 순서를 알고 시작하면 생각보다 체계적으로 할 수 있습니다. 🚀