

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

# 를 설치하여 IBM z/OS AWS 서비스 에서 액세스 AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vitor Pereira, Phil de Valence, Amazon Web Services*

## 요약
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)는 명령줄 셸에서 명령을 사용하여 여러 AWS 서비스를 관리하기 위한 오픈 소스 도구입니다. 최소한의 구성으로, 브라우저 기반 AWS Management Console에서 제공되는 것과 동일한 기능을 구현하는 명령을 명령 프롬프트, 터미널, bash 쉘 등의 명령줄 세션에서 실행할 수 있습니다.

의 모든 서비스형 AWS 인프라(IaaS) 관리, 관리 및 액세스 함수 AWS Management Console 는 AWS API 및에서 사용할 수 있습니다 AWS CLI. IBM z/OS 메인프레임 AWS CLI 에를 설치하여 z/OS AWS 서비스 에서에 직접 액세스, 관리 및 상호 작용할 수 있습니다. 를 AWS CLI 사용하면 사용자와 애플리케이션이 다음과 같은 다양한 작업을 수행할 수 있습니다.
+ z/OS와 Amazon Simple Storage Service(Amazon S3) 객체 스토리지 간에 파일 또는 데이터 세트 전송 및 버킷 콘텐츠 보기
+ 다른 AWS 리소스 시작 및 중지. 예: AWS Mainframe Modernization 환경에서 배치 작업 시작
+  AWS Lambda 함수를 호출하여 일반적인 비즈니스 로직 구현
+ 인공 지능 및 기계 학습(AI/ML), 분석 서비스와 통합

이 패턴은 z/OS AWS CLI 에서를 설치, 구성 및 사용하는 방법을 설명합니다. 전역적으로 설치할 수 있으므로 모든 z/OS 사용자 또는 사용자 수준에서 사용할 수 있습니다. 또한 패턴은 z/OS Unix System Services(USS) AWS CLI 의 대화형 명령줄 세션에서 또는 배치 작업으로를 사용하는 방법을 자세히 설명합니다.

## 사전 조건 및 제한 사항
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**사전 조건 **
+ **z/OS에서 로의 네트워크 통신 AWS**

  기본적으로는 TCP 포트 443에서 HTTPS를 사용하여 AWS 서비스 에 요청을 AWS CLI 보냅니다. 를 AWS CLI 성공적으로 사용하려면 TCP 포트 443에서 아웃바운드 연결을 수행할 수 있어야 합니다. 다음 z/OS USS 명령 중 하나를 사용하여(이 중 일부는 환경에 설치되지 않을 수 있음) z/OS에서 AWS로의 네트워크 연결을 테스트할 수 있습니다.

  ```
  ping amazonaws.com
  dig amazonaws.com
  traceroute amazonaws.com
  curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  ```
