쿠키 기본 설정 선택

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

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

클라우드에서 고급 메인프레임 파일 뷰어 구축 - 권장 가이드

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

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

클라우드에서 고급 메인프레임 파일 뷰어 구축

제작자: Boopathy GOPALSAMY 및 Jeremiah O'Connor

요약

이 패턴은 서버리스 서비스를 사용하여 메인프레임 고정 형식 파일을 검색하고 검토하기 위한 고급 도구를 구축하는 데 도움이 되는 코드 샘플과 단계를 제공합니다. 이 패턴은 탐색 및 검색을 위해 메인프레임 입력 파일을 Amazon OpenSearch Service 문서로 변환하는 방법의 예를 제공합니다. 파일 뷰어 도구를 사용하면 다음과 같은 결과를 얻을 수 있습니다.

  • 대상 마이그레이션 환경의 일관성을 위해 동일한 메인프레임 파일 구조 및 레이아웃 유지(예: 파일을 외부로 전송하는 배치 애플리케이션에서 파일에 대해 동일한 레이아웃을 유지할 수 있음)

  • 메인프레임 마이그레이션 중에 개발 및 테스트 속도 향상

  • 마이그레이션 후 유지 관리 활동 지원

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정

  • 기존 플랫폼에서 연결할 수 있는 서브넷이 있는 Virtual Private Cloud(VPC)

  • 참고

    입력 파일 및 해당 공통 비즈니스 지향 언어(COBOL) 카피북(: 입력 파일 및 COBOL 카피북 예제는 GitHub 리포지토리의 gfs-mainframe-solutions를 참조하세요. COBOL 카피북에 대한 자세한 내용은 IBM 웹 사이트의 z/OS 6.3용 엔터프라이즈 COBOL 프로그래밍 안내서를 참조하세요.)

제한 사항

  • 카피북 구문 분석은 최대 두 개의 중첩 수준으로 제한(OCCURS)

아키텍처

소스 기술 스택  

대상 기술 스택  

  • Amazon Athena

  • Amazon OpenSearch Service

  • Amazon Simple Storage Service(S3)

  • Lambda

  • Step Functions

대상 아키텍처

다음 다이어그램은 탐색 및 검색을 위해 메인프레임 입력 파일을 Amazon OpenSearch Service 문서로 구문 분석 및 변환하는 과정을 나타냅니다.

메인프레임 입력 파일을 구문 분석하고 OpenSearch Service로 변환하는 프로세스입니다.

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

  1. 관리자 또는 애플리케이션이 입력 파일을 S3 버킷 하나에 푸시하고 COBOL 카피북을 다른 S3 버킷으로 푸시합니다.

  2. 참고

    입력 파일이 있는 S3 버킷은 서버리스 Step Functions 워크플로를 시작하는 Lambda 함수를 간접적으로 호출합니다. : S3 이벤트 트리거와 Lambda 함수를 사용하여이 패턴으로 Step Functions 워크플로를 구동하는 것은 선택 사항입니다. 이 패턴의 GitHub 코드 샘플에는 이러한 서비스의 사용이 포함되지 않지만 요구 사항에 따라 이러한 서비스를 사용할 수 있습니다.

  3. Step Functions 워크플로는 다음 Lambda 함수의 모든 배치 프로세스를 조정합니다.

    • s3copybookparser.py 함수는 카피북 레이아웃을 구문 분석하고 필드 속성, 데이터 유형 및 오프셋(입력 데이터 처리에 필요)을 추출합니다.

    • s3toathena.py 함수는 Athena 테이블 레이아웃을 생성합니다. Athena는 s3toathena.py 함수로 처리된 입력 데이터를 구문 분석하고 데이터를 CSV 파일로 변환합니다.

    • s3toelasticsearch.py 함수는 S3 버킷에서 결과 파일을 수집하여 OpenSearch 서비스로 푸시합니다.

  4. 사용자는 OpenSearch Service로 OpenSearch Dashboards에 액세스하여 다양한 테이블 및 열 형식의 데이터를 검색한 다음 인덱싱된 데이터에 대해 쿼리를 실행합니다.

도구

