쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS Lambda를 사용하여 Amazon S3에서 메인프레임 파일을 EBCDIC 형식에서 문자로 구분된 ASCII 형식으로 변환합니다. - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Lambda를 사용하여 Amazon S3에서 메인프레임 파일을 EBCDIC 형식에서 문자로 구분된 ASCII 형식으로 변환합니다.

작성자: Luis Gustavo Dantas(AWS)

요약

이 패턴은 메인프레임 EBCDIC (확장 이진 코딩 십진 교환 코드) 파일을 문자로 구분된 ASCII (정보 교환을 위한 미국 표준 코드) 파일로 자동 변환하는 AWS Lambda 함수를 시작하는 방법을 보여줍니다. Lambda 함수는 ASCII 파일이 Amazon Simple Storage Service(S3) 버킷에 업로드된 후에 실행됩니다. 파일 변환 후 x86 기반 워크로드에서 ASCII 파일을 읽거나 파일을 최신 데이터베이스로 로드할 수 있습니다.

이 패턴에서 설명하는 파일 변환 접근 방식은 최신 환경에서 EBCDIC 파일을 사용할 때 발생하는 문제를 해결하는 데 도움이 될 수 있습니다. EBCDIC로 인코딩된 파일에는 2진수 또는 압축 10진수 형식으로 표현된 데이터가 포함되는 경우가 많으며 필드는 고정 길이입니다. 최신 x86 기반 워크로드 또는 분산 환경은 일반적으로 ASCII로 인코딩된 데이터를 사용하며 EBCDIC 파일을 처리할 수 없기 때문에 이러한 특성으로 인해 장애가 발생합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • S3 버킷

  • 관리자 권한이 있는 AWS Identity and Access Management (IAM) 사용자

  • AWS CloudShell

  • Python 3.8.0 이상

  • EBCDIC 및 해당 데이터 구조로 공통 비즈니스 지향 언어 (COBOL) 카피북으로 인코딩된 플랫 파일

참고

이 패턴은 샘플 EBCDIC 파일(CLIENT.EBCDIC.txt)과 해당 COBOL 카피북(COBKS05.cpy)을 사용합니다. 두 파일 모두 GitHub mainframe-data-utilities 리포지토리에서 사용할 수 있습니다.

제한 사항

  • COBOL 카피북에는 일반적으로 여러 레이아웃 정의가 들어 있습니다. mainframe-data-utilities 프로젝트는 이런 종류의 카피북을 파싱할 수는 있지만 데이터 변환 시 어떤 레이아웃을 고려할지 유추할 수는 없습니다. 카피북에는 이 로직이 들어 있지 않기 때문입니다 (대신 COBOL 프로그램에 남아 있음). 따라서 카피북을 파싱한 후에는 레이아웃 선택 규칙을 수동으로 구성해야 합니다.

  • 이 패턴에는 Lambda 할당량이 적용됩니다.

아키텍처

소스 기술 스택

  • IBM z/OS, IBM i 및 기타 EBCDIC 시스템

  • EBCDIC로 인코딩된 데이터가 포함된 순차 파일 (예: IBM Db2 언로드)

  • COBOL 카피북 레이아웃

대상 기술 스택

  • Amazon S3

  • Amazon S3 이벤트 알림

  • IAM

  • Lambda 함수

  • Python 3.8 이상

  • 메인프레임 데이터 유틸리티

  • JSON 메타데이터

  • 문자로 구분된 ASCII 파일

대상 아키텍처

다음 다이어그램은 메인프레임 EBCDIC 파일을 ASCII 파일로 변환하는 아키텍처를 보여줍니다.