+ **AWS credentials**

  z/OS에서 AWS 클라우드 서비스와 통신하려면에서 대상에 액세스할 수 있는 권한이 있는 일부 자격 증명을 구성 AWS CLI 해야 합니다 AWS 계정. 에 대한 프로그래밍 방식의 명령의 경우 액세스 키 ID와 보안 액세스 키로 구성된 액세스 키를 사용할 AWS수 있습니다. 액세스 키가 없는 경우에는 AWS Management Console에서 액세스 키를 생성할 수 있습니다 가장 좋은 방법은 AWS 계정 루트 사용자가 필요하지 않은 한 어떤 작업에도 루트 사용자의 액세스 키를 사용하지 않는 것입니다. 대신 [새 관리자 IAM 사용자를 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)하고 [최소 권한 권한을 준비](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege)****하여 액세스 키로 사용자를 설정합니다. 사용자를 생성한 후 해당 사용자의 [액세스 키 ID와 보안 액세스 키를 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)할 수 있습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python for z/OS**

  에는 Python 3.8 이상이 AWS CLI 필요합니다. IBM은 [IBM Open Enterprise Python for z/OS](https://www.ibm.com/products/open-enterprise-python-zos)를 사용하여 z/OS에서 Python을 실행할 수 있도록 했습니다. IBM Open Enterprise Python은 Shopz SMP/E를 통해 무료로 사용할 수 있습니다. 또는 [IBM 웹](https://www.ibm.com/account/reg/signup?formid=urx-49465) 사이트에서 PAX 파일을 다운로드할 수 있습니다. 지침은 IBM Open Enterprise Python for z/OS의 [설치 및 구성 설명서](https://www.ibm.com/docs/en/python-zos)를 참조하세요.

**제한 사항 **
+ 이 패턴에서 제공하는 설치 지침은 **AWS CLI 버전 1에**만 적용됩니다. 의 최신 버전은 버전 2 AWS CLI 입니다. 하지만 버전 2에서는 설치 방법이 다르고 버전 2에서 사용할 수 있는 바이너리 실행 파일이 z/OS 시스템과 호환되지 않기 때문에 이 패턴에서는 이전 버전을 사용합니다.

**제품 버전**
+ AWS CLI 버전 1
+ Python 3.8 이상

## 아키텍처
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**기술 스택**
+ z/OS를 실행하는 메인프레임
+ Mainframe z/OS UNIX System Services(USS)
+ Mainframe Open MVS (OMVS) – z/OS UNIX 쉘 환경 명령 인터페이스
+ 메인프레임 디스크(예: 직접 액세스 스토리지 디바이스) (DASD)
+ AWS CLI

**대상 아키텍처 **

다음 다이어그램은 IBM z/OS에서의 AWS CLI 배포를 보여줍니다. SSH 및 telnet 세션과 같은 대화형 사용자 세션 AWS CLI 에서를 호출할 수 있습니다. 작업 제어 언어(JCL)를 사용하여 배치 작업에서 또는 z/OS Unix 셸 명령을 직접적으로 호출할 수 있는 모든 프로그램에서 간접적으로 호출할 수도 있습니다.

![\[AWS 서비스에 액세스하는 IBM z/OS 메인프레임의 AWS CLI.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


는 TCP/IP 네트워크를 통해 AWS 서비스 엔드포인트와 AWS CLI 통신합니다. 이 네트워크 연결은 인터넷을 통해 또는 고객 데이터 센터에서 AWS 클라우드 데이터 센터로의 프라이빗 AWS Direct Connect 연결을 통해 발생할 수 있습니다. 통신은 자격 AWS 증명으로 인증되고 암호화됩니다.

**자동화 및 규모 조정**

를 AWS 서비스 사용하여의 기능을 탐색 AWS CLI 하고 USS 쉘 스크립트를 개발하여 z/OS에서 AWS 리소스를 관리할 수 있습니다. 또한 z/OS 배치 환경에서 AWS CLI 명령 및 쉘 스크립트를 실행할 수 있으며, 메인프레임 스케줄러와 통합하여 특정 일정에 따라 실행되도록 배치 작업을 자동화할 수 있습니다. AWS CLI 명령 또는 스크립트는 파라미터(PARMs) 및 프로시PROCs) 내에서 코딩할 수 있으며, 파라미터가 다른 다양한 배치 작업에서 PARM 또는 PROC를 호출하는 표준 접근 방식에 따라 확장할 수 있습니다.

## 도구
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)는 명령줄 셸의 명령을 AWS 서비스 통해와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.

## 모범 사례
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ 보안상의 이유로 액세스 권한을 AWS 액세스 키 세부 정보가 저장되는 USS 디렉터리로 제한합니다. AWS CLI를 사용하는 사용자 또는 프로그램에만 액세스를 허용합니다.
+ 작업에 AWS 계정 루트 사용자 액세스 키를 사용하지 마십시오. 대신 자신에 대해 [새 관리자 IAM 사용자를 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)하고 액세스 키를 사용하여 설정합니다.


| 
| 
| IAM 사용자는 장기 자격 증명을 보유하고 있어 보안 위험이 있습니다. 이 위험을 줄이려면 이러한 사용자에게 작업을 수행하는 데 필요한 권한만 제공하고 더 이상 필요하지 않을 경우 이러한 사용자를 제거하는 것이 좋습니다. | 
| --- |

## 에픽
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### z/OS USS에 AWS CLI 버전 1 설치
<a name="install-cli-version-1-on-z-os-uss"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| Python 3.8 이상을 설치합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe z/OS 관리자 | 
| USS 환경 변수를 설정합니다. | 프로필에 환경 변수를 추가합니다. 개별 사용자(`cliuser`)에 대해서는 `/u/cliuser/.profile` 파일, 모든 사용자에 대해서는 `/etc/profile` 파일에 추가하면 됩니다.이 패턴에서는 Python이 `/u/awscli/python` 디렉터리에 설치되었다고 가정합니다. 설치 디렉터리가 다른 경우 그에 따라 코드를 업데이트합니다.<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | Mainframe z/OS 관리자 | 
| Python 설치를 테스트합니다. | **python** 명령을 실행합니다.<pre>python --version</pre>Python 3.8 이상이 올바르게 설치되었음을 확인하는 출력이 표시되어야 합니다. | Mainframe z/OS 관리자 | 
| **pip**를 확인하거나 설치합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe z/OS 관리자 | 
|  AWS CLI 버전 1을 설치합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe z/OS 관리자 | 

### z/OS에서 AWS CLI 액세스 구성
<a name="configure-cli-access-from-z-os"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
|  AWS 액세스 키, 기본 리전 및 출력을 구성합니다. | 이 [AWS CLI 설명서](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html)에서는 AWS 다양한 액세스 설정 옵션에 대해 설명합니다. 조직의 표준에 따라 구성을 선택할 수 있습니다. 이 예에서는 단기 자격 증명 구성을 사용합니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS 관리자, Mainframe z/OS 관리자, Mainframe z/OS 개발자 | 
| 를 테스트합니다 AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe z/OS 관리자, Mainframe z/OS 개발자 | 

### 옵션 1 ‒ USS 세션에서 대화형으로 USS에서 Amazon S3에 데이터 전송
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 샘플 CSV 파일을 다운로드하여 전송합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 앱 개발자, Mainframe z/OS 개발자 | 
| S3 버킷을 생성하고 CSV 파일을 업로드합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 앱 개발자, Mainframe z/OS 개발자 | 
| S3 버킷과 업로드된 파일을 봅니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)객체 업로드에 대한 자세한 내용은 Amazon S3 설명서의 [Amazon S3 시작하기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)를 참조하세요. | 일반 AWS | 
| Amazon Athena 테이블에서 SQL 쿼리를 실행합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)SQL 쿼리의 출력에는 CSV 파일의 내용이 표시됩니다. | 일반 AWS, 앱 개발자 | 