서비스

  • Amazon Athena는 표준 SQL을 사용하여 Amazon Simple Storage Service(Amazon S3)에 있는 데이터를 직접 간편하게 분석할 수 있는 대화형 쿼리 서비스입니다.

  • Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 데 도움이 되는 컴퓨팅 서비스입니다. 필요할 때만 코드를 실행하며 자동으로 확장이 가능하므로 사용한 컴퓨팅 시간만큼만 비용을 지불합니다. 이 패턴에서는 Lambda를 사용하여 파일 구문 분석, 데이터 변환, 대화형 파일 액세스를 위한 OpenSearch Service로의 데이터 로드와 같은 핵심 로직을 구현합니다.

  • Amazon OpenSearch Service는 클라우드에서 OpenSearch 클러스터를 손쉽게 배포, 운영 및 확장할 수 있도록 해주는 관리형 서비스입니다. 이 패턴에서는 OpenSearch Service를 사용하여 변환된 파일을 인덱싱하고 사용자에게 대화형 검색 기능을 제공합니다.

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

  • Command Line Interface(CLI)는 명령줄 쉘에서 명령을 사용하여 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다.

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

  • Step Functions는 Lambda 함수와 기타 서비스를 결합할 수 있는 서버리스 오케스트레이션 서비스로, 비즈니스 크리티컬 애플리케이션을 구축합니다. 이 패턴에서는 Step Functions를 사용하여 Lambda 함수를 오케스트레이션합니다.

기타 도구

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

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

코드

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

에픽

작업설명필요한 기술

S3 버킷을 생성합니다.

카피북, 입력 파일 및 출력 파일을 저장하기 위한 S3 버킷을 생성합니다. S3 버킷에는 다음과 같은 폴더 구조를 사용하는 것이 좋습니다.

  • copybook/

  • input/

  • output/

  • query/

  • results/

일반

s3copybookparser 함수를 생성합니다.

  1. s3copybookparser라는 Lambda 함수를 생성하고 GitHub 리포지토리에서 소스 코드(s3copybookparser.pycopybook.py)를 업로드합니다.

  2. Lambda 함수에 IAM 정책 S3ReadOnly을 연결합니다.

일반

s3toathena 함수를 생성합니다.

  1. s3toathena라는 Lambda 함수를 생성하고 GitHub  리포지토리에 소스 코드(s3toathena.py)를 업로드합니다. Lambda 타임아웃을 60초 이상으로 구성합니다.

  2. 필요한 리소스에 대한 액세스를 제공하려면 IAM 정책 AmazonAthenaFullAccessS3FullAccess를 Lambda 함수에 연결합니다.

일반

s3toelasticsearch 함수를 생성합니다.

  1. 중요

    Lambda 환경에 Python 종속성을 추가합니다. : s3toelasticsearch 함수를 사용하려면 Lambda 함수가 Python Elasticsearch 클라이언트 종속성(Elasticsearch==7.9.0 및 )을 사용하기 때문에 Python 종속성을 추가해야 합니다requests_aws4auth.

  2. s3toelasticsearch 라는 Lambda 함수를 생성하고 GitHub  리포지토리에 소스 코드(s3toelasticsearch.py)를 업로드합니다.

  3. Python 종속성을 Lambda 계층으로서 가져옵니다.

  4. Lambda 함수에 IAM 정책S3ReadOnlyAmazonOpenSearchServiceReadOnlyAccess를 연결합니다.

일반

오픈서치 서비스 클러스터를 생성합니다.

클러스터 생성

  1. 오픈서치 서비스 클러스터를 생성합니다. 클러스터를 생성할 때 다음 작업을 수행합니다.

  2. 도메인 URL을 복사하여 Lambda 함수 s3toelasticsearch에 환경 변수 'HOST'로서 전달합니다.

IAM 역할에 대한 액세스 권한 부여

Lambda 함수의 IAM 역할(arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**)에 대한 세분화된 액세스를 제공하려면 다음을 수행하십시오.

  1. 마스터 사용자로 OpenSearch Dashboards에 로그인합니다.

  2. 보안 탭을 선택한 다음 역할, all_access, 맵 사용자, 백엔드 역할을 선택합니다.

  3. Lambda 함수의 IAM 역할의 Amazon 리소스 이름(ARN)을 추가한 다음 저장을 선택합니다. 자세한 내용은 OpenSearch Service 설명서의 사용자에게 역할 매핑하기를 참조하십시오.

