Amazon EventBridge Scheduler 를 통하여 lambda 함수를 호출하여, 특정 시간에 dms를 기동, 중지 하려고 합니다.
1. dms 기동 함수
import boto3
# DMS 클라이언트 초기화
dms_client = boto3.client('dms')
def lambda_handler(event, context):
# DMS Task 이름
dms_task_name = "dms-one"
try:
# DMS Task 시작 요청
response = dms_client.start_replication_task(
ReplicationTaskArn='arn:aws:dms:ap-northeast-2:344:task:dms-one', # DMS Task ARN을 설정
StartReplicationTaskType='reload-target' # 전체 로드 후 지속적 복제
)
# 작업 결과 로그
return {
"statusCode": 200,
"body": {
"message": f"DMS Task '{dms_task_name}' has been started successfully.",
"response": response
}
}
except Exception as e:
return {
"statusCode": 500,
"body": {
"message": f"Failed to start DMS Task '{dms_task_name}'.",
"error": str(e)
}
}
2. dms 중지 함수
import boto3
# DMS 클라이언트 초기화
dms_client = boto3.client('dms')
def lambda_handler(event, context):
# DMS Task 이름
dms_task_name = "dms-one"
try:
# DMS Task 중지 요청
response_stop = dms_client.stop_replication_task(
ReplicationTaskArn='arn:aws:dms:ap-northeast-2:344:task:dms-one'
)
# 작업 결과 로그
return {
"statusCode": 200,
"body": {
"message": f"DMS Task '{dms_task_name}' has been stopped successfully.",
"response": response_stop
}
}
except Exception as e:
return {
"statusCode": 500,
"body": {
"message": f"Failed to stop DMS Task '{dms_task_name}'.",
"error": str(e)
}
}
3. IAM 역할 설정
{
"Version": "2020-05-12",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction",
"dms:CreateReplicationInstance",
"dms:CreateReplicationTask",
"dms:StartReplicationTask",
"dms:StopReplicationTask"
],
"Resource": "*"
}
]
}
.
'AWS' 카테고리의 다른 글
DMS(Database Migration Service) 날짜 열 추가 (0) | 2025.01.10 |
---|---|
DMS(Database Migration Service) full-load & CDC 임계치 (2) | 2025.01.10 |