AWS ParallelCluster API - AWS ParallelCluster

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

AWS ParallelCluster API

AWS ParallelCluster API란 무엇입니까?

AWS ParallelCluster API는 일단 AWS 계정에 배포하면 API를 통해 AWS ParallelCluster 기능에 프로그래밍 방식으로 액세스할 수 있는 서버리스 애플리케이션입니다.

AWS ParallelCluster API는 AWS ParallelCluster 기능을 제공하는 Amazon API Gateway 엔드포인트와, 간접 호출된 기능을 처리하는 AWS Lambda 함수를 포함하는 독립형 AWS CloudFormation 템플릿으로 배포됩니다.

다음 이미지는 AWS ParallelCluster API 인프라의 상위 수준 아키텍처 다이어그램을 보여줍니다.

AWS ParallelCluster API 설명서

AWS ParallelCluster API를 설명하는 OpenAPI 사양 파일은 다음에서 다운로드할 수 있습니다.

https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/ParallelCluster.openapi.yaml

OpenAPI 사양 파일에서 시작하여 Swagger UI 또는 Redoc과 같은 사용 가능한 여러 도구 중 하나를 사용하여 AWS ParallelCluster API에 대한 문서를 생성할 수 있습니다.

AWS ParallelCluster API 배포 방법

AWS ParallelCluster API를 배포하려면 AWS 계정의 관리자여야 합니다.

API 배포에 사용되는 템플릿은 다음 URL에서 사용할 수 있습니다.

https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml

<REGION>은 API를 배포해야 하는 AWS 리전이며 <VERSION>은 AWS ParallelCluster 버전 (예: 3.7.0)입니다.

AWS Lambda은 Lambda 계층 인터페이스를 AWS ParallelCluster Python 라이브러리 API와 함께 사용하여 API가 간접 호출한 기능을 처리합니다.

주의

AWS Lambda 또는 Amazon API Gateway 서비스에 대한 액세스 권한을 가진 AWS 계정의 모든 사용자는 AWS ParallelCluster API 리소스를 관리할 수 있는 권한을 자동으로 상속합니다.

AWS CLI를 사용하여 배포

아직 구성하지 않은 경우 CLI와 함께 사용할 AWS 보안 인증을 구성합니다.

$ aws configure

다음 명령을 실행하여 API를 배포합니다.

$ REGION=<region> $ API_STACK_NAME=<stack-name>  # This can be any name $ VERSION=3.7.0 $ aws cloudformation create-stack \   --region ${REGION} \   --stack-name ${API_STACK_NAME} \   --template-url https://${REGION}-aws-parallelcluster.s3.${REGION}.amazonaws.com/parallelcluster/${VERSION}/api/parallelcluster-api.yaml \   --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND $ aws cloudformation wait stack-create-complete --stack-name ${API_STACK_NAME} --region ${REGION}

배포 사용자 지정

템플릿에 표시된 AWS CloudFormation 파라미터를 사용하여 API 배포를 사용자 지정할 수 있습니다. CLI를 통해 배포할 때 파라미터 값을 구성하려면 다음 옵션을 사용할 수 있습니다: --parameters ParameterKey=KeyName,ParameterValue=Value.