일반

오케스트레이션을 위한 Step Functions를 생성합니다.

  1. 표준 플로우를 사용하여 Step Functions 상태 머신을 생성합니다. 정의는 GitHub 리포지토리에 포함되어 있습니다.

  2. JSON 스크립트에서 Lambda 함수의 ARN을 사용자 환경에 있는 Lambda 함수의 ARN으로 교체합니다.

일반

대상 환경 준비

작업설명필요한 기술

S3 버킷을 생성합니다.

카피북, 입력 파일 및 출력 파일을 저장하기 위한 S3 버킷을 생성합니다. S3 버킷에는 다음과 같은 폴더 구조를 사용하는 것이 좋습니다.

  • copybook/

  • input/

  • output/

  • query/

  • results/

일반

s3copybookparser 함수를 생성합니다.

  1. s3copybookparser라는 Lambda 함수를 생성하고 GitHub 리포지토리에서 소스 코드(s3copybookparser.pycopybook.py)를 업로드합니다.

  2. Lambda 함수에 IAM 정책 S3ReadOnly을 연결합니다.

일반

s3toathena 함수를 생성합니다.

  1. s3toathena라는 Lambda 함수를 생성하고 GitHub  리포지토리에 소스 코드(s3toathena.py)를 업로드합니다. Lambda 타임아웃을 60초 이상으로 구성합니다.

  2. 필요한 리소스에 대한 액세스를 제공하려면 IAM 정책 AmazonAthenaFullAccessS3FullAccess를 Lambda 함수에 연결합니다.

일반

s3toelasticsearch 함수를 생성합니다.

  1. 중요

    Lambda 환경에 Python 종속성을 추가합니다. : s3toelasticsearch 함수를 사용하려면 Lambda 함수가 Python Elasticsearch 클라이언트 종속성(Elasticsearch==7.9.0 및 )을 사용하기 때문에 Python 종속성을 추가해야 합니다requests_aws4auth.

  2. s3toelasticsearch 라는 Lambda 함수를 생성하고 GitHub  리포지토리에 소스 코드(s3toelasticsearch.py)를 업로드합니다.

  3. Python 종속성을 Lambda 계층으로서 가져옵니다.

  4. Lambda 함수에 IAM 정책S3ReadOnlyAmazonOpenSearchServiceReadOnlyAccess를 연결합니다.

일반

오픈서치 서비스 클러스터를 생성합니다.

클러스터 생성

  1. 오픈서치 서비스 클러스터를 생성합니다. 클러스터를 생성할 때 다음 작업을 수행합니다.

  2. 도메인 URL을 복사하여 Lambda 함수 s3toelasticsearch에 환경 변수 'HOST'로서 전달합니다.

IAM 역할에 대한 액세스 권한 부여

Lambda 함수의 IAM 역할(arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**)에 대한 세분화된 액세스를 제공하려면 다음을 수행하십시오.

  1. 마스터 사용자로 OpenSearch Dashboards에 로그인합니다.

  2. 보안 탭을 선택한 다음 역할, all_access, 맵 사용자, 백엔드 역할을 선택합니다.

  3. Lambda 함수의 IAM 역할의 Amazon 리소스 이름(ARN)을 추가한 다음 저장을 선택합니다. 자세한 내용은 OpenSearch Service 설명서의 사용자에게 역할 매핑하기를 참조하십시오.

일반

오케스트레이션을 위한 Step Functions를 생성합니다.

  1. 표준 플로우를 사용하여 Step Functions 상태 머신을 생성합니다. 정의는 GitHub 리포지토리에 포함되어 있습니다.

  2. JSON 스크립트에서 Lambda 함수의 ARN을 사용자 환경에 있는 Lambda 함수의 ARN으로 교체합니다.

일반
작업설명필요한 기술

입력 파일 및 카피북을 S3 버킷에 업로드합니다.