메인프레임 EBCDIC 파일을 ASCII 파일로 변환하기 위한 아키텍처

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 사용자는 카피북 파서 스크립트를 실행하여 COBOL 카피북을 JSON 파일로 변환합니다.

  2. 사용자가 JSON 메타데이터를 S3 버킷에 업로드합니다. 이렇게 하면 데이터 변환 Lambda 함수에서 메타데이터를 읽을 수 있습니다.

  3. 사용자 또는 자동화된 프로세스가 EBCDIC 파일을 S3 버킷에 업로드합니다.

  4. S3 알림 이벤트는 데이터 변환 Lambda 함수를 트리거합니다.

  5. AWS는 Lambda 함수에 대한 S3 버킷 읽기/쓰기 권한을 확인합니다.

  6. Lambda는 S3 버킷에서 파일을 읽고 EBCDIC에서 ASCII로 파일을 로컬로 변환합니다.

  7. Lambda는 Amazon CloudWatch에 프로세스 상태를 기록합니다.

  8. Lambda는 ASCII 파일을 Amazon S3에 다시 기록합니다.

참고

카피북 구문 분석기 스크립트는 메타데이터를 JSON으로 변환한 후 해당 데이터를 S3 버킷에 업로드한 후 한 번만 실행됩니다. 초기 변환 후에는 S3 버킷에 업로드된 것과 동일한 JSON 파일을 사용하는 EBCDIC 파일이 동일한 메타데이터를 사용합니다.

도구

AWS 도구

  • Amazon CloudWatch를 사용하면 AWS 리소스의 지표와 AWS에서 실행하는 애플리케이션을 실시간으로 모니터링할 수 있습니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

  • AWS CloudShell은 AWS Command Line Interface(AWS CLI) 및 사전 설치된 다양한 개발 도구를 사용하여 AWS 서비스를 관리하는 데 사용할 수 있는 브라우저 기반 쉘입니다.

  • AWS Identity and Access Management(IAM)를 사용하면 사용자에 대해 인증 및 권한 부여를 제어함으로써 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.

  • AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불하면 됩니다.

기타 도구

  • GitHub는 공동 작업 도구 및 버전 제어를 제공하는 코드 호스팅 서비스입니다.

  • Python은 고급 프로그래밍 언어입니다.

코드

이 패턴의 코드는 GitHub mainframe-data-utilities 저장소에서 사용할 수 있습니다.

모범 사례

다음 모범 사례를 고려하세요.

에픽

작업설명필요한 기술

환경 변수를 생성합니다.

다음 환경 변수를 텍스트 편집기에 복사한 다음 <placeholder>다음 예제의 값을 리소스 값으로 바꾸십시오.

bucket=<your_bucket_name> account=<your_account_number> region=<your_region_code>
참고

나중에 S3 버킷, AWS 계정 및 AWS 리전에 대한 참조를 생성합니다.

환경 변수를 정의하려면 CloudShell 콘솔을 열고 업데이트된 환경 변수를 복사하여 명령줄에 붙여넣습니다.

참고

CloudShell 세션이 다시 시작될 때마다이 단계를 반복해야 합니다.

일반 AWS

작업 폴더 생성

나중에 리소스 정리 프로세스를 간소화하려면 다음 명령어를 실행하여 CloudShell에서 작업 폴더를 생성하십시오.

mkdir workdir; cd workdir
참고

CloudShell 세션에 대한 연결이 끊길 때마다 디렉터리를 작업 디렉터리(workdir)로 변경해야 합니다.

일반 AWS

환경 변수 및 작업 폴더 생성

작업설명필요한 기술

환경 변수를 생성합니다.

다음 환경 변수를 텍스트 편집기에 복사한 다음 <placeholder>다음 예제의 값을 리소스 값으로 바꾸십시오.

bucket=<your_bucket_name> account=<your_account_number> region=<your_region_code>
참고

나중에 S3 버킷, AWS 계정 및 AWS 리전에 대한 참조를 생성합니다.

환경 변수를 정의하려면 CloudShell 콘솔을 열고 업데이트된 환경 변수를 복사하여 명령줄에 붙여넣습니다.

참고

CloudShell 세션이 다시 시작될 때마다이 단계를 반복해야 합니다.

일반 AWS

작업 폴더 생성

나중에 리소스 정리 프로세스를 간소화하려면 다음 명령어를 실행하여 CloudShell에서 작업 폴더를 생성하십시오.

mkdir workdir; cd workdir
참고

CloudShell 세션에 대한 연결이 끊길 때마다 디렉터리를 작업 디렉터리(workdir)로 변경해야 합니다.