다음 파라미터는 선택 사항입니다.

  • 리전 - Region 파라미터를 사용하여 API가 리소스를 모든 AWS 리전(기본값) 또는 단일 AWS 리전에서 제어할 수 있는지 지정합니다. 액세스를 제한하려면 AWS 리전 값을 배포 대상 API로 설정하세요.

  • ParallelClusterFunctionRole- 이는 AWS Lambda 기능 구현 기능에 할당된 IAM 역할을 재정의합니다. AWS ParallelCluster 파라미터는 IAM 역할의 ARN을 수락합니다. 이러한 역할을 IAM 보안 주체로서 AWS Lambda을 가지도록 구성해야 합니다.

  • CustomDomainName,CustomDomainCertificate, CustomDomainHostedZoneId - 이 파라미터를 사용하여 Amazon API Gateway 엔드포인트의 사용자 지정 도메인을 설정합니다. CustomDomainName는 사용할 도메인의 CustomDomainCertificate 이름이고, 은 이 도메인 이름에 대한 AWS 관리형 인증서의 CustomDomainHostedZoneId ARN이며, 레코드를 생성하려는 Amazon Route 53 호스팅 영역의 ID입니다.

    주의

    API에 최소 버전의 전송 계층 보안(TLS)을 적용하도록 사용자 지정 도메인 설정을 구성할 수 있습니다. 자세한 내용은 API Gateway의 사용자 지정 도메인에 대한 최소 TLS 버전 선택을 참조하세요.

  • EnableIamAdminAccess- 기본적으로 AWS Lambda 함수 처리 AWS ParallelCluster API 작업은 권한 있는 IAM 액세스를 차단하는 IAM 역할로 구성됩니다 (). EnableIamAdminAccess=false 이로 인해 API는 IAM 역할 또는 정책 생성이 필요한 작업을 처리할 수 없게 됩니다. 따라서 IAM 역할이 리소스 구성의 일부로 입력으로 제공되는 경우에만 클러스터 또는 사용자 지정 이미지를 성공적으로 생성할 수 있습니다.

    EnableIamAdminAccesstrue로 설정되면 AWS ParallelCluster API는 클러스터를 배포하거나 사용자 지정 AMI를 생성하는 데 필요한 IAM 역할 생성을 관리할 권한이 부여됩니다.

    주의

    이 값을 true로 설정하면 AWS Lambda 함수 처리 AWS ParallelCluster 작업에 대한 IAM 관리자 권한이 부여됩니다.

    이 모드를 활성화할 때 잠금 해제할 수 있는 기능에 대한 자세한 내용은 AWS ParallelCluster IAM 리소스 관리를 위한 사용자 예제 정책를 참조하세요.

  • PermissionsBoundaryPolicy- 이 선택적 파라미터는 PC API 인프라에서 생성되는 모든 IAM 역할의 권한 경계로 설정되고 관리 IAM 권한의 조건으로 설정되는 기존 IAM 정책 ARN을 수락하므로 PC API에서 이 정책을 사용하는 역할만 생성할 수 있습니다.

    이 모드에서 부과되는 제한에 대한 자세한 내용은 PermissionsBoundary 모드를 참조하세요.

  • CreateApiUserRole- 기본적으로 API 배포에는 AWS ParallelCluster API 호출 권한이 부여된 유일한 역할로 설정된 IAM 역할 생성이 포함됩니다. Amazon API Gateway 엔드포인트는 생성된 사용자에게만 호출 권한을 부여하는 리소스 기반 정책으로 구성됩니다. 이를 변경하려면 API 액세스를 설정한 CreateApiUserRole=false 다음 선택된 IAM 사용자에게 부여하십시오. 자세한 내용은 API Gateway 개발자 안내서API 간접 호출을 위한 액세스 제어를 참조하세요.

    주의

    Amazon API Gateway 리소스 정책에 의해 API 엔드포인트에 대한 CreateApiUserRole=true 액세스가 제한되지 않는 경우, 무제한 execute-api:Invoke 권한을 가진 모든 IAM 역할이 AWS ParallelCluster 기능에 액세스할 수 있습니다. 자세한 내용은 API Gateway 개발자 안내서API Gateway 리소스 정책을 사용하는 액세스 제어를 참조하세요.

    주의

    ParallelClusterApiUserRole에는 모든 AWS ParallelCluster API 작업을 간접 호출할 권한이 있습니다. API 리소스의 하위 집합에 대한 액세스를 제한하려면 API Gateway 개발자 안내서IAM 정책을 사용하여 API Gateway API 메서드를 호출할 수 있는 사용자 제어를 참조하세요.

  • IAM RoleAndPolicyPrefix - 이 선택적 파라미터는 최대 10자의 문자열을 허용하며, 이 문자열은 PC API 인프라의 일부로 생성된 IAM 역할과 정책의 접두사로 사용됩니다.

API 업데이트

새 AWS ParallelCluster 버전으로 업그레이드

옵션 1: 위와 같이 해당 AWS CloudFormation 스택을 삭제하고 새 API를 배포하여 기존 API를 제거합니다.

옵션 2: 다음 명령을 실행하여 기존 API를 업데이트합니다.

$ REGION=<region> $ API_STACK_NAME=<stack-name>  # This needs to correspond to the existing API stack name $ VERSION=3.7.0 $ aws cloudformation update-stack \   --region ${REGION} \   --stack-name ${API_STACK_NAME} \   --template-url https://${REGION}-aws-parallelcluster.s3.${REGION}.amazonaws.com/parallelcluster/${VERSION}/api/parallelcluster-api.yaml \   --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND $ aws cloudformation wait stack-update-complete --stack-name ${API_STACK_NAME} --region ${REGION}

AWS ParallelCluster API 간접 호출

AWS ParallelCluster Amazon API Gateway 엔드포인트는 AWS_IAM 권한 부여 유형으로 구성되며, 모든 요청에 유효한 IAM 보안 인증을 사용하여 SigV4로 서명해야 합니다(API 참조: http 요청 생성).

기본 설정으로 배포하면 API로 생성한 기본 IAM 사용자에게만 API 간접 호출 권한이 부여됩니다.

기본 IAM 사용자의 ARN을 검색하려면 다음을 실행합니다.

$ REGION=<region> $ API_STACK_NAME=<stack-name> $ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterApiUserRole'].OutputValue" --output text

기본 IAM 사용자의 임시 자격 증명을 얻으려면 STS 명령을 실행합니다. AssumeRole

다음 명령을 실행하여 AWS ParallelCluster API 엔드포인트를 확인할 수 있습니다.

$ REGION=<region> $ API_STACK_NAME=<stack-name> $ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterApiInvokeUrl'].OutputValue" --output text

AWS ParallelCluster API는 다음에서 확인할 수 있는 OpenAPI 사양을 준수하는 모든 HTTP 클라이언트에서 간접 호출할 수 있습니다.

https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/ParallelCluster.openapi.yaml

요청은 여기에 설명된 대로 SigV4로 서명해야 합니다.

현재로서는 공식적인 API 클라이언트 구현을 제공하지 않습니다. 그러나 OpenAPI 생성기를 사용하면 OpenAPI 모델에서 API 클라이언트를 쉽게 생성할 수 있습니다. 클라이언트가 생성되면 SigV4 서명이 기본적으로 제공되지 않는 경우 SigV4 서명을 추가해야 합니다.

Python API 클라이언트에 대한 참조 구현은 AWS ParallelCluster 리포지토리에서 찾을 수 있습니다. Python API 클라이언트를 사용하는 방법에 대해 자세히 알아보려면 AWS ParallelCluster API 사용 자습서를 참조하세요.

Amazon Cognito 또는 Lambda 권한 부여자와 같은 고급 액세스 제어 메커니즘을 구현하거나 AWS WAF 또는 API 키를 사용하여 API를 추가로 보호하려면 Amazon API Gateway 설명서를 참조하세요.

주의

AWS ParallelCluster API 간접 호출 권한이 있는 IAM 사용자는 AWS 계정의 AWS ParallelCluster에서 관리하는 모든 AWS 리소스를 간접적으로 제어할 수 있습니다. 여기에는 사용자 IAM 정책의 제한으로 인해 사용자가 직접 제어할 수 없는 AWS 리소스 생성이 포함됩니다. 예를 들어 AWS ParallelCluster 클러스터 생성에는 구성에 따라 Amazon EC2 인스턴스, Amazon Route 53, Amazon Elastic File System 파일 시스템, Amazon FSx 파일 시스템, IAM 역할 및 사용자가 직접 제어할 수 없는 AWS ParallelCluster가 사용하는 다른 AWS 서비스의 리소스 배포가 포함될 수 있습니다.

주의

구성에 AdditionalIamPolicies가 지정된 상태로 클러스터를 생성할 때는 추가 정책이 다음 패턴 중 하나와 일치해야 합니다.

- !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/parallelcluster* - !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/parallelcluster/* - !Sub arn:${AWS::Partition}:iam::aws:policy/CloudWatchAgentServerPolicy - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonSSMManagedInstanceCore - !Sub arn:${AWS::Partition}:iam::aws:policy/AWSBatchFullAccess - !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonS3ReadOnlyAccess - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSBatchServiceRole - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole - !Sub arn:${AWS::Partition}:iam::aws:policy/EC2InstanceProfileForImageBuilder - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

다른 추가 정책이 필요한 경우 다음 중 하나를 수행할 수 있습니다.

  • DefaultParallelClusterIamAdminPolicy 편집:

    https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml

    ArnLike/iam:PolicyARN 섹션에 정책을 추가합니다.

  • 구성 파일에서 AdditionalIamPolicies에 대한 정책을 지정하지 않고 클러스터 내에서 생성된 AWS ParallelCluster 인스턴스 역할에 정책을 수동으로 추가합니다.

API 로그 및 지표에 액세스

API 로그는 30일 동안 보존된 CloudWatch 상태로 Amazon에 게시됩니다. API 배포와 관련된 LogGroup 이름을 검색하려면 다음 명령을 실행합니다.

$ REGION=<region> $ API_STACK_NAME=<stack-name> $ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterLambdaLogGroup'].OutputValue" --output text

Lambda 지표, 로그 및 AWS X-Ray 추적 로그는 Lambda 콘솔을 통해서도 액세스할 수 있습니다. API 배포와 관련된 Lambda 함수의 ARN을 검색하려면 다음 명령을 실행합니다.

$ REGION=<region> $ API_STACK_NAME=<stack-name> $ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterLambdaArn'].OutputValue" --output text