
Application Discovery Service는 주로 마이그레이션의 초기 단계에서 사용됩니다.
온프레미스 환경에 있는 서버와 애플리케이션의 사용 데이터를 수집하여 클라우드로 마이그레이션할 때 어떤 시스템을 먼저 옮겨야 할지, 어떤 종속성 관계가 있는지 등을 파악합니다.
Application Migration Service는 마이그레이션을 실제로 진행할 때 사용됩니다.
물리적 서버나 가상 서버를 AWS에서 네이티브하게 실행될 수 있도록 변환합니다.
Application Discovery Service의 핵심 기능은 '종속성 매핑'입니다.
이 기능을 통해, 클라우드로 마이그레이션할 때 애플리케이션 간의 관계를 명확하게 파악할 수 있습니다.
이를 통해 마이그레이션의 순서를 정의하고, 애플리케이션을 분리하여 이전하거나 하나의 시스템으로 묶어서 이전할 수 있는 전략을 세울 수 있습니다.
aws discovery describe-configurations --query "configurations[].[id, name, type, status]" --region us-east-1
이 명령어를 통해, AWS의 Discovery 서비스에 설정된 모든 서버의 기본적인 정보를 조회할 수 있습니다.
에이전트를 설치하여 더 상세한 시스템 정보와 종속성 매핑 데이터를 수집합니다.
이 방법은 데이터베이스, 서버 간의 네트워크 연결 등을 정확히 파악할 수 있어, 마이그레이션을 수행할 때 중요한 정보를 제공합니다.
예시: Python 스크립트를 이용하여 Discovery Agent의 로그를 모니터링하고, 상태를 체크하는 방법
import os
import time
def check_agent_status():
agent_log_path = "/var/log/aws/discovery-agent.log"
if os.path.exists(agent_log_path):
with open(agent_log_path, "r") as log_file:
logs = log_file.readlines()
for line in logs:
if "ERROR" in line:
print(f"Error found in agent log: {line}")
else:
print(f"Agent is running smoothly: {line}")
else:
print("Discovery Agent log file does not exist.")
# 5초마다 상태 확인
while True:
check_agent_status()
time.sleep(5)
이 스크립트는 애플리케이션 디스커버리 에이전트가 설치된 서버에서 에이전트 로그 파일을 모니터링하여 에러를 감지하고 알림을 출력하는 기능을 합니다.
마이그레이션 단계에서는 Application Migration Service (MGN)을 사용하여 실제로 서버를 AWS로 옮깁니다.
리호스팅 방식이 일반적인 방법입니다.
이를 통해 물리적 서버나 가상 서버의 데이터를 클라우드 환경으로 복제하고, 전환을 진행할 수 있습니다.
1. 복제 에이전트 설치 및 데이터 복제
# AWS 복제 에이전트 설치
wget https://d1wk0tztpsntt1.cloudfront.net/latest/linux/x86_64/aws-application-migration-agent-1.0.1-1.x86_64.rpm
sudo rpm -ivh aws-application-migration-agent-1.0.1-1.x86_64.rpm
# 복제 에이전트 서비스 시작
sudo systemctl start aws-mgn-agent
sudo systemctl enable aws-mgn-agent
AWS MGN 복제 에이전트를 서버에 설치하고, 데이터를 AWS로 복제하기 위해 필요한 서비스를 실행하는 명령어입니다.
2. 복제된 데이터 검증 및 전환 (Cutover)
# EC2 인스턴스 생성
aws ec2 run-instances --image-id ami-0123456789abcdef0 --count 1 --instance-type t2.medium --key-name MyKeyPair --security-group-ids sg-12345678 --subnet-id subnet-12345678
# EBS 볼륨 연결
aws ec2 attach-volume --volume-id vol-12345678 --instance-id i-12345678 --device /dev/sdf
이 스크립트는 AWS에서 EC2 인스턴스를 생성하고, 복제된 EBS 볼륨을 해당 인스턴스에 연결하는 과정입니다.
마이그레이션 후, AWS 환경에서 최적화를 위해 다양한 방법을 적용할 수 있습니다.
예를 들어, Auto Scaling을 설정하여 트래픽 변화에 따라 자동으로 리소스를 조절하거나, CloudWatch를 사용하여 성능 모니터링을 지속적으로 수행할 수 있습니다.
Auto Scaling 그룹 생성
aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyAutoScalingGroup --launch-configuration-name MyLaunchConfig --min-size 1 --max-size 10 --desired-capacity 2 --vpc-zone-identifier subnet-12345678
이 코드는 Auto Scaling 그룹을 생성하여, 서버의 부하에 맞춰 자동으로 인스턴스를 증설하거나 축소하는 기능을 구현합니다.
AWS Application Discovery Service와 Application Migration Service를 실제 온프레미스 서버를 AWS 클라우드로 마이그레이션하는 데 필요한 핵심 기능들을 어떻게 활용할 수 있는지 보여줍니다.