일반 AWS
작업설명필요한 기술

Lambda 함수에 대해 신뢰 정책를 생성합니다.

EBCDIC 변환기는 람다 함수에서 실행됩니다. 이 함수에는 IAM 역할이 있어야 합니다. IAM 역할을 생성하기 전에 리소스가 해당 정책을 수임할 수 있도록 하는 신뢰 정책 문서를 정의해야 합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 정책 문서를 생성합니다.

E2ATrustPol=$(cat <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF ) printf "$E2ATrustPol" > E2ATrustPol.json
일반 AWS

Lambda 변환을 위한 IAM 역할을 생성합니다.

IAM 역할을 생성하려면 CloudShell 작업 폴더에서 다음 AWS CLI 명령을 실행합니다.

aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json
일반 AWS

Lambda 함수에 대한 IAM 정책 문서를 생성합니다.

Lambda 함수는 S3 버킷에 대한 읽기/쓰기 액세스 권한과 Amazon CloudWatch Logs에 대한 쓰기 권한을 가져야 합니다.

IAM 정책을 생성하려면 CloudShell 작업 폴더에서 다음 명령을 실행합니다.

E2APolicy=$(cat <<EOF { "Version": "2012-10-17", "Statement": [ { "Sid": "Logs", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:*:log-group:*:log-stream:*" ] }, { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::%s/*", "arn:aws:s3:::%s" ] } ] } EOF ) printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json
일반 AWS

IAM 정책 문서를 IAM 역할에 첨부합니다.

IAM 역할에 IAM 정책을 연결하려면 CloudShell 작업 폴더에서 다음 명령을 실행합니다.

aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json
일반 AWS

IAM 역할 및 정책 정의

작업설명필요한 기술

Lambda 함수에 대해 신뢰 정책를 생성합니다.

EBCDIC 변환기는 람다 함수에서 실행됩니다. 이 함수에는 IAM 역할이 있어야 합니다. IAM 역할을 생성하기 전에 리소스가 해당 정책을 수임할 수 있도록 하는 신뢰 정책 문서를 정의해야 합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 정책 문서를 생성합니다.

E2ATrustPol=$(cat <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF ) printf "$E2ATrustPol" > E2ATrustPol.json
일반 AWS

Lambda 변환을 위한 IAM 역할을 생성합니다.

IAM 역할을 생성하려면 CloudShell 작업 폴더에서 다음 AWS CLI 명령을 실행합니다.

aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json
일반 AWS

Lambda 함수에 대한 IAM 정책 문서를 생성합니다.

Lambda 함수는 S3 버킷에 대한 읽기/쓰기 액세스 권한과 Amazon CloudWatch Logs에 대한 쓰기 권한을 가져야 합니다.

IAM 정책을 생성하려면 CloudShell 작업 폴더에서 다음 명령을 실행합니다.

E2APolicy=$(cat <<EOF { "Version": "2012-10-17", "Statement": [ { "Sid": "Logs", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:*:*:log-group:*", "arn:aws:logs:*:*:log-group:*:log-stream:*" ] }, { "Sid": "S3", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::%s/*", "arn:aws:s3:::%s" ] } ] } EOF ) printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json
일반 AWS

IAM 정책 문서를 IAM 역할에 첨부합니다.

IAM 역할에 IAM 정책을 연결하려면 CloudShell 작업 폴더에서 다음 명령을 실행합니다.

aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json
일반 AWS
작업설명필요한 기술

EBCDIC 변환 소스 코드를 다운로드하십시오.

CloudShell 작업 폴더에서 다음 명령을 실행하여 GitHub에서 메인프레임 데이터 유틸리티 소스 코드를 다운로드합니다.

git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu
일반 AWS

ZIP 패키지를 생성하십시오.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 변환을 위한 Lambda 함수를 생성하는 ZIP 패키지를 생성합니다.

cd mdu; zip ../mdu.zip *.py; cd ..
일반 AWS

Lambda 함수를 생성합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 변환을 위한 Lambda 함수를 생성합니다.