### 옵션 2 ‒ 배치 JCL을 사용하여 USS에서 Amazon S3로 데이터 전송
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| 작업 | 설명 | 필요한 기술 | 
| --- | --- | --- | 
| 샘플 파일을 업로드합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe z/OS 개발자 | 
| 배치 JCL을 생성합니다. | 다음과 같이 배치 JCL을 코딩하여 대상 S3 버킷을 생성하고, 데이터세트를 업로드하고, 버킷 콘텐츠를 나열합니다. 디렉터리 이름, 파일 이름 및 버킷 이름을 고유한 값으로 바꿔야 합니다.<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | Mainframe z/OS 개발자 | 
| 배치 JCL 작업을 제출합니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe z/OS 개발자 | 
| S3 버킷에 업로드된 데이터 세트를 봅니다. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | 일반 AWS | 

## 관련 리소스
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI 버전 1 설명서](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization CLI 명령 참조](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## 추가 정보
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**ISPF 옵션 3.4의 USER.DATA.FIXED(데이터세트 목록 유틸리티)**

![\[z/OS에서 데이터세트의 콘텐츠 보기.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**제출된 배치 작업의 SYSOUT**

![\[작업 로그의 표준 출력.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## 첨부
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

이 문서와 관련된 추가 콘텐츠에 액세스하려면 [attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip) 파일의 압축을 풉니다.