GitHub 리포지토리 샘플 폴더에서 샘플 파일을 다운로드하고 이전에 생성한 S3 버킷에 파일을 업로드합니다.

  1. Mockedcopy.cpyacctix.cpy<S3_Bucket>/copybook 폴더에 업로드합니다.

  2. Modedupdate.txtacctindex.cpy 샘플 입력 파일을 <S3_Bucket>/input 폴더에 업로드합니다.

일반

Step 함수를 호출합니다.

  1. Management Console에 로그인하고 Step Functions 콘솔을 엽니다.

  2. 탐색 창에서 상태 머신을 선택합니다.

  3. 상태 머신을 선택한 다음 실행 시작을 선택합니다.

  4. 입력 상자에 다음 카피북/파일 경로를 S3 버킷의 JSON 변수로 입력한 다음 실행 시작을 선택합니다.

{ "s3_copybook_bucket_name": "<BUCKET NAME>", "s3_copybook_bucket_key": "<COPYBOOK PATH>", "s3_source_bucket_name": "<BUCKET NAME", "s3_source_bucket_key": "INPUT FILE PATH" }

예시:

{ "s3_copybook_bucket_name": "fileaidtest", "s3_copybook_bucket_key": "copybook/acctix.cpy", "s3_source_bucket_name": "fileaidtest", "s3_source_bucket_key": "input/acctindex" }
일반

Step Functions에서 워크플로 실행을 검증합니다.

Step Functions 콘솔에서 그래프 인스펙터의 워크플로 실행을 검토합니다. 실행 상태는 색으로 구분되어 실행 상태를 나타냅니다. 예를 들어, 파란색은 진행 중, 녹색은 성공, 빨간색은 실패를 나타냅니다. 실행 이벤트에 대한 자세한 내용은 실행 이벤트 기록 섹션의 표를 검토할 수도 있습니다.

그래픽 워크플로 실행의 예는 이 패턴의 추가 정보 섹션에 있는 Step Functions 그래프를 참조하십시오.

일반

Amazon CloudWatch에서 전송 로그를 검증합니다.

  1. Management Console에 로그인하고 CloudWatch 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 로그를 선택한 다음, 로그 그룹을 선택합니다.

  3. 검색 상자에서 s3toelasticsearch 함수의 로그 그룹을 검색합니다.

성공적인 전송 로그의 예는 이 패턴의 추가 정보 섹션에 있는 CloudWatch 전송 로그를 참조하십시오.

일반

OpenSearch Dashboards에서 형식이 지정된 파일을 검증하고 파일 작업을 수행합니다.

  1. Management Console에 로그인합니다. 분석에서 Amazon OpenSearch Service를 선택합니다.

  2. 탐색 창에서 도메인을 선택합니다.

  3. 검색 상자에 OpenSearch Dashboards의 도메인 URL을 입력합니다.

  4. 대시보드를 선택한 다음, 마스터 사용자로 로그인합니다.

  5. 색인된 데이터를 표 형식으로 찾아보십시오.

  6. 입력 파일을 OpenSearch Dashboards의 형식이 지정된 출력 파일(색인화된 문서)과 비교합니다. 대시보드 뷰에는 서식이 지정된 파일에 추가된 열 헤더가 표시됩니다. 형식이 지정되지 않은 입력 파일의 소스 데이터가 대시보드 보기의 대상 데이터와 일치하는지 확인합니다.

  7. 인덱싱된 파일에 대해 검색(예: 필드 이름, 값 또는 표현식 사용), 필터 및 DQL(Dashboard Query Language) 작업과 같은 조치를 수행합니다.

일반

배포 및 실행

작업설명필요한 기술

입력 파일 및 카피북을 S3 버킷에 업로드합니다.

GitHub 리포지토리 샘플 폴더에서 샘플 파일을 다운로드하고 이전에 생성한 S3 버킷에 파일을 업로드합니다.

  1. Mockedcopy.cpyacctix.cpy<S3_Bucket>/copybook 폴더에 업로드합니다.

  2. Modedupdate.txtacctindex.cpy 샘플 입력 파일을 <S3_Bucket>/input 폴더에 업로드합니다.