aws lambda create-function \ --function-name E2A \ --runtime python3.9 \ --zip-file fileb://mdu.zip \ --handler extract_ebcdic_to_ascii.lambda_handler \ --role arn:aws:iam::$account:role/E2AConvLambdaRole \ --timeout 10 \ --environment "Variables={layout=$bucket/layout/}"
참고

 환경 변수 레이아웃은 Lambda 함수에 JSON 메타데이터가 있는 위치를 알려줍니다.

일반 AWS

Lambda 함수에 대한 리소스 기반 정책을 생성합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림이 EBCDIC 변환을 위한 Lambda 함수를 트리거하도록 허용하십시오.

aws lambda add-permission \ --function-name E2A \ --action lambda:InvokeFunction \ --principal s3.amazonaws.com \ --source-arn arn:aws:s3:::$bucket \ --source-account $account \ --statement-id 1
일반 AWS

EBCDIC 변환을 위한 Lambda 함수를 생성합니다.

작업설명필요한 기술

EBCDIC 변환 소스 코드를 다운로드하십시오.

CloudShell 작업 폴더에서 다음 명령을 실행하여 GitHub에서 메인프레임 데이터 유틸리티 소스 코드를 다운로드합니다.

git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu
일반 AWS

ZIP 패키지를 생성하십시오.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 변환을 위한 Lambda 함수를 생성하는 ZIP 패키지를 생성합니다.

cd mdu; zip ../mdu.zip *.py; cd ..
일반 AWS

Lambda 함수를 생성합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 변환을 위한 Lambda 함수를 생성합니다.

aws lambda create-function \ --function-name E2A \ --runtime python3.9 \ --zip-file fileb://mdu.zip \ --handler extract_ebcdic_to_ascii.lambda_handler \ --role arn:aws:iam::$account:role/E2AConvLambdaRole \ --timeout 10 \ --environment "Variables={layout=$bucket/layout/}"
참고

 환경 변수 레이아웃은 Lambda 함수에 JSON 메타데이터가 있는 위치를 알려줍니다.

일반 AWS

Lambda 함수에 대한 리소스 기반 정책을 생성합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림이 EBCDIC 변환을 위한 Lambda 함수를 트리거하도록 허용하십시오.

aws lambda add-permission \ --function-name E2A \ --action lambda:InvokeFunction \ --principal s3.amazonaws.com \ --source-arn arn:aws:s3:::$bucket \ --source-account $account \ --statement-id 1
일반 AWS
작업설명필요한 기술

Amazon S3 이벤트 알림용 구성 문서를 생성합니다.

Amazon S3 이벤트 알림은 파일이 입력 폴더에 배치될 때 EBCDIC 변환 Lambda 함수를 시작합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림용 JSON 문서를 생성합니다.

{ "LambdaFunctionConfigurations": [ { "Id": "E2A", "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A", "Events": [ "s3:ObjectCreated:Put" ], "Filter": { "Key": { "FilterRules": [ { "Name": "prefix", "Value": "input/" } ] } } } ] } EOF ) printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json
일반 AWS

Amazon S3 이벤트 알림을 만듭니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림을 생성합니다.

aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json
일반 AWS

Amazon S3 이벤트 알림 만들기

작업설명필요한 기술

Amazon S3 이벤트 알림용 구성 문서를 생성합니다.

Amazon S3 이벤트 알림은 파일이 입력 폴더에 배치될 때 EBCDIC 변환 Lambda 함수를 시작합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림용 JSON 문서를 생성합니다.

{ "LambdaFunctionConfigurations": [ { "Id": "E2A", "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A", "Events": [ "s3:ObjectCreated:Put" ], "Filter": { "Key": { "FilterRules": [ { "Name": "prefix", "Value": "input/" } ] } } } ] } EOF ) printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json
일반 AWS

Amazon S3 이벤트 알림을 만듭니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림을 생성합니다.

aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json
일반 AWS
작업설명필요한 기술

COBOL 카피북을 분석하십시오.

