복제 인스턴스에서 스토리지가 가득 차지 않도록 AWS DMS 오류 로그 삭제 프로세스를 자동화하려면 어떻게 해야 합니까?
AWS Database Migration Service(AWS DMS) 오류 로그 삭제 프로세스를 자동화하여 더 자주 삭제하고 싶습니다.
간략한 설명
DMS 복제 인스턴스에서 AWS DMS 오류 로그가 많은 공간을 차지하는 경우 복제 인스턴스가 storage-full 상태로 전환될 수 있습니다. 이 문제를 해결하려면 DMS 작업에 대한 DMS 작업 오류 로그를 삭제하십시오.
AWS DMS 작업에 대한 오류 로그를 삭제하려면 다음 방법 중 하나를 사용하십시오.
- AWS DMS 콘솔
- AWS Command Line Interface(AWS CLI)
- API
- Lambda 스케줄러
참고: storage-full 상태가 발생하는 데에는 몇 가지 이유가 있습니다. 자세한 내용은 AWS DMS 복제 DB 인스턴스가 스토리지가 storage-full 상태인 이유는 무엇입니까?를 참조하십시오.
해결 방법
**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
AWS DMS 콘솔 사용
DMS 작업 오류 로그를 수동으로 삭제하려면 AWS DMS용 CloudWatch 로그를 활성화, 액세스 또는 삭제하려면 어떻게 해야 합니까?를 참조하십시오.
AWS CLI 사용
AWS CLI를 사용하여 작업 설정을 수정하고 DMS 작업 로그를 삭제하려면 modify-replication-task 명령을 실행합니다.
aws dms modify-replication-task --replication-task-arn <DMS task ARN> --replication-task-settings '{"Logging": { "DeleteTaskLogs": true}}'
이 명령은 "DeleteTaskLogs": true 파라미터를 변경하여 작업을 수정합니다. 이 파라미터를 사용하여 작업 설정을 추가하면 해당 작업에 대한 모든 로그가 복제 인스턴스에서 삭제됩니다. 로그가 삭제되면 작업 설정에서 "DeleteTaskLogs": true 파라미터가 제거됩니다. 이 명령을 실행한 후 복제 인스턴스에서 로그가 삭제되었는지 확인합니다.
로그를 정기적으로 삭제하려면 "DeleteTaskLogs": true 파라미터를 사용하여 작업 설정을 수정하십시오. cron 작업을 사용하여 modify-replication-task가 주기적으로 실행되도록 스케줄을 지정할 수 있습니다.
API 사용
AWS DMS 작업 로그를 자동으로 삭제하려면 매일 또는 원하는 빈도로 실행할 스크립트를 생성하십시오. 다음 예제는 AWS Lambda 및 Python 코드를 사용하여 제공된 작업 ARN에 대한 작업 오류 로그 삭제를 자동화합니다.
Lambda 함수 설정
Lambda 함수를 설정하려면 다음 단계를 완료하십시오.
1. Lambda 콘솔을 열고 DMS 리소스가 포함된 AWS 리전을 선택합니다.
2. 함수 패널에서 함수 생성을 선택합니다.
3. 함수 이름을 입력합니다.
4. 런타임에서 Python 3.8을 선택합니다.
5. 기본 실행 역할 변경에서 기본 Lambda 권한으로 새 역할 생성을 선택합니다. Lambda가 생성하는 AWS 자격 증명 및 액세스 관리(IAM) 역할 이름을 기록해 두십시오.
6. 함수 생성을 선택합니다.
7. AWS IAM 콘솔을 연 다음 Lambda 함수가 생성한 IAM 역할을 엽니다.
8. IAM 정책을 생성하려면 다음 JSON을 사용합니다. 예제 작업 ARN을 작업 ARN으로 바꾸십시오.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dms:ModifyReplicationTask" ], "Resource": "arn:aws:dms:us-east-1:1234567890:task:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" } ] }
9. Lambda 함수가 생성한 역할에 정책을 연결합니다.
10. Lambda 콘솔을 열고 생성한 Lambda 함수를 선택합니다.
11. 함수 코드에 다음 코드를 입력한 후 배포를 선택합니다.
import boto3import json client = boto3.client('dms') def lambda_handler(event, context): # specific task ARN taskarn = 'arn:aws:dms:us-east-1:1234567890:task:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' # modify the DMS task response = client.modify_replication_task( ReplicationTaskArn=taskarn, ReplicationTaskSettings='{"Logging": { "DeleteTaskLogs": true}}' )
12. 테스트를 선택한 다음 기본 템플릿에서 이벤트 이름을 입력합니다.
13. 생성을 선택한 다음 테스트를 다시 선택합니다.
DMS 작업 상태가 수정 중으로 변경됩니다. 동시에 복제 인스턴스 아래의 DMS 작업 오류 로그도 삭제됩니다.
Lambda 스케줄러 사용
Lambda 스케줄러를 사용하여 DMS 작업 오류 로그를 자동화하려면 다음 단계를 완료하십시오.
- Lambda 콘솔을 열고 생성한 Lambda 함수를 선택합니다.
- 디자이너에서 트리거 추가를 선택합니다.
- 드롭다운 목록에서 **EventBridge(Cloudwatch Events)**를 선택합니다.
- 규칙에서 새 규칙 생성을 선택합니다.
- 규칙 이름 및 규칙 설명을 입력합니다.
- 예약 표현식에 rate 표현식을 입력합니다. 자세한 내용은 rate 또는 cron을 사용한 예약 표현식을 참조하십시오.
- 추가를 선택합니다.
참고: 이 코드를 변경하고 최적화할 수 있습니다. cron 작업 또는 Lambda 스케줄러를 사용하여 이 스크립트가 정기적으로 실행되도록 스케쥴링할 수도 있습니다.
- 언어
- 한국어

관련 콘텐츠
질문됨 2년 전
질문됨 2년 전
질문됨 2년 전
AWS 공식업데이트됨 3년 전