View a markdown version of this page

VPC에 HealthOmics 워크플로 연결 - AWS HealthOmics

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

VPC에 HealthOmics 워크플로 연결

Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 프라이빗 가상 네트워크에서 AWS 리소스를 시작할 수 있습니다. VPC 네트워킹 모드를 사용하도록 실행을 구성하여 HealthOmics 워크플로에 VPC의 리소스에 대한 액세스 권한을 부여할 수 있습니다. VPC 네트워킹이 활성화되면 VPC에 인터넷 액세스가 구성된 경우 실행이 VPC 내의 리소스에 액세스하고 퍼블릭 인터넷을 통해 외부 리소스에 연결할 수 있습니다.

참고

모든 HealthOmics 워크플로 실행은 HealthOmics 서비스가 소유하고 관리하는 VPC 내에서 실행됩니다. 이러한 VPCs 자동으로 유지 관리되며 고객에게 표시되지 않습니다. Amazon VPC의 리소스에 액세스하도록 실행을 구성해도 HealthOmics 관리형 VPC에는 영향을 주지 않습니다.

VPC 네트워킹을 사용해야 하는 경우

실행에 다음이 필요한 경우 VPC 네트워킹을 사용합니다.

  • 인터넷을 통해 공개적으로 사용 가능한 데이터 세트(예: NIH 데이터 세트, 학술 리포지토리)에 액세스

  • 타사 라이선스 서버 또는 외부 APIs에 연결

  • 다른 AWS 리전의 Amazon S3 버킷에서 데이터 읽기 또는 쓰기

  • 프라이빗 네트워크의 온프레미스 리소스에 액세스

  • VPC 내의 AWS 리소스에 연결

참고

실행을 VPC에 연결하면 해당 VPC 내에서 사용 가능한 리소스에만 액세스할 수 있습니다. 실행에 인터넷에 대한 액세스 권한을 부여하려면 인터넷 액세스를 위해 VPC도 구성해야 합니다. 자세한 내용은 VPC 연결 워크플로에 대한 인터넷 액세스 단원을 참조하십시오.

네트워킹 모드

HealthOmics 워크플로는 두 가지 네트워킹 모드를 지원합니다. 기본적으로 워크플로 실행은 제한 모드에서 작동합니다. 워크플로 실행을 시작할 때 실행별로 VPC 네트워킹을 활성화할 수 있습니다.

제한됨(기본값)

실행은 동일한 AWS 리전 내의 Amazon S3 및 Amazon ECR 리소스에만 액세스할 수 있습니다. 실행은 다른 AWS 서비스, AWS 리전 간 리소스 또는 퍼블릭 인터넷에 액세스할 수 없습니다.

VPC

실행 트래픽은 VPC 서브넷의 HealthOmics에서 프로비저닝한 탄력적 네트워크 인터페이스(ENIs)를 통해 라우팅됩니다. NAT 게이트웨이를 통해 네트워크 라우팅, 보안 그룹, 네트워크 ACLs 및 인터넷 액세스를 제어합니다. 이 모드를 사용하면 다음에 액세스할 수 있습니다.

  • 퍼블릭 인터넷 리소스(NAT 게이트웨이 구성 필요)

  • AWS 다른 리전의 서비스

  • VPC의 프라이빗 리소스

  • 프라이빗 네트워크의 온프레미스 리소스에 액세스

StartRun API의 networkingMode 파라미터를 사용하여 워크플로 실행을 시작할 때 네트워킹 모드를 지정합니다.

시작하기

이 섹션에서는 HealthOmics 워크플로에 대한 VPC 네트워킹을 처음으로 설정하는 방법을 안내합니다.

사전 조건

HealthOmics 워크플로에 대한 VPC 네트워킹을 구성하기 전에 다음이 있는지 확인합니다.

  • 적절한 서브넷 및 보안 그룹이 있는 기존 VPC. VPC는 워크플로와 동일한 리전에 있어야 합니다.

  • HealthOmics가 해당 리전에서 작동하는 가용 영역에 하나 이상의 서브넷.

  • HealthOmics 구성을 생성하고 관리하기 위한 적절한 IAM 권한.

  • VPC 네트워킹 개념(서브넷, 보안 그룹, 라우팅 테이블)에 대한 이해.

  • AWS 계정에 충분한 ENI 용량. HealthOmics는 서비스 연결 역할을 사용하여 VPC의 ENIs를 확장하고 관리합니다. 필요한 ENIs 수는 워크로드에 따라 다릅니다. Amazon EC2 콘솔에서 ENI 사용량을 모니터링하여 용량이 충분한지 확인합니다.