CloudShell 작업 폴더에서 다음 명령을 실행하여 샘플 COBOL 카피북을 JSON 파일로 파싱합니다 (데이터 파일을 올바르게 읽고 분할하는 방법을 정의합니다).

python3 mdu/parse_copybook_to_json.py \ -copybook mdu/LegacyReference/COBKS05.cpy \ -output CLIENT.json \ -output-s3key CLIENT.ASCII.txt \ -output-s3bkt $bucket \ -output-type s3 \ -print 25
일반 AWS

변환 규칙을 추가합니다.

샘플 데이터 파일과 해당 COBOL 카피북은 다중 레이아웃 파일입니다. 즉, 변환 시 특정 규칙에 따라 데이터를 분할해야 합니다. 이 경우 각 행의 위치 3과 4에 있는 바이트가 레이아웃을 정의합니다.

CloudShell 작업 폴더에서 파일을 CLIENT.json 편집하고 내용을 "transf-rule": [], 에서 다음으로 변경합니다.

"transf-rule": [ { "offset": 4, "size": 2, "hex": "0002", "transf": "transf1" }, { "offset": 4, "size": 2, "hex": "0000", "transf": "transf2" } ],
일반 AWS, IBM 메인프레임, 코볼

JSON 메타데이터를 S3 버킷에 업로드합니다.

CloudShell 작업 폴더에서 다음 AWS CLI 명령을 실행하여 JSON 메타데이터를 S3 버킷에 업로드합니다.

aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json
일반 AWS

JSON 메타데이터 생성 및 업로드

작업설명필요한 기술

COBOL 카피북을 분석하십시오.

CloudShell 작업 폴더에서 다음 명령을 실행하여 샘플 COBOL 카피북을 JSON 파일로 파싱합니다 (데이터 파일을 올바르게 읽고 분할하는 방법을 정의합니다).

python3 mdu/parse_copybook_to_json.py \ -copybook mdu/LegacyReference/COBKS05.cpy \ -output CLIENT.json \ -output-s3key CLIENT.ASCII.txt \ -output-s3bkt $bucket \ -output-type s3 \ -print 25
일반 AWS

변환 규칙을 추가합니다.

샘플 데이터 파일과 해당 COBOL 카피북은 다중 레이아웃 파일입니다. 즉, 변환 시 특정 규칙에 따라 데이터를 분할해야 합니다. 이 경우 각 행의 위치 3과 4에 있는 바이트가 레이아웃을 정의합니다.

CloudShell 작업 폴더에서 파일을 CLIENT.json 편집하고 내용을 "transf-rule": [], 에서 다음으로 변경합니다.

"transf-rule": [ { "offset": 4, "size": 2, "hex": "0002", "transf": "transf1" }, { "offset": 4, "size": 2, "hex": "0000", "transf": "transf2" } ],
일반 AWS, IBM 메인프레임, 코볼

JSON 메타데이터를 S3 버킷에 업로드합니다.

CloudShell 작업 폴더에서 다음 AWS CLI 명령을 실행하여 JSON 메타데이터를 S3 버킷에 업로드합니다.

aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json
일반 AWS
작업설명필요한 기술

EBCDIC 파일을 S3 버킷으로 전송합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 파일을 S3 버킷으로 전송합니다.

aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/
참고

 ASCII 파일이 S3 버킷에 업로드될 때 Lambda 변환 함수를 다시 호출하지 않도록 입력(EBCDIC) 및 출력(ASCII) 파일에 대해 다른 폴더를 설정하는 것이 좋습니다.

일반 AWS

출력 결과를 확인합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 S3 버킷에 ASCII 파일이 생성되었는지 확인합니다.

awss3 ls s3://$bucket/
참고

 데이터 변환은 몇 초 정도 걸릴 수 있습니다. ASCII 파일을 몇 번 확인하는 것이 좋습니다.

ASCII 파일을 사용할 수 있게 되면 다음 명령을 실행하여 S3 버킷에서 현재 폴더로 파일을 다운로드합니다.

aws s3 cp s3://$bucket/CLIENT.ASCII.txt .

ASCII 파일 내용을 확인하십시오.

head CLIENT.ASCII.txt
일반 AWS