일반

Step 함수를 호출합니다.

  1. Management Console에 로그인하고 Step Functions 콘솔을 엽니다.

  2. 탐색 창에서 상태 머신을 선택합니다.

  3. 상태 머신을 선택한 다음 실행 시작을 선택합니다.

  4. 입력 상자에 다음 카피북/파일 경로를 S3 버킷의 JSON 변수로 입력한 다음 실행 시작을 선택합니다.

{ "s3_copybook_bucket_name": "<BUCKET NAME>", "s3_copybook_bucket_key": "<COPYBOOK PATH>", "s3_source_bucket_name": "<BUCKET NAME", "s3_source_bucket_key": "INPUT FILE PATH" }

예시:

{ "s3_copybook_bucket_name": "fileaidtest", "s3_copybook_bucket_key": "copybook/acctix.cpy", "s3_source_bucket_name": "fileaidtest", "s3_source_bucket_key": "input/acctindex" }
일반

Step Functions에서 워크플로 실행을 검증합니다.

Step Functions 콘솔에서 그래프 인스펙터의 워크플로 실행을 검토합니다. 실행 상태는 색으로 구분되어 실행 상태를 나타냅니다. 예를 들어, 파란색은 진행 중, 녹색은 성공, 빨간색은 실패를 나타냅니다. 실행 이벤트에 대한 자세한 내용은 실행 이벤트 기록 섹션의 표를 검토할 수도 있습니다.

그래픽 워크플로 실행의 예는 이 패턴의 추가 정보 섹션에 있는 Step Functions 그래프를 참조하십시오.

일반

Amazon CloudWatch에서 전송 로그를 검증합니다.

  1. Management Console에 로그인하고 CloudWatch 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 로그를 선택한 다음, 로그 그룹을 선택합니다.

  3. 검색 상자에서 s3toelasticsearch 함수의 로그 그룹을 검색합니다.

성공적인 전송 로그의 예는 이 패턴의 추가 정보 섹션에 있는 CloudWatch 전송 로그를 참조하십시오.

일반

OpenSearch Dashboards에서 형식이 지정된 파일을 검증하고 파일 작업을 수행합니다.

  1. Management Console에 로그인합니다. 분석에서 Amazon OpenSearch Service를 선택합니다.

  2. 탐색 창에서 도메인을 선택합니다.

  3. 검색 상자에 OpenSearch Dashboards의 도메인 URL을 입력합니다.

  4. 대시보드를 선택한 다음, 마스터 사용자로 로그인합니다.

  5. 색인된 데이터를 표 형식으로 찾아보십시오.

  6. 입력 파일을 OpenSearch Dashboards의 형식이 지정된 출력 파일(색인화된 문서)과 비교합니다. 대시보드 뷰에는 서식이 지정된 파일에 추가된 열 헤더가 표시됩니다. 형식이 지정되지 않은 입력 파일의 소스 데이터가 대시보드 보기의 대상 데이터와 일치하는지 확인합니다.

  7. 인덱싱된 파일에 대해 검색(예: 필드 이름, 값 또는 표현식 사용), 필터 및 DQL(Dashboard Query Language) 작업과 같은 조치를 수행합니다.

일반

관련 리소스

참조

자습서

추가 정보

Step Functions 그래프

다음 예제에서는 Step Functions 그래프를 보여줍니다. 이 그래프는 이 패턴에 사용된 Lambda 함수의 실행 상태를 보여줍니다.

Step Functions 그래프는이 패턴에 사용된 Lambda 함수의 실행 상태를 보여줍니다.

CloudWatch 전송 로그

다음 예제는 s3toelasticsearch 실행의 실행에 대한 성공적인 전송 로그를 보여줍니다.

2022-08-10T15:53:33.033-05:00

처리 문서 수: 100개

2022-08-10T15:53:33.171-05:00

[정보] 2022-08-10T20:53:33.171Z a1b2c3d4-5678-90ab-cdef-EXAMPLE11111POST https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com:443/_bulk [상태: 200 요청: 0.100초]

2022-08-10T15:53:33.172-05:00

대량 쓰기 성공: 100개의 문서

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