중요

워크플로 작업 배치를 지원하려면 VPC 구성에 HealthOmics가 리전에서 작동하는 가용 영역에 하나 이상의 서브넷이 포함되어야 합니다. VPC 네트워킹 모드를 사용할 때 사용자는 AWS 리전 간에 데이터를 전송하거나 사용하는 것이 안전하고 규정을 준수하는지 확인할 책임이 있습니다.

1단계: VPC 생성 또는 구성

프라이빗 서브넷, 보안 그룹 및 NAT 게이트웨이가 있는 VPC를 생성합니다(인터넷 액세스가 필요한 경우). step-by-step 지침은 단원을 참조하십시오VPC 연결 워크플로에 대한 인터넷 액세스.

2단계: 보안 그룹 구성

실행이 액세스해야 하는 대상으로의 아웃바운드 트래픽을 허용하는 보안 그룹을 생성합니다. 최소 권한 원칙에 따라 필요한 최소 아웃바운드 트래픽만 허용하도록 보안 그룹을 구성합니다.

예제 구성 및 자세한 지침은의 보안 그룹 섹션을 참조하세요VPC 연결 워크플로에 대한 인터넷 액세스.

3단계: 라우팅 테이블 확인

프라이빗 서브넷에 인터넷 액세스를 위한 NAT 게이트웨이에 대한 경로가 있는지 확인합니다. 라우팅 테이블 구성의 예는의 라우팅 테이블 섹션을 참조하세요VPC 연결 워크플로에 대한 인터넷 액세스.

참고

실행을 퍼블릭 서브넷에 연결해도 인터넷 액세스 또는 퍼블릭 IP 주소는 제공되지 않습니다. 인터넷 연결이 필요한 실행에는 항상 NAT 게이트웨이 경로와 함께 프라이빗 서브넷을 사용합니다.

4단계: 구성 리소스 생성

VPC 네트워킹 설정을 정의하는 HealthOmics 구성 리소스를 생성합니다.

aws omics create-configuration \ --name my-vpc-config \ --description "VPC configuration for genomics workflows" \ --run-configurations '{ "vpcConfig": { "securityGroupIds": ["sg-0123456789abcdef0"], "subnetIds": [ "subnet-0a1b2c3d4e5f6g7h8", "subnet-1a2b3c4d5e6f7g8h9" ] } }' \ --region us-west-2

네트워크 리소스가 프로비저닝되면 구성이에서 CREATING ACTIVE 상태로 전환됩니다. 이 작업은 최대 15분이 소요됩니다.

5단계: VPC 네트워킹으로 워크플로 실행 시작

구성이가 되면 VPC 네트워킹이 활성화된 상태에서 워크플로 실행을 ACTIVE시작합니다.

aws omics start-run \ --workflow-id 1234567 \ --role-arn arn:aws:iam::123456789012:role/OmicsWorkflowRole \ --output-uri s3://my-bucket/outputs/ \ --networking-mode VPC \ --configuration-name my-vpc-config \ --region us-west-2

6단계: 연결 확인

워크플로 실행을 모니터링하여 필요한 외부 리소스에 액세스할 수 있는지 확인합니다. CloudWatch Logs의 워크플로 로그에서 연결 성공 또는 실패 메시지를 확인합니다. 연결 테스트에 대한 자세한 지침은 섹션을 참조하세요VPC 연결 테스트.

VPC 요구 사항

VPC는 다음 요구 사항을 충족해야 합니다.