EBCDIC 파일을 변환하십시오.

작업설명필요한 기술

EBCDIC 파일을 S3 버킷으로 전송합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 파일을 S3 버킷으로 전송합니다.

aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/
참고

 ASCII 파일이 S3 버킷에 업로드될 때 Lambda 변환 함수를 다시 호출하지 않도록 입력(EBCDIC) 및 출력(ASCII) 파일에 대해 다른 폴더를 설정하는 것이 좋습니다.

일반 AWS

출력 결과를 확인합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 S3 버킷에 ASCII 파일이 생성되었는지 확인합니다.

awss3 ls s3://$bucket/
참고

 데이터 변환은 몇 초 정도 걸릴 수 있습니다. ASCII 파일을 몇 번 확인하는 것이 좋습니다.

ASCII 파일을 사용할 수 있게 되면 다음 명령을 실행하여 S3 버킷에서 현재 폴더로 파일을 다운로드합니다.

aws s3 cp s3://$bucket/CLIENT.ASCII.txt .

ASCII 파일 내용을 확인하십시오.

head CLIENT.ASCII.txt
일반 AWS
작업설명필요한 기술

(선택 사항) 변수와 폴더를 준비합니다.

CloudShell과의 연결이 끊어지면 다시 연결한 후 다음 명령을 실행하여 디렉터리를 작업 폴더로 변경합니다.

cd workdir

환경 변수가 정의되어 있는지 확인하십시오.

bucket=<your_bucket_name> account=<your_account_number> region=<your_region_code>
일반 AWS

버킷의 알림 구성을 제거합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림 구성을 제거합니다.

aws s3api put-bucket-notification-configuration \ --bucket=$bucket \ --notification-configuration="{}"
일반 AWS

Lambda 함수를 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 컨버터의 Lambda 함수를 삭제합니다.

awslambdadelete-function--function-nameE2A
일반 AWS

IAM 역할 및 정책을 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 변환기 역할과 정책을 제거합니다.

aws iam delete-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy aws iam delete-role --role-name E2AConvLambdaRole
일반 AWS

S3 버킷에서 생성된 파일을 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 S3 버킷에서 생성된 파일을 삭제합니다.

aws s3 rm s3://$bucket/layout --recursive aws s3 rm s3://$bucket/input --recursive aws s3 rm s3://$bucket/CLIENT.ASCII.txt
일반 AWS

작업 폴더를 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 workdir 및 해당 콘텐츠를 제거합니다.

cd ..; rm -Rf workdir
일반 AWS

환경을 청소합니다

작업설명필요한 기술

(선택 사항) 변수와 폴더를 준비합니다.

CloudShell과의 연결이 끊어지면 다시 연결한 후 다음 명령을 실행하여 디렉터리를 작업 폴더로 변경합니다.

cd workdir

환경 변수가 정의되어 있는지 확인하십시오.

bucket=<your_bucket_name> account=<your_account_number> region=<your_region_code>
일반 AWS

버킷의 알림 구성을 제거합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 Amazon S3 이벤트 알림 구성을 제거합니다.

aws s3api put-bucket-notification-configuration \ --bucket=$bucket \ --notification-configuration="{}"
일반 AWS

Lambda 함수를 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 컨버터의 Lambda 함수를 삭제합니다.

awslambdadelete-function--function-nameE2A
일반 AWS

IAM 역할 및 정책을 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 EBCDIC 변환기 역할과 정책을 제거합니다.

aws iam delete-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy aws iam delete-role --role-name E2AConvLambdaRole
일반 AWS

S3 버킷에서 생성된 파일을 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 S3 버킷에서 생성된 파일을 삭제합니다.

aws s3 rm s3://$bucket/layout --recursive aws s3 rm s3://$bucket/input --recursive aws s3 rm s3://$bucket/CLIENT.ASCII.txt
일반 AWS

작업 폴더를 삭제합니다.

CloudShell 작업 폴더에서 다음 명령을 실행하여 workdir 및 해당 콘텐츠를 제거합니다.

cd ..; rm -Rf workdir
일반 AWS

관련 리소스

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.