서브넷 요구 사항

  • 최소: HealthOmics가 작동하는 가용 영역에 하나 이상의 서브넷

  • 최대: 구성당 서브넷 16개

  • 제한: 가용 영역당 최대 하나의 서브넷

  • 권장 사항: 인터넷 액세스가 필요한 실행에는 NAT 게이트웨이 경로와 함께 프라이빗 서브넷을 사용합니다. 단일 서브넷을 지정할 수 있지만 가용성을 높이려면 서로 다른 가용 영역에 걸쳐 여러 서브넷을 사용하는 것이 좋습니다.

보안 그룹 요구 사항

  • 최소: 보안 그룹 1개

  • 최대: 구성당 보안 그룹 5개

  • 요구 사항: 모든 보안 그룹은 서브넷과 동일한 VPC에 속해야 합니다.

보안 그룹은 실행에 대한 인바운드 및 아웃바운드 트래픽을 제어합니다.

참고

모든 서브넷과 보안 그룹은 동일한 VPC에 속해야 합니다.

네트워크 인터페이스 요구 사항

HealthOmics는 VPC에 탄력적 네트워크 인터페이스(ENIs)를 프로비저닝하여 네트워크에 실행을 연결합니다. AWS 계정에 충분한 ENI 용량이 있는지 확인합니다(기본 한도: 리전당 5,000ENIs).

HealthOmics에서 생성한 ENIs에는 다음 태그가 지정됩니다.

"TagSet": [ { "Key": "Service", "Value": "HealthOmics" }, { "Key": "eniType", "Value": "CUSTOMER" } ]
중요

HealthOmics에서 생성한 ENIs를 수정하거나 삭제하지 마십시오. 이러한 네트워크 인터페이스를 수정하면 서비스 지연 또는 워크플로 실행 중단이 발생할 수 있습니다.

구성 APIs

HealthOmics는 VPC 구성을 생성, 관리 및 삭제하는 APIs 제공합니다. 여러 워크플로 실행에서 구성을 재사용할 수 있습니다.

CreateConfiguration

VPC 네트워킹 설정을 사용하여 새 구성 리소스를 생성합니다. 단계별 예제는 4단계: 구성 리소스 생성 단원을 참조하십시오.

요청 구문:

aws omics create-configuration \ --name configuration-name \ --description description \ --run-configurations '{"vpcConfig":{"securityGroupIds":["security-group-id"],"subnetIds":["subnet-id"]}}' \ --tags Key=key,Value=value \ --region region

파라미터:

  • name(필수) - 구성의 고유한 이름입니다(최대 50자).

  • 설명(선택 사항) - 구성에 대한 설명입니다.

  • run-configurations(선택 사항) - VPC 구성 설정:

    • vpcConfig.securityGroupIds - 1~5개의 보안 그룹 IDs.

    • vpcConfig.subnetIds - 1~16IDs 목록입니다.

  • 태그(선택 사항) - 리소스 태그입니다.

응답:

{ "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "uuid": "configuration-uuid", "name": "configuration-name", "runConfigurations": { "vpcConfig": { "securityGroupIds": ["security-group-id"], "subnetIds": ["subnet-id"], "vpcId": "vpc-id" } }, "status": "CREATING", "creationTime": "timestamp", "tags": {} }

구성 상태 값:

  • 생성 중 - 구성이 생성되고 네트워크 리소스가 프로비저닝되고 있습니다(최대 15분).

  • ACTIVE - 구성을 사용할 준비가 되었습니다.

  • 삭제 중 - 구성이 삭제되고 있습니다.

  • DELETED - 구성이 삭제되었습니다.

GetConfiguration

특정 구성의 세부 정보를 검색합니다.

요청 구문:

aws omics get-configuration \ --name configuration-name \ --region region

응답:

{ "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "uuid": "configuration-uuid", "name": "configuration-name", "runConfigurations": { "vpcConfig": { "securityGroupIds": ["security-group-id"], "subnetIds": ["subnet-id"], "vpcId": "vpc-id" } }, "status": "ACTIVE", "creationTime": "timestamp", "tags": {} }

ListConfigurations

계정의 모든 구성을 나열합니다.

요청 구문:

aws omics list-configurations \ --region region

응답:

{ "items": [ { "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "name": "configuration-name", "description": "description", "status": "ACTIVE", "creationTime": "timestamp" } ] }

DeleteConfiguration

구성을 삭제합니다. 활성 워크플로 실행에서 현재 사용 중인 구성은 삭제할 수 없습니다.

요청 구문:

aws omics delete-configuration \ --name configuration-name \ --region region
참고

네트워크 리소스를 정리하는 동안 구성 상태가 DELETING으로 변경되고 프로세스가 완료되면 DELETED로 변경됩니다.

VPC 네트워킹을 사용하여 워크플로 실행

VPC 네트워킹으로 실행 시작

워크플로 실행에서 VPC 네트워킹을 사용하려면 networking-mode 파라미터와를 지정합니다configuration-name.

aws omics start-run \ --workflow-id 1234567 \ --role-arn arn:aws:iam::123456789012:role/OmicsWorkflowRole \ --output-uri s3://my-bucket/outputs/ \ --networking-mode VPC \ --configuration-name my-vpc-config \ --region us-west-2

파라미터:

  • 네트워킹 모드 - VPC 네트워킹을 활성화VPC하려면 로 설정합니다. 기본값은 RESTRICTED입니다.

  • configuration-name(필수) - 사용할 구성의 이름입니다.

실행 네트워크 구성 보기

GetRun를 사용하여 실행에 대한 네트워킹 구성을 봅니다.

aws omics get-run \ --id run-id \ --region region

응답에는 네트워킹 모드, 구성 세부 정보 및 VPC 구성이 포함됩니다. 다음 예제는 응답의 VPC 관련 필드를 보여줍니다.

{ "arn": "arn:aws:omics:region:account-id:run/run-id", "id": "run-id", "status": "status", "workflowId": "workflow-id", "networkingMode": "VPC", "configuration": { "name": "configuration-name", "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "uuid": "configuration-uuid" }, "vpcConfig": { "subnets": ["subnet-id-1", "subnet-id-2"], "securityGroupIds": ["security-group-id"], "vpcId": "vpc-id" } }

구성 불변성

워크플로는 실행이 시작될 때 존재했던 구성의 스냅샷을 사용합니다. 활성 실행에 영향을 주지 않고 실행 중에 구성을 안전하게 수정하거나 삭제할 수 있습니다.

통화 캐싱 고려 사항

통화 캐싱과 함께 VPC 네트워킹을 사용하는 경우 워크플로 엔진이 적절하게 구성되어 있는지 확인합니다. 엔진당 호출 캐싱에 대한 자세한 지침은 섹션을 참조하세요엔진별 캐싱 기능.

중요

비결정적 또는 동적 리소스(예: 퍼블릭 인터넷의 타사 데이터베이스)에 연결할 때는 실행 출력에 영향을 미칠 수 있는 동적 데이터 세트를 캐싱하지 않도록 워크플로에서 캐시 작업 옵트아웃 기능을 사용하는 것이 좋습니다.

모범 사례

보안

  1. 최소 권한 보안 그룹을 사용합니다. 필요한 최소 아웃바운드 트래픽만 허용합니다. 가능하면 0.0.0.0/0 대신 특정 대상 CIDR 블록을 사용합니다. 각 보안 그룹 규칙의 목적을 문서화합니다.

  2. 환경별로 구성을 구분합니다. 개발, 스테이징 및 프로덕션을 위한 별도의 구성을 생성합니다. 각 환경에 대해 서로 다른 VPCs 또는 서브넷을 사용합니다. 조직의 구성에 적절한 태그를 적용합니다.

  3. 네트워크 모니터링을 구현합니다. 보안 분석을 위해 VPC 흐름 로그를 활성화합니다. 비정상적인 트래픽 패턴에 대한 CloudWatch 경보를 설정합니다. CloudTrail 로그에서 구성 변경을 정기적으로 검토합니다.

  4. AWS 서비스에 VPC 엔드포인트를 사용합니다. Amazon S3, Amazon ECR 및 기타 AWS 서비스에 대한 VPC 엔드포인트를 구성합니다. 이렇게 하면 NAT 게이트웨이 비용이 절감되고 성능이 향상되며 AWS 네트워크 내에서 트래픽을 유지하여 추가 보안이 제공됩니다.

성능

  1. 네트워크 규모 조정을 계획합니다. 네트워크 처리량은 10Gbps에서 시작되며 시간이 지남에 따라 100Gbps로 확장됩니다. 즉시 높은 처리량이 필요한 경우 미리 계획을 세우고 사전 워밍을 요청하세요. 네트워크 지표를 모니터링하여 워크플로 요구 사항을 파악합니다.

  2. 가용 영역당 NAT 게이트웨이를 배포합니다. 프로덕션 워크로드에는 AZ당 하나의 NAT 게이트웨이를 사용합니다. 이렇게 하면 복원력과 처리량이 향상되고 AZ 간 데이터 전송 비용이 절감됩니다.

  3. 구성을 재사용합니다. 여러 워크플로에서 공유할 수 있는 구성을 생성합니다. 이렇게 하면 구성 관리 오버헤드가 줄어들고 일관된 네트워크 설정이 보장됩니다.

  4. 프로덕션 사용 전에 구성을 테스트합니다. 테스트 워크플로를 사용하여 네트워크 연결을 검증합니다. 보안 그룹 규칙이 필수 트래픽을 허용하는지 확인합니다. 다중 AZ 구성으로 장애 조치 시나리오를 테스트합니다.

비용 최적화

  1. NAT 게이트웨이 대신 VPC 엔드포인트를 사용합니다. AWS 서비스 액세스의 경우 VPC 엔드포인트를 사용합니다(데이터 처리 요금 없음). Amazon S3 Gateway 엔드포인트에는 추가 비용이 없습니다. 인터페이스 엔드포인트에는 시간당 요금이 부과되지만 NAT 게이트웨이보다 비용 효율적일 수 있습니다.

  2. 데이터 전송 비용을 모니터링합니다. 의 데이터 전송에는 요금이 부과되지 않습니다. 인터넷으로 데이터를 전송하면 표준 AWS 데이터 전송 속도가 발생합니다. 리전 간 데이터 전송 속도는 더 높습니다. VPC 관련 비용을 추적하려면 AWS Cost Explorer를 사용합니다.

  3. 적절한 크기의 NAT 게이트웨이 배포. 개발을 위해 모든 AZs에 하나의 NAT 게이트웨이를 사용합니다. 프로덕션의 경우 복원력을 위해 AZ당 하나의 NAT 게이트웨이를 사용합니다. NAT 게이트웨이 사용률을 모니터링하여 과다 프로비저닝을 방지합니다.

  4. 사용하지 않는 구성을 삭제합니다. 더 이상 사용되지 않는 구성을 정기적으로 검토하고 삭제합니다. 태그를 사용하여 구성 소유권 및 목적을 식별합니다.

Operational(작동)

  1. 설명이 포함된 구성 이름을 사용합니다. 이름에 환경, 목적 및 팀을 포함합니다(예: , prod-genomics-vpcdev-clinical-trials-vpc).

  2. 모든 구성에 태그를 지정합니다. 모든 리소스에서 일관된 태그 지정 전략을 사용합니다. 환경, 소유자, CostCenter 및 용도에 대한 태그를 포함합니다.

  3. 네트워크 요구 사항을 문서화합니다. 각 구성이 액세스하는 외부 서비스를 문서화합니다. 보안 그룹 규칙 및 그 목적의 맵을 유지 관리합니다. 팀과 네트워크 아키텍처 다이어그램을 공유합니다.

VPC 네트워킹 할당량

다음 표에는 VPC 네트워킹 구성에 대한 할당량이 나열되어 있습니다.

Resource 기본 한도 조정 가능
계정당 최대 구성 수 10
구성당 최대 보안 그룹 수 5 아니요
구성당 최대 서브넷 수 16 아니요
가용 영역당 최대 서브넷 수 1 아니요
CreateConfiguration API TPS 1
리전당 탄력적 네트워크 인터페이스(고객 VPC) 5,000

할당량 증가를 요청하려면 Service Quotas 콘솔을 열고, AWS 서비스를 선택하고, AWS HealthOmics를 검색하고, 늘릴 할당량을 선택하고, 할당량 증가 요청을 선택합니다. 할당량 증가 요청은 일반적으로 영업일 기준 1~2일 이내에 처리됩니다.