

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

# AWS TNB에 대한 TOSCA 참조
<a name="tosca-reference"></a>

TOSCA(Topology and Orchestration Specification for Cloud Applications)는 CSP가 클라우드 기반 웹 서비스의 토폴로지, 해당 구성 요소, 관계 및 이를 관리하는 프로세스를 설명하는 데 사용하는 선언적 구문입니다. CSP는 TOSCA 템플릿에서 연결 지점, 연결 지점 간의 논리 링크, 그리고 친화도 및 보안과 같은 정책을 설명합니다. 그런 다음 CSPs 템플릿을 AWS TNB에 업로드하여 AWS 가용 영역에서 작동하는 5G 네트워크를 설정하는 데 필요한 리소스를 합성합니다.

**Topics**
+ [

# VNFD 템플릿
](vnfd-template.md)
+ [

# 네트워크 서비스 설명자 템플릿
](nsd-template.md)
+ [

# 공통 노드
](common-nodes.md)

# VNFD 템플릿
<a name="vnfd-template"></a>

가상 네트워크 함수 설명자(VNFD) 템플릿을 정의합니다.

## 구문
<a name="vnfd-syntax"></a>

```
tosca_definitions_version: tnb_simple_yaml_1_0

topology_template:

  inputs:
    SampleInputParameter:
      type: String
      description: "Sample parameter description"
      default: "DefaultSampleValue"

  node\$1templates:
    SampleNode1: tosca.nodes.AWS.VNF
```

## 토폴로지 템플릿
<a name="vnfd-topology-template"></a>

 `node_templates`    
TOSCA AWS 노드입니다. 가능한 노드는 다음과 같습니다.  
+ [AWS.VNF](node-vnf.md)
+ [AWS.Artifacts.Helm](node-helm.md)

# AWS.VNF
<a name="node-vnf"></a>

 AWS 가상 네트워크 함수(VNF) 노드를 정의합니다.

## 구문
<a name="vnf-syntax"></a>

```
tosca.nodes.AWS.VNF:
  properties:
    descriptor\$1id: String
    descriptor\$1version: String
    descriptor\$1name: String
    provider: String
  requirements:
    helm: String
```

## 속성
<a name="vnf-properties"></a>

 `descriptor_id`    
설명자의 UUID입니다.  
필수 항목 여부: 예  
유형: String  
패턴: `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`

 `descriptor_version`    
VNFD의 버전입니다.  
필수 항목 여부: 예  
유형: String  
패턴: `^[0-9]{1,5}\\.[0-9]{1,5}\\.[0-9]{1,5}.*`

 `descriptor_name`    
설명자의 이름입니다.  
필수 항목 여부: 예  
유형: String

 `provider`    
VNFD의 작성자입니다.  
필수 항목 여부: 예  
유형: String

## 요구 사항
<a name="vnf-requirements"></a>

 `helm`    
컨테이너 아티팩트를 정의하는 Helm 디렉터리입니다. [AWS.Artifacts.Helm](node-helm.md)에 대한 참조입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="vnf-example"></a>

```
SampleVNF:
  type: tosca.nodes.AWS.VNF
  properties:
    descriptor_id: "6a792e0c-be2a-45fa-989e-5f89d94ca898"
    descriptor_version: "1.0.0"
    descriptor_name: "Test VNF Template"
    provider: "Operator"
  requirements:
    helm: SampleHelm
```

# AWS.Artifacts.Helm
<a name="node-helm"></a>

 AWS Helm 노드를 정의합니다.

## 구문
<a name="node-helm-syntax"></a>

```
tosca.nodes.AWS.Artifacts.Helm:
  properties:
    implementation: String
```

## 속성
<a name="node-helm-properties"></a>

 `implementation`    
CSAR 패키지 내에 차트 Helm이 포함된 로컬 디렉터리입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-helm-example"></a>

```
SampleHelm:
  type: tosca.nodes.AWS.Artifacts.Helm
  properties:
    implementation: "./vnf-helm"
```

# 네트워크 서비스 설명자 템플릿
<a name="nsd-template"></a>

네트워크 서비스 설명자(NSD) 템플릿을 정의합니다.

## 구문
<a name="nsd-template-syntax"></a>

```
tosca_definitions_version: tnb_simple_yaml_1_0

vnfds:
  - descriptor\$1id: String
    namespace: String

topology_template:

  inputs:
    SampleInputParameter:
      type: String
      description: "Sample parameter description"
      default: "DefaultSampleValue"

  node\$1templates:
    SampleNode1: tosca.nodes.AWS.NS
```

## 정의된 파라미터 사용
<a name="using-defined-parameters"></a>

VPC 노드의 CIDR 블록과 같은 파라미터를 동적으로 전달하려는 경우 NSD 템플릿에서 `{ get_input: input-parameter-name }` 구문을 사용하고 파라미터를 정의할 수 있습니다. 그런 다음 동일한 NSD 템플릿에서 파라미터를 재사용하세요.

다음 예제에서는 파라미터를 정의하고 사용하는 방법을 보여줍니다.

```
tosca_definitions_version: tnb_simple_yaml_1_0

topology_template:

  inputs:
    cidr_block:
      type: String
      description: "CIDR Block for VPC"
      default: "10.0.0.0/24"

  node_templates:
    ExampleSingleClusterNS:
      type: tosca.nodes.AWS.NS
      properties:
        descriptor_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
         .....

    ExampleVPC:
      type: tosca.nodes.AWS.Networking.VPC
      properties:
        cidr_block: { get_input: cidr_block }
```

## VNFD 가져오기
<a name="vnfd-import"></a>

 `descriptor_id`    
설명자의 UUID입니다.  
필수 항목 여부: 예  
유형: String  
패턴: `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`

 `namespace`    
고유한 이름입니다.  
필수 항목 여부: 예  
유형: String

## 토폴로지 템플릿
<a name="nsd-topology-template"></a>

 `node_templates`    
가능한 TOSCA AWS 노드는 다음과 같습니다.  
+ [AWS.NS](node-ns.md)
+ [AWS.Compute.EKS](node-eks.md)
+ [AWS.Compute.EKS.AuthRole](node-eks-authrole.md)
+ [AWS.Compute.EKSManagedNode](node-eks-managed-node.md)
+ [AWS.Compute.EKSSelfManagedNode](node-eks-self-managed.md)
+ [AWS.Compute.PlacementGroup](node-compute-placement-group.md)
+ [AWS.Compute.UserData](node-compute-user-data.md)
+ [AWS.Networking.SecurityGroup](node-networking-security-group.md)
+ [AWS.Networking.SecurityGroupEgressRule](node-networking-security-group-egress-rule.md)
+ [AWS.Networking.SecurityGroupIngressRule](node-networking-security-group-ingress-rule.md)
+ [AWS.Resource.Import](node-resource-import.md)
+ [AWS.Networking.ENI](node-eni.md)
+ [AWS.HookExecution](node-hook-execution.md)
+ [AWS.Networking.InternetGateway](node-internet-gateway.md)
+ [AWS.Networking.RouteTable](node-route-table.md)
+ [AWS.Networking.Subnet](node-subnet.md)
+ [AWS.Deployment.VNFDeployment](node-vnf-deployment.md)
+ [AWS.Networking.VPC](node-vpc.md)
+ [AWS.Networking.NATGateway](node-nat-gateway.md)
+ [AWS.Networking.Route](node-route.md)

# AWS.NS
<a name="node-ns"></a>

 AWS 네트워크 서비스(NS) 노드를 정의합니다.

## 구문
<a name="node-ns-syntax"></a>

```
tosca.nodes.AWS.NS:
  properties:
    descriptor\$1id: String
    descriptor\$1version: String
    descriptor\$1name: String
```

## 속성
<a name="node-ns-properties"></a>

 `descriptor_id`    
설명자의 UUID입니다.  
필수 항목 여부: 예  
유형: String  
패턴: `[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`

 `descriptor_version`    
NSD의 버전입니다.  
필수 항목 여부: 예  
유형: String  
패턴: `^[0-9]{1,5}\\.[0-9]{1,5}\\.[0-9]{1,5}.*`

 `descriptor_name`    
설명자의 이름입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-ns-example"></a>

```
SampleNS:
  type: tosca.nodes.AWS.NS
  properties:
    descriptor_id: "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    descriptor_version: "1.0.0"
    descriptor_name: "Test NS Template"
```

# AWS.Compute.EKS
<a name="node-eks"></a>

클러스터 이름, 원하는 Kubernetes 버전 및 Kubernetes 컨트롤 플레인이 NFs에 필요한 AWS 리소스를 관리할 수 있는 역할을 제공합니다. Multus 컨테이너 네트워크 인터페이스(CNI) 플러그인이 활성화되어 있습니다. 여러 네트워크 인터페이스를 연결하고 고급 네트워크 구성을 Kubernetes 기반 네트워크 함수에 적용할 수 있습니다. 클러스터 엔드포인트 액세스와 클러스터의 서브넷도 지정합니다.

## 구문
<a name="node-eks-syntax"></a>

```
tosca.nodes.AWS.Compute.EKS:
  capabilities:
    multus:
      properties:
        enabled: Boolean
        multus\$1role: String
    ebs\$1csi:
      properties:
        enabled: Boolean
        version: String      
  properties:
    version: String
    access: String
    cluster\$1role: String
    tags: List
    ip\$1family: String        
  requirements:
    subnets: List
```

## 기능
<a name="node-eks-capabilities"></a><a name="node_eks_multus"></a>`multus`

선택 사항. Multus 컨테이너 네트워크 인터페이스(CNI) 사용을 정의하는 속성입니다.

`multus`를 포함시킬 경우 `enabled` 및 `multus_role` 속성을 지정합니다.

 `enabled`    
기본 Multus 기능이 활성화되어 있는지 여부를 나타냅니다.  
필수 여부: 예  
유형: 부울

 `multus_role`    
Multus 네트워크 인터페이스 관리 역할입니다.  
필수 항목 여부: 예  
유형: String<a name="node_eks_ebs_csi"></a>`ebs_csi`

Amazon EKS 클러스터에 설치된 Amazon EBS CSI(Container Storage Interface) 드라이버를 정의하는 속성입니다.

이 플러그인을 활성화하여 AWS Outposts, AWS 로컬 영역 또는에서 Amazon EKS 자체 관리형 노드를 사용합니다 AWS 리전. 자세한 내용은 **Amazon EKS 사용 설명서**에서 [Amazon Elastic Block Store CSI 드라이버](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html)를 참조하세요.

 `enabled`    
기본 Amazon EBS CSI 드라이버가 설치되어 있는지 여부를 나타냅니다.  
필수 여부: 아니요  
유형: 부울

 `version`    
Amazon EBS CSI 드라이버 추가 기능의 버전입니다. 버전은 DescribeAddonVersions 작업에서 반환된 버전 중 하나와 일치해야 합니다.** 자세한 내용은 *Amazon EKS API 참조*의 [DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)를 참조하세요.  
필수 여부: 아니요  
유형: 문자열

## 속성
<a name="node-eks-properties"></a>

 `version`    
클러스터용 Kubernetes 버전. AWS Telco Network Builder는 Kubernetes 버전 1.25\$11.32를 지원합니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: 1.25 \$1 1.26 \$1 1.27 \$1 1.28 \$1 1.29 \$1 1.30 \$1 1.31 \$1 1.32

 `access`    
클러스터 엔드포인트 액세스입니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: `PRIVATE` \$1 `PUBLIC` \$1 `ALL`

 `cluster_role`    
클러스터 관리 역할입니다.  
필수 항목 여부: 예  
유형: String

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

 `ip_family`    
클러스터의 서비스 및 포드 주소에 대한 IP 패밀리를 나타냅니다.  
허용되는 값: `IPv6`, `IPv4`   
기본 값: `IPv4`  
필수 여부: 아니요  
유형: 문자열

## 요구 사항
<a name="node-eks-requirements"></a>

 `subnets`    
[AWS.Networking.Subnet](node-subnet.md) 노드입니다.  
필수 여부: 예  
유형: 목록

## 예제
<a name="node-eks-example"></a>

```
SampleEKS:
  type: tosca.nodes.AWS.Compute.EKS
  properties:
    version: "1.26"
    access: "ALL"
    cluster_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleRole"
    ip_family: "IPv6"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
  capabilities:
    multus:
      properties:
        enabled: true
        multus_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/MultusRole"
    ebs_csi:
      properties:
        enabled: true
        version: "v1.16.0-eksbuild.1"        
  requirements:
    subnets:
    - SampleSubnet01
    - SampleSubnet02
```

# AWS.Compute.EKS.AuthRole
<a name="node-eks-authrole"></a>

AuthRole은 사용자가 IAM 역할을 사용하여 Amazon EKS 클러스터 `aws-auth` `ConfigMap`에 액세스할 수 있도록 Amazon EKS 클러스터에 IAM 역할을 추가할 수 있게 해 줍니다.

## 구문
<a name="node-eks-authrole-syntax"></a>

```
tosca.nodes.AWS.Compute.EKS.AuthRole:
  properties:
    role\$1mappings: List
      arn: String
      groups: List  
  requirements:
    clusters: List
```

## 속성
<a name="node-eks-authrole-properties"></a>

 `role_mappings`    
Amazon EKS 클러스터 `aws-auth` `ConfigMap`에 추가해야 하는 IAM 역할을 정의하는 매핑 목록입니다.    
 `arn`    
IAM 역할의 ARN입니다.  
필수 항목 여부: 예  
유형: String  
 `groups`    
`arn`에 정의된 역할에 할당할 Kubernetes 그룹입니다.  
필수 여부: 아니요  
유형: 목록

## 요구 사항
<a name="node-eks-authrole-requirements"></a>

 `clusters`    
[AWS.Compute.EKS](node-eks.md) 노드입니다.  
필수 여부: 예  
유형: 목록

## 예제
<a name="node-eks-authrole-example"></a>

```
EKSAuthMapRoles:
    type: tosca.nodes.AWS.Compute.EKS.AuthRole
    properties:
        role_mappings:
        - arn: arn:aws:iam::${AWS::TNB::AccountId}:role/TNBHookRole1
          groups:
          - system:nodes
          - system:bootstrappers
        - arn: arn:aws:iam::${AWS::TNB::AccountId}:role/TNBHookRole2
          groups:
          - system:nodes
          - system:bootstrappers
    requirements:
         clusters: 
         - Free5GCEKS1
         - Free5GCEKS2
```

# AWS.Compute.EKSManagedNode
<a name="node-eks-managed-node"></a>

AWS TNB는 EKS 관리형 노드 그룹을 지원하여 Amazon EKS Kubernetes 클러스터용 노드(Amazon EC2 인스턴스)의 프로비저닝 및 수명 주기 관리를 자동화합니다. EKS 노드 그룹을 생성하려면 다음을 수행합니다.
+ AMI의 ID 또는 AMI 유형을 제공하여 클러스터 작업자 노드의 Amazon Machine Image(AMI)를 선택합니다.
+ SSH 액세스를 위한 Amazon EC2 키 페어와 노드 그룹의 조정 속성을 제공합니다.
+ 노드 그룹이 Amazon EKS 클러스터와 연결되어 있는지 확인합니다.
+ 작업자 노드의 서브넷을 제공합니다.
+ 선택적으로 보안 그룹, 노드 레이블 및 배치 그룹을 노드 그룹에 연결합니다.

## 구문
<a name="node-eks-managed-node-syntax"></a>

```
tosca.nodes.AWS.Compute.EKSManagedNode:
  capabilities:
    compute:
      properties:
        ami\$1type: String
        ami\$1id: String
        instance\$1types: List
        key\$1pair: String
        root\$1volume\$1encryption: Boolean
        root\$1volume\$1encryption\$1key\$1arn: String
        root\$1volume\$1size: Integer 
    scaling:
      properties:
        desired\$1size: Integer
        min\$1size: Integer
        max\$1size: Integer       
  properties:
    node\$1role: String
    tags: List
    kubernetes\$1version: String        
  requirements:
    cluster: String
    subnets: List
    network\$1interfaces: List
    security\$1groups: List
    placement\$1group: String
    user\$1data: String
    labels: List
```

## 기능
<a name="node-eks-managed-node-capabilities"></a><a name="node_eks_managed_node_compute"></a>`compute`

Amazon EKS 관리형 노드 그룹의 컴퓨팅 파라미터를 정의하는 속성(예: Amazon EC2 인스턴스 유형 및 Amazon EC2 인스턴스 AMI)입니다.

 `ami_type`    
Amazon EKS 지원 AMI 유형입니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: `AL2_x86_64` \$1 `AL2_x86_64_GPU` \$1 `AL2_ARM_64` \$1 \$1 `AL2023_x86_64` \$1 `AL2023_ARM_64` \$1 `AL2023_x86_64_NVIDIA` \$1 `AL2023_x86_64_NEURON` \$1 `CUSTOM` \$1 `BOTTLEROCKET_ARM_64` \$1 `BOTTLEROCKET_x86_64` \$1 `BOTTLEROCKET_ARM_64_NVIDIA` \$1 `BOTTLEROCKET_x86_64_NVIDIA`

 `ami_id`    
AMI의 ID입니다.  
필수 여부: 아니요  
유형: 문자열  
템플릿에 `ami_type` 및 `ami_id`가 모두 지정된 경우 AWS TNB는 `ami_id` 값만 사용하여를 생성합니다`EKSManagedNode`.

 `instance_types`    
인스턴스의 크기입니다.  
필수 여부: 예  
유형: 목록

 `key_pair`    
SSH 액세스를 활성화하기 위한 EC2 키 쌍입니다.  
필수 항목 여부: 예  
유형: String

 `root_volume_encryption`    
Amazon EBS 루트 볼륨에 대해 Amazon EBS 암호화를 활성화합니다. 이 속성이 제공되지 않으면 AWS TNB는 기본적으로 Amazon EBS 루트 볼륨을 암호화합니다.  
필수 항목 여부: 아니요  
기본값: true  
유형: 부울

 `root_volume_encryption_key_arn`    
 AWS KMS key. AWS TNB의 ARN은 일반 키 ARN, 다중 리전 키 ARN 및 별칭 ARN을 지원합니다.  
필수 여부: 아니요  
유형: 문자열  
+ `root_volume_encryption`가 false인 경우를 포함하지 마십시오`root_volume_encryption_key_arn`.
+ AWS TNB는 Amazon EBS 지원 AMI의 루트 볼륨 암호화를 지원합니다.
+ AMI의 루트 볼륨이 이미 암호화된 경우 루트 볼륨을 다시 암호화하려면 AWS TNB`root_volume_encryption_key_arn`용를 포함해야 합니다.
+  AMI의 루트 볼륨이 암호화되지 않은 경우 AWS TNB는 `root_volume_encryption_key_arn`를 사용하여 루트 볼륨을 암호화합니다.

  를 포함하지 않으면 `root_volume_encryption_key_arn` AWS TNB는에서 제공하는 기본 키를 사용하여 루트 볼륨을 암호화 AWS Key Management Service 합니다.
+ AWS TNB는 암호화된 AMI를 복호화하지 않습니다.

 `root_volume_size`    
GiBs.  
필수 여부: 아니요  
기본값: 20  
유형: 정수  
가능한 값: 1\$116,384<a name="node_eks_managed_node_scaling"></a>`scaling`

Amazon EKS 관리형 노드 그룹의 조정 파라미터를 정의하는 속성(예: 원하는 Amazon EC2 인스턴스 수, 노드 그룹 내 최소 및 최대 Amazon EC2 인스턴스 수)입니다.

 `desired_size`    
이 노드 그룹의 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

 `min_size`    
이 노드 그룹의 최소 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

 `max_size`    
이 노드 그룹의 최대 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

## 속성
<a name="node_eks_managed_node-properties"></a>

 `node_role`    
Amazon EC2 인스턴스에 연결된 IAM 역할의 ARN입니다.  
필수 항목 여부: 예  
유형: String

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

 `kubernetes_version`    
Managed Node 그룹의 Kubernetes 버전. AWS TNB는 Kubernetes 버전 1.25\$11.32를 지원합니다. 다음을 고려하세요.  
+ `kubernetes_version` 또는를 지정합니다`ami_id`. 둘 다 지정하지 마세요.
+ 는 AWS.Compute.EKSManagedNode 버전보다 작거나 같아야 `kubernetes_version` 합니다.
+  AWS.Compute.EKSManagedNode 버전과 버전 간에는 세 가지 버전이 다를 수 있습니다`kubernetes_version`.
+ `kubernetes_version` 또는 `ami_id`를 지정하지 않으면 AWS TNB는 `AWS.Compute.EKSManagedNode` 버전의 최신 AMI를 사용하여를 생성합니다. `EKSManagedNode` 
필수 여부: 아니요  
유형: 문자열  
가능한 값: 1.25 \$1 1.26 \$1 1.27 \$1 1.28 \$1 1.29 \$1 1.30 \$1 1.31 \$1 1.32

## 요구 사항
<a name="node-eks-managed-node-requirements"></a>

 `cluster`    
[AWS.Compute.EKS](node-eks.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `subnets`    
[AWS.Networking.Subnet](node-subnet.md) 노드입니다.  
필수 여부: 예  
유형: 목록

 `network_interfaces`    
[AWS.Networking.ENI](node-eni.md) 노드입니다. 네트워크 인터페이스와 서브넷이 동일한 가용 영역으로 설정되어 있는지 확인하세요. 그렇지 않으면 인스턴스화가 실패합니다.  
를 설정하면 속성을 [AWS.Compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html) 노드에 포함`multus_role`하면 `network_interfaces` AWS TNB는 `multus` 속성에서 ENIs와 관련된 권한을 얻습니다. 그렇지 않으면 AWS TNB는 [node\$1role](#node_eks_managed_node_node_role) 속성에서 ENI와 관련된 권한을 얻습니다.  
필수 여부: 아니요  
유형: 목록

 `security_groups`    
[AWS.Networking.SecurityGroup](node-networking-security-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 목록

 `placement_group`    
[tosca.nodes.AWS.Compute.PlacementGroup](node-compute-placement-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 문자열

 `user_data`    
[tosca.nodes.AWS.Compute.UserData](node-compute-user-data.md) 노드 참조입니다. 사용자 데이터 스크립트는 관리형 노드 그룹에서 시작된 Amazon EC2 인스턴스에 전달됩니다. 사용자 지정 사용자 데이터를 실행하는 데 필요한 권한을 노드 그룹에 전달된 node\$1role에 추가합니다.  
필수 여부: 아니요  
유형: 문자열

 `labels`    
노드 레이블 목록입니다. 노드 레이블에는 이름과 값이 있어야 합니다. 다음 기준을 사용하여 레이블을 생성합니다.  
+ 이름과 값은 로 구분해야 합니다`=`.
+ 이름과 값의 길이는 각각 최대 63자입니다.
+ 레이블에는 문자(A\$1Z, a\$1z), 숫자(0\$19) 및 다음 문자가 포함될 수 있습니다. `[-, _, ., *, ?]` 
+ 이름과 값은 영숫자, `?`또는 `*` 문자로 시작하고 끝나야 합니다.
예: `myLabelName1=*NodeLabelValue1`  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-eks-managed-node-example"></a>

```
SampleEKSManagedNode:
  type: tosca.nodes.AWS.Compute.EKSManagedNode
  capabilities:
    compute:
      properties:
        ami_type: "AL2_x86_64"
        instance_types:
          - "t3.xlarge"
        key_pair: "SampleKeyPair"
        root_volume_encryption: true
        root_volume_encryption_key_arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        root_volume_size: 1500    
    scaling:
      properties:
        desired_size: 1
        min_size: 1
        max_size: 1
  properties:
    node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleRole"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
    kubernetes_version:
      - "1.30" 
  requirements:
    cluster: SampleEKS
    subnets:
      - SampleSubnet
    network_interfaces:
      - SampleENI01
      - SampleENI02
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
    placement_group: SamplePlacementGroup
    user_data: CustomUserData
    labels:
      - "sampleLabelName001=sampleLabelValue001"
      - "sampleLabelName002=sampleLabelValue002"
```

# AWS.Compute.EKSSelfManagedNode
<a name="node-eks-self-managed"></a>

AWS TNB는 Amazon EKS 자체 관리형 노드를 지원하여 Amazon EKS Kubernetes 클러스터에 대한 노드(Amazon EC2 인스턴스)의 프로비저닝 및 수명 주기 관리를 자동화합니다. Amazon EKS 노드 그룹을 생성하려면 다음을 수행합니다.
+ AMI의 ID 중 하나를 제공하여 클러스터 작업자 노드의 Amazon Machine Image(AMI)를 선택합니다.
+ SSH 액세스를 위한 Amazon EC2 키 페어를 제공합니다.
+ 노드 그룹이 Amazon EKS 클러스터와 연결되어 있는지 확인합니다.
+ 인스턴스 유형과 원하는 크기, 최소 크기 및 최대 크기를 제공합니다.
+ 작업자 노드의 서브넷을 제공합니다.
+ 선택적으로 보안 그룹, 노드 레이블 및 배치 그룹을 노드 그룹에 연결합니다.

## 구문
<a name="node-eks-self-managed-node-syntax"></a>

```
tosca.nodes.AWS.Compute.EKSSelfManagedNode:
  capabilities:
    compute:
      properties:
        ami\$1id: String
        instance\$1type: String
        key\$1pair: String
        root\$1volume\$1encryption: Boolean
        root\$1volume\$1encryption\$1key\$1arn: String    
        root\$1volume\$1size: Integer
    scaling:
      properties:
        desired\$1size: Integer
        min\$1size: Integer
        max\$1size: Integer  
  properties:
    node\$1role: String    
    tags: List          
  requirements:
    cluster: String
    subnets: List
    network\$1interfaces: List
    security\$1groups: List
    placement\$1group: String
    user\$1data: String
    labels: List
```

## 기능
<a name="node-eks-self-managed-node-capabilities"></a><a name="node_eks_self_managed_node_compute"></a>`compute`

Amazon EKS 자체 관리형 노드의 컴퓨팅 파라미터를 정의하는 속성(예: Amazon EC2 인스턴스 유형 및 Amazon EC2 인스턴스 AMI)입니다.

 `ami_id`    
인스턴스를 시작하는 데 사용되는 AMI ID입니다. AWS TNB는 IMDSv2를 활용하는 인스턴스를 지원합니다. 자세한 내용은 [IMDS 버전](imds-version.md) 단원을 참조하십시오.  
의 AMI ID를 업데이트할 수 있습니다`EKSSelfManagedNode`. AMI의 Amazon EKS 버전은 Amazon EKS 클러스터 버전과 동일하거나 최대 2개 버전 미만이어야 합니다. 예를 들어 Amazon EKS 클러스터 버전이 1.31인 경우 Amazon EKS AMI 버전은 1.31, 1.30 또는 1.29여야 합니다.
필수 항목 여부: 예  
유형: String

 `instance_type`    
인스턴스의 크기입니다.  
필수 항목 여부: 예  
유형: String

 `key_pair`    
SSH 액세스를 활성화하기 위한 Amazon EC2 키 쌍입니다.  
필수 항목 여부: 예  
유형: String

 `root_volume_encryption`    
Amazon EBS 루트 볼륨에 대해 Amazon EBS 암호화를 활성화합니다. 이 속성이 제공되지 않으면 AWS TNB는 기본적으로 Amazon EBS 루트 볼륨을 암호화합니다.  
필수 항목 여부: 아니요  
기본값: true  
유형: 부울

 `root_volume_encryption_key_arn`    
 AWS KMS key. AWS TNB의 ARN은 일반 키 ARN, 다중 리전 키 ARN 및 별칭 ARN을 지원합니다.  
필수 여부: 아니요  
유형: 문자열  
+ `root_volume_encryption`가 false인 경우를 포함하지 마십시오`root_volume_encryption_key_arn`.
+ AWS TNB는 Amazon EBS 지원 AMI의 루트 볼륨 암호화를 지원합니다.
+ AMI의 루트 볼륨이 이미 암호화된 경우 루트 볼륨을 다시 암호화하려면 AWS TNB`root_volume_encryption_key_arn`용를 포함해야 합니다.
+  AMI의 루트 볼륨이 암호화되지 않은 경우 AWS TNB는 `root_volume_encryption_key_arn`를 사용하여 루트 볼륨을 암호화합니다.

  를 포함하지 않으면 `root_volume_encryption_key_arn` AWS TNB는 AWS Managed Services 를 사용하여 루트 볼륨을 암호화합니다.
+ AWS TNB는 암호화된 AMI를 복호화하지 않습니다.

 `root_volume_size`    
GiBs.  
필수 여부: 아니요  
기본값: 20  
유형: 정수  
가능한 값: 1\$116,384<a name="node_eks_self_managed_node_scaling"></a>`scaling`

Amazon EKS 자체 관리형 노드의 조정 매개 변수를 정의하는 속성(예: 원하는 Amazon EC2 인스턴스 수, 노드 그룹 내 최소 및 최대 Amazon EC2 인스턴스 수)입니다.

 `desired_size`    
이 노드 그룹의 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

 `min_size`    
이 노드 그룹의 최소 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

 `max_size`    
이 노드 그룹의 최대 인스턴스 수입니다.  
필수 여부: 예  
유형: 정수

## 속성
<a name="node-eks-self-managed-node-properties"></a>

 `node_role`    
Amazon EC2 인스턴스에 연결된 IAM 역할의 ARN입니다.  
필수 항목 여부: 예  
유형: String

 `tags`    
리소스에 연결할 태그입니다. 태그는 리소스에서 생성한 인스턴스에 전파됩니다.  
필수 여부: 아니요  
유형: 목록

## 요구 사항
<a name="node-eks-self-managed-node-requirements"></a>

 `cluster`    
[AWS.Compute.EKS](node-eks.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `subnets`    
[AWS.Networking.Subnet](node-subnet.md) 노드입니다.  
필수 여부: 예  
유형: 목록

 `network_interfaces`    
[AWS.Networking.ENI](node-eni.md) 노드입니다. 네트워크 인터페이스와 서브넷이 동일한 가용 영역으로 설정되어 있는지 확인하세요. 그렇지 않으면 인스턴스화가 실패합니다.  
를 설정하면 속성을 [AWS.Compute.EKS](https://docs.aws.amazon.com/tnb/latest/ug/node-eks.html) 노드에 포함`multus_role`하면 `network_interfaces` AWS TNB는 `multus` 속성에서 ENIs와 관련된 권한을 얻습니다. 그렇지 않으면 AWS TNB는 [node\$1role](#node_eks_self_managed_node_role) 속성에서 ENI와 관련된 권한을 얻습니다.  
필수 여부: 아니요  
유형: 목록

 `security_groups`    
[AWS.Networking.SecurityGroup](node-networking-security-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 목록

 `placement_group`    
[tosca.nodes.AWS.Compute.PlacementGroup](node-compute-placement-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 문자열

 `user_data`    
[tosca.nodes.AWS.Compute.UserData](node-compute-user-data.md) 노드 참조입니다. 사용자 데이터 스크립트는 자체 관리형 노드 그룹에서 시작된 Amazon EC2 인스턴스로 전달됩니다. 사용자 지정 사용자 데이터를 실행하는 데 필요한 권한을 노드 그룹에 전달된 node\$1role에 추가합니다.  
필수 여부: 아니요  
유형: 문자열

 `labels`    
노드 레이블 목록입니다. 노드 레이블에는 이름과 값이 있어야 합니다. 다음 기준을 사용하여 레이블을 생성합니다.  
+ 이름과 값은 로 구분해야 합니다`=`.
+ 이름과 값의 길이는 각각 최대 63자입니다.
+ 레이블에는 문자(A\$1Z, a\$1z), 숫자(0\$19) 및 다음 문자가 포함될 수 있습니다. `[-, _, ., *, ?]` 
+ 이름과 값은 영숫자, `?`또는 `*` 문자로 시작하고 끝나야 합니다.
예: `myLabelName1=*NodeLabelValue1`  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-eks-self-managed-node-example"></a>

```
SampleEKSSelfManagedNode:
  type: tosca.nodes.AWS.Compute.EKSSelfManagedNode
  capabilities:
    compute:
      properties:
        ami_id: "ami-123123EXAMPLE"
        instance_type: "c5.large"
        key_pair: "SampleKeyPair"
        root_volume_encryption: true
        root_volume_encryption_key_arn: "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        root_volume_size: 1500
    scaling:
      properties:
        desired_size: 1
        min_size: 1
        max_size: 1
  properties:
    node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleNodeRole" 
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"          
  requirements:
    cluster: SampleEKSCluster
    subnets:
      - SampleSubnet
    network_interfaces:
      - SampleNetworkInterface01
      - SampleNetworkInterface02
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
    placement_group: SamplePlacementGroup
    user_data: CustomUserData
    labels:
      - "sampleLabelName001=sampleLabelValue001"
      - "sampleLabelName002=sampleLabelValue002"
```

# AWS.Compute.PlacementGroup
<a name="node-compute-placement-group"></a>

PlacementGroup 노드는 Amazon EC2 인스턴스를 배치하기 위한 다양한 전략을 지원합니다.

새 Amazon EC2 인스턴스를 시작하면 Amazon EC2 서비스는 모든 인스턴스가 기본 하드웨어 전반에 분산되도록 하여 상호 관련 오류의 위험을 최소화합니다. 워크로드 요구 사항을 충족하기 위해 배치 그룹을 사용하여 상호 의존적 인스턴스 그룹의 배치에 영향을 줄 수 있습니다.

## 구문
<a name="node-compute-placement-group-syntax"></a>

```
tosca.nodes.AWS.Compute.PlacementGroup
  properties:
    strategy: String
    partition\$1count: Integer
    tags: List
```

## 속성
<a name="node-compute-placement-group-properties"></a>

 `strategy`    
Amazon EC2 인스턴스를 배치하는 데 사용할 전략입니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: CLUSTER \$1 PARTITION \$1 SPREAD\$1HOST \$1 SPREAD\$1RACK  
+ **CLUSTER** – 인스턴스를 가용 영역 안에 서로 근접하게 패킹합니다. 이 전략은 워크로드가 고성능 컴퓨팅(HPC) 애플리케이션에서 일반적인 긴밀히 결합된 노드 간 통신에 필요한 낮은 지연 시간의 네트워크 성능을 달성할 수 있습니다.
+ **PARTITION** – 인스턴스를 논리적 파티션에 분산해, 한 파티션에 있는 인스턴스 그룹이 다른 파티션의 인스턴스 그룹과 기본 하드웨어를 공유하지 않게 합니다. 이 전략은 일반적으로 Hadoop, Cassandra, Kafka 등 대규모의 분산 및 복제된 워크로드에 필요합니다.
+ **SPREAD\$1RAC** – 소규모의 인스턴스 그룹을 다른 기본 하드웨어로 분산하여 상호 관련 오류를 줄입니다.
+ **SPREAD\$1HOST** – Outpost 배치 그룹에만 사용할 수 있습니다. 소규모의 인스턴스 그룹을 다른 기본 하드웨어로 분산하여 상호 관련 오류를 줄입니다.

 `partition_count`    
파티션 수입니다.  
필수: `strategy`가 `PARTITION`으로 설정된 경우에만 필요합니다.  
유형: 정수  
가능한 값: 1 \$1 2 \$13 \$1 4 \$1 5 \$1 6 \$1 7

 `tags`    
배치 그룹 리소스에 연결할 수 있는 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-compute-placement-group-example"></a>

```
ExamplePlacementGroup:
  type: tosca.nodes.AWS.Compute.PlacementGroup
  properties:
    strategy: "PARTITION"
    partition_count: 5
    tags: 
      - tag_key=tag_value
```

# AWS.Compute.UserData
<a name="node-compute-user-data"></a>

AWS TNB는 Network Service Descriptor(NSD)의 UserData 노드를 통해 사용자 지정 사용자 데이터로 Amazon EC2 인스턴스 시작을 지원합니다. 사용자 지정 사용자 데이터에 대한 자세한 내용은 *Amazon EC2 사용 설명서*의 [사용자 데이터 및 셸 스크립트를 참조하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts).

네트워크 인스턴스화 중에 AWS TNB는 사용자 데이터 스크립트를 통해 Amazon EC2 인스턴스 등록을 클러스터에 제공합니다. 사용자 지정 사용자 데이터도 제공되면 AWS TNB는 두 스크립트를 모두 병합하여 Amazon EC2에 [멀티메](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html#user-data-mime-multi) 스크립트로 전달합니다. 사용자 지정 사용자 데이터 스크립트는 Amazon EKS 등록 스크립트보다 먼저 실행됩니다.

사용자 데이터 스크립트에서 사용자 지정 변수를 사용하려면 열린 중괄호 `{` 뒤에 느낌표 `!`를 추가하십시오. 예를 들어, 스크립트에서 `MyVariable`를 사용하려면 `{!MyVariable}`을 입력합니다.

**참고**  
AWS TNB는 최대 7KB 크기의 사용자 데이터 스크립트를 지원합니다.
 AWS TNB는 CloudFormation 를 사용하여 `multimime` 사용자 데이터 스크립트를 처리하고 렌더링하므로 스크립트가 모든 CloudFormation 규칙을 준수하는지 확인합니다.

## 구문
<a name="node-compute-user-data-syntax"></a>

```
tosca.nodes.AWS.Compute.UserData:
  properties:
    implementation: String
    content\$1type: String
```

## 속성
<a name="node-compute-user-data-properties"></a>

 `implementation`    
사용자 데이터 스크립트 정의의 상대 경로입니다. 형식은 `./scripts/script_name.sh`여야 합니다.  
필수 항목 여부: 예  
유형: String

 `content_type`    
사용자 데이터 스크립트의 콘텐츠 유형입니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: `x-shellscript`

## 예제
<a name="node-compute-user-data-example"></a>

```
ExampleUserData:
  type: tosca.nodes.AWS.Compute.UserData
  properties:
    content_type: "text/x-shellscript"
    implementation: "./scripts/customUserData.sh"
```

# AWS.Networking.SecurityGroup
<a name="node-networking-security-group"></a>

AWS TNB는 보안 그룹을 지원하여 [Amazon EKS Kubernetes 클러스터 노드 그룹에 연결할 수 있는 Amazon EC2 보안](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html) 그룹의 프로비저닝을 자동화합니다.

## 구문
<a name="node-networking-security-group-syntax"></a>

```
tosca.nodes.AWS.Networking.SecurityGroup
  properties:
    description: String
    name: String
    tags: List
  requirements:
    vpc: String
```

## 속성
<a name="node-networking-security-group-properties"></a>

 `description`    
보안 그룹에 대한 설명입니다. 최대 255자의 문자를 사용하여 그룹을 설명할 수 있습니다. 여기에는 문자(A\$1Z 및 a\$1z), 숫자(0\$19), 공백 및 특정 기호(.\$1-:/()\$1,@[]\$1=&;\$1\$1\$1\$1\$1)만 사용할 수 있습니다.  
필수 항목 여부: 예  
유형: String

 `name`    
보안 그룹의 이름입니다. 이름에는 최대 255자까지 사용할 수 있습니다. 여기에는 문자(A\$1Z 및 a\$1z), 숫자(0\$19), 공백 및 특정 기호(.\$1-:/()\$1,@[]\$1=&;\$1\$1\$1\$1\$1)만 사용할 수 있습니다.  
필수 항목 여부: 예  
유형: String

 `tags`    
보안 그룹 리소스에 연결할 수 있는 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 요구 사항
<a name="node-networking-security-group-requirements"></a>

 `vpc`    
[AWS.Networking.VPC](node-vpc.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-networking-security-group-example"></a>

```
SampleSecurityGroup001:
  type: tosca.nodes.AWS.Networking.SecurityGroup
  properties:
        description: "Sample Security Group for Testing"
        name: "SampleSecurityGroup"
        tags:
          - "Name=SecurityGroup"
          - "Environment=Testing"
      requirements:
        vpc: SampleVPC
```

# AWS.Networking.SecurityGroupEgressRule
<a name="node-networking-security-group-egress-rule"></a>

AWS TNB는 보안 그룹 송신 규칙을 지원하여 .Networking AWS.SecurityGroup에 연결할 수 있는 Amazon EC2 보안 그룹 송신 규칙의 프로비저닝을 자동화합니다. 단, 송신 트래픽의 대상으로 cidr\$1ip/destination\$1security\$1group/destination\$1prefix\$1list를 제공해야 합니다.

## 구문
<a name="node-networking-security-group-egress-rule-syntax"></a>

```
AWS.Networking.SecurityGroupEgressRule
  properties:
    ip\$1protocol: String
    from\$1port: Integer
    to\$1port: Integer
    description: String
    destination\$1prefix\$1list: String
    cidr\$1ip: String
    cidr\$1ipv6: String
  requirements:
    security\$1group: String
    destination\$1security\$1group: String
```

## 속성
<a name="node-networking-security-group-egress-rule-properties"></a>

 `cidr_ip`    
IPv4 주소 범위(CIDR 형식)입니다. 송신 트래픽을 허용하는 CIDR 범위를 지정해야 합니다.  
필수 여부: 아니요  
유형: 문자열

 `cidr_ipv6`    
송신 트래픽의 경우 IPv6 주소 범위(CIDR 형식)입니다. 대상 보안 그룹(`destination_security_group` 또는 `destination_prefix_list`) 또는 CIDR 범위(`cidr_ip` 또는 `cidr_ipv6`)를 지정해야 합니다.  
필수 여부: 아니요  
유형: 문자열

 `description`    
송신(아웃바운드) 보안 그룹 규칙에 대한 설명입니다. 최대 255자의 문자를 사용하여 규칙을 설명할 수 있습니다.  
필수 여부: 아니요  
유형: 문자열

 `destination_prefix_list`    
기존 Amazon VPC 관리형 접두사 목록의 접두사 목록 ID입니다. 보안 그룹과 연결된 노드 그룹 인스턴스의 대상입니다. 관리형 접두사 목록에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [ 관리형 접두사 목록](https://docs.aws.amazon.com/vpc/latest/userguide/managed-prefix-lists.html)을 참조하세요.  
필수 여부: 아니요  
유형: 문자열

 `from_port`    
프로토콜이 TCP 또는 UDP인 경우 포트 범위의 시작입니다. 프로토콜이 ICMP 또는 ICMPv6인 경우 유형 번호입니다. 값 -1은 모든 ICMP/ICMPv6 형식을 나타냅니다. 모든 ICMP/ICMPv6 형식을 지정하는 경우 모든 ICMP/ICMPv6 코드를 지정해야 합니다.  
필수 여부: 아니요  
유형: 정수

 `ip_protocol`    
IP 프로토콜 이름(tcp, udp, icmp, icmpv6) 또는 프로토콜 번호입니다. -1을 사용하여 모든 프로토콜을 지정합니다. 보안 그룹 규칙의 승인 시 -1을 지정하거나 tcp, udp, icmp, 또는 icmpv6 이외의 프로토콜 번호를 지정하면 지정하는 포트 범위와 관계없이 모든 포트의 트래픽이 허용됩니다. tcp, udp, icmp의 경우 포트 범위를 지정해야 합니다. icmpv6의 경우 포트 범위는 선택 사항입니다. 포트 범위를 누락하는 경우 모든 형식 및 코드에 대한 트래픽이 허용됩니다.  
필수 항목 여부: 예  
유형: String

 `to_port`    
프로토콜이 TCP 또는 UDP인 경우 포트 범위의 끝입니다. 프로토콜이 ICMP 또는 ICMPv6인 경우 코드입니다. 값 -1은 모든 ICMP/ICMPv6 코드를 나타냅니다. 모든 ICMP/ICMPv6 형식을 지정하는 경우 모든 ICMP/ICMPv6 코드를 지정해야 합니다.  
필수 여부: 아니요  
유형: 정수

## 요구 사항
<a name="node-networking-security-group-egress-rule-requirements"></a>

 `security_group`    
이 규칙이 추가되는 보안 그룹의 ID입니다.  
필수 항목 여부: 예  
유형: String

 `destination_security_group`    
송신 트래픽이 허용되는 대상 보안 그룹의 ID 또는 TOSCA 참조입니다.  
필수 여부: 아니요  
유형: 문자열

## 예제
<a name="node-networking-security-group-egress-rule-example"></a>

```
SampleSecurityGroupEgressRule:
      type: tosca.nodes.AWS.Networking.SecurityGroupEgressRule
      properties:
        ip_protocol: "tcp"
        from_port: 8000
        to_port: 9000
        description: "Egress Rule for sample security group"
        cidr_ipv6: "2600:1f14:3758:ca00::/64"    
      requirements:
        security_group: SampleSecurityGroup001
        destination_security_group: SampleSecurityGroup002
```

# AWS.Networking.SecurityGroupIngressRule
<a name="node-networking-security-group-ingress-rule"></a>

AWS TNB는 보안 그룹 수신 규칙을 지원하여 .Networking AWS.SecurityGroup에 연결할 수 있는 Amazon EC2 보안 그룹 수신 규칙의 프로비저닝을 자동화합니다. 단, 수신 트래픽의 소스로 cidr\$1ip/source\$1security\$1group/source\$1prefix\$1list를 제공해야 합니다.

## 구문
<a name="node-networking-security-group-ingress-rule-syntax"></a>

```
AWS.Networking.SecurityGroupIngressRule
  properties:
    ip\$1protocol: String
    from\$1port: Integer
    to\$1port: Integer
    description: String
    source\$1prefix\$1list: String
    cidr\$1ip: String
    cidr\$1ipv6: String
  requirements:
    security\$1group: String
    source\$1security\$1group: String
```

## 속성
<a name="node-networking-security-group-ingress-rule-properties"></a>

 `cidr_ip`    
IPv4 주소 범위(CIDR 형식)입니다. 수신 트래픽을 허용하는 CIDR 범위를 지정해야 합니다.  
필수 여부: 아니요  
유형: 문자열

 `cidr_ipv6`    
수신 트래픽의 경우 IPv6 주소 범위(CIDR 형식)입니다. 소스 보안 그룹(`source_security_group` 또는 `source_prefix_list`)이나 CIDR 범위(`cidr_ip` 또는 `cidr_ipv6`)를 지정해야 합니다.  
필수 여부: 아니요  
유형: 문자열

 `description`    
수신(인바운드) 보안 그룹 규칙의 설명입니다. 최대 255자의 문자를 사용하여 규칙을 설명할 수 있습니다.  
필수 여부: 아니요  
유형: 문자열

 `source_prefix_list`    
기존 Amazon VPC 관리형 접두사 목록의 접두사 목록 ID입니다. 보안 그룹과 연결된 노드 그룹 인스턴스가 트래픽을 수신할 수 있는 소스입니다. 관리형 접두사 목록에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [ 관리형 접두사 목록](https://docs.aws.amazon.com/vpc/latest/userguide/managed-prefix-lists.html)을 참조하세요.  
필수 여부: 아니요  
유형: 문자열

 `from_port`    
프로토콜이 TCP 또는 UDP인 경우 포트 범위의 시작입니다. 프로토콜이 ICMP 또는 ICMPv6인 경우 유형 번호입니다. 값 -1은 모든 ICMP/ICMPv6 형식을 나타냅니다. 모든 ICMP/ICMPv6 형식을 지정하는 경우 모든 ICMP/ICMPv6 코드를 지정해야 합니다.  
필수 여부: 아니요  
유형: 정수

 `ip_protocol`    
IP 프로토콜 이름(tcp, udp, icmp, icmpv6) 또는 프로토콜 번호입니다. -1을 사용하여 모든 프로토콜을 지정합니다. 보안 그룹 규칙의 승인 시 -1을 지정하거나 tcp, udp, icmp, 또는 icmpv6 이외의 프로토콜 번호를 지정하면 지정하는 포트 범위와 관계없이 모든 포트의 트래픽이 허용됩니다. tcp, udp, icmp의 경우 포트 범위를 지정해야 합니다. icmpv6의 경우 포트 범위는 선택 사항입니다. 포트 범위를 누락하는 경우 모든 형식 및 코드에 대한 트래픽이 허용됩니다.  
필수 항목 여부: 예  
유형: String

 `to_port`    
프로토콜이 TCP 또는 UDP인 경우 포트 범위의 끝입니다. 프로토콜이 ICMP 또는 ICMPv6인 경우 코드입니다. 값 -1은 모든 ICMP/ICMPv6 코드를 나타냅니다. 모든 ICMP/ICMPv6 형식을 지정하는 경우 모든 ICMP/ICMPv6 코드를 지정해야 합니다.  
필수 여부: 아니요  
유형: 정수

## 요구 사항
<a name="node-networking-security-group-ingress-rule-requirements"></a>

 `security_group`    
이 규칙이 추가되는 보안 그룹의 ID입니다.  
필수 항목 여부: 예  
유형: String

 `source_security_group`    
수신 트래픽이 허용될 소스 보안 그룹의 ID 또는 TOSCA 참조입니다.  
필수 여부: 아니요  
유형: 문자열

## 예제
<a name="node-networking-security-group-ingress-rule-example"></a>

```
SampleSecurityGroupIngressRule:
      type: tosca.nodes.AWS.Networking.SecurityGroupIngressRule
      properties:
        ip_protocol: "tcp"
        from_port: 8000
        to_port: 9000
        description: "Ingress Rule for free5GC cluster on IPv6"
        cidr_ipv6: "2600:1f14:3758:ca00::/64"    
      requirements:
        security_group: SampleSecurityGroup1
        source_security_group: SampleSecurityGroup2
```

# AWS.Resource.Import
<a name="node-resource-import"></a>

다음 AWS 리소스를 AWS TNB로 가져올 수 있습니다.
+ VPC
+ 서브넷
+ 라우팅 테이블
+ 인터넷 게이트웨이
+ 보안 그룹

## 구문
<a name="node-resource-import-syntax"></a>

```
tosca.nodes.AWS.Resource.Import
  properties:
    resource\$1type: String
    resource\$1id: String
```

## 속성
<a name="node-resource-import-properties"></a>

 `resource_type`    
 AWS TNB로 가져온 리소스 유형입니다.  
필수 여부: 아니요  
유형: 목록

 `resource_id`    
 AWS TNB로 가져온 리소스 ID입니다.  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-resource-import-example"></a>

```
SampleImportedVPC:
  type: tosca.nodes.AWS.Resource.Import
  properties:
    resource_type: "tosca.nodes.AWS.Networking.VPC"
    resource_id: "vpc-123456"
```

# AWS.Networking.ENI
<a name="node-eni"></a>

네트워크 인터페이스는 VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소입니다. 네트워크 인터페이스에는 서브넷을 기반으로 자동 또는 수동으로 IP 주소가 할당됩니다. Amazon EC2 인스턴스를 서브넷에 배포한 후 네트워크 인터페이스를 연결하거나, Amazon EC2 인스턴스에서 네트워크 인터페이스를 분리하고 해당 서브넷의 다른 Amazon EC2 인스턴스에 다시 연결할 수 있습니다. 디바이스 인덱스는 연결 순서에 따른 위치를 나타냅니다.

## 구문
<a name="node-eni-syntax"></a>

```
tosca.nodes.AWS.Networking.ENI:
  properties:
    device\$1index: Integer
    source\$1dest\$1check: Boolean
    tags: List
  requirements:
    subnet: String
    security\$1groups: List
```

## 속성
<a name="node-eni-properties"></a>

 `device_index`    
디바이스 인덱스는 0보다 커야 합니다.  
필수 여부: 예  
유형: 정수

 `source_dest_check`    
네트워크 인터페이스가 소스/대상 확인을 수행할지 여부를 나타냅니다. `true` 값은 확인이 활성화됨을 의미하며, `false` 값은 확인이 비활성화됨을 의미합니다.  
허용된 값: true, false  
기본값: true  
필수 여부: 아니요  
유형: 부울

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 요구 사항
<a name="node-eni-requirements"></a>

 `subnet`    
[AWS.Networking.Subnet](node-subnet.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `security_groups`    
[AWS.Networking.SecurityGroup](node-networking-security-group.md) 노드입니다.  
필수 여부: 아니요  
유형: 문자열

## 예제
<a name="node-eni-example"></a>

```
SampleENI:
  type: tosca.nodes.AWS.Networking.ENI
  properties:
    device_index: 5
    source_dest_check: true
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing" 
  requirements:
    subnet: SampleSubnet
    security_groups:
      - SampleSecurityGroup01
      - SampleSecurityGroup02
```

# AWS.HookExecution
<a name="node-hook-execution"></a>

수명 주기 후크를 사용하면 인프라 및 네트워크 인스턴스화의 일환으로 자체 스크립트를 실행할 수 있습니다.

## 구문
<a name="node-hook-execution-syntax"></a>

```
tosca.nodes.AWS.HookExecution:
  capabilities:
    execution:
      properties:
        type: String
  requirements:
    definition: String
    vpc: String
```

## 기능
<a name="node-hook-execution-capabilities"></a><a name="node_hook_execution"></a>`execution`

후크 스크립트를 실행하는 후크 실행 엔진의 속성입니다.

 `type`    
후크 실행 엔진 유형입니다.  
필수 여부: 아니요  
유형: 문자열  
가능한 값: `CODE_BUILD` 

## 요구 사항
<a name="node-hook-execution-requirements"></a>

 `definition`    
[AWS.HookDefinition.Bash](node-hook-bash.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `vpc`    
[AWS.Networking.VPC](node-vpc.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-hook-execution-example"></a>

```
SampleHookExecution:
  type: tosca.nodes.AWS.HookExecution
  requirements:
    definition: SampleHookScript
    vpc: SampleVPC
```

# AWS.Networking.InternetGateway
<a name="node-internet-gateway"></a>

 AWS 인터넷 게이트웨이 노드를 정의합니다.

## 구문
<a name="node-internet-gateway-syntax"></a>

```
tosca.nodes.AWS.Networking.InternetGateway:
  capabilities:
    routing:
      properties:
        dest\$1cidr: String
        ipv6\$1dest\$1cidr: String    
  properties:
    tags: List
    egress\$1only: Boolean
  requirements:
    vpc: String
    route\$1table: String
```

## 기능
<a name="node-internet-gateway-capabilities"></a><a name="node_internet_gateway_routing"></a>`routing`

VPC 내의 라우팅 연결을 정의하는 속성입니다. `dest_cidr` 또는 `ipv6_dest_cidr` 속성 중 하나를 포함해야 합니다.

 `dest_cidr`    
대상 일치에 사용되는 IPv4 CIDR 블록입니다. 이 속성은 `RouteTable`에 라우팅을 생성하는 데 사용되며 해당 값은 `DestinationCidrBlock`으로 사용됩니다.  
필수: `ipv6_dest_cidr` 속성을 포함한 경우에는 아니요입니다.  
유형: 문자열

 `ipv6_dest_cidr`    
대상 일치에 사용되는 IPv6 CIDR 블록입니다.  
필수: `dest_cidr` 속성을 포함한 경우에는 아니요입니다.  
유형: 문자열

## 속성
<a name="node-internet-gateway-properties"></a>

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

 `egress_only`    
IPv6 전용 속성입니다. 인터넷 게이트웨이가 송신 전용인지 여부를 나타냅니다. `egress_only`가 true인 경우 `ipv6_dest_cidr` 속성을 정의해야 합니다.  
필수 여부: 아니요  
유형: 부울

## 요구 사항
<a name="node-internet-gateway-requirements"></a>

 `vpc`    
[AWS.Networking.VPC](node-vpc.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `route_table`    
[AWS.Networking.RouteTable](node-route-table.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-internet-gateway-example"></a>

```
Free5GCIGW:
  type: tosca.nodes.AWS.Networking.InternetGateway
  properties:
    egress_only: false
  capabilities:
    routing:
      properties:
        dest_cidr: "0.0.0.0/0"
        ipv6_dest_cidr: "::/0"
  requirements:
    route_table: Free5GCRouteTable
    vpc: Free5GCVPC
Free5GCEGW:
  type: tosca.nodes.AWS.Networking.InternetGateway
  properties:
    egress_only: true
  capabilities:
    routing:
      properties:
        ipv6_dest_cidr: "::/0"
  requirements:
    route_table: Free5GCPrivateRouteTable
    vpc: Free5GCVPC
```

# AWS.Networking.RouteTable
<a name="node-route-table"></a>

라우팅 테이블에는 VPC 또는 게이트웨이 내의 서브넷에서 네트워크 트래픽이 전송되는 위치를 결정하는 라우팅이라는 규칙 세트가 포함되어 있습니다. 라우팅 테이블을 VPC와 연결해야 합니다.

## 구문
<a name="node-route-table-syntax"></a>

```
tosca.nodes.AWS.Networking.RouteTable:
  properties:
    tags: List
  requirements:
    vpc: String
```

## 속성
<a name="node-route-table-properties"></a>

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 요구 사항
<a name="node-route-table-requirements"></a>

 `vpc`    
[AWS.Networking.VPC](node-vpc.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-route-table-example"></a>

```
SampleRouteTable:
  type: tosca.nodes.AWS.Networking.RouteTable
  properties: 
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"
  requirements:
    vpc: SampleVPC
```

# AWS.Networking.Subnet
<a name="node-subnet"></a>

서브넷은 VPC의 IP 주소 범위이며, 전적으로 하나의 가용 영역 내에 상주해야 합니다. 서브넷의 VPC, CIDR 블록, 가용 영역, 라우팅 테이블을 지정해야 합니다. 또한 서브넷이 프라이빗인지 퍼블릭인지도 정의해야 합니다.

## 구문
<a name="node-subnet-syntax"></a>

```
tosca.nodes.AWS.Networking.Subnet:
  properties:
    type: String
    availability\$1zone: String
    cidr\$1block: String
    ipv6\$1cidr\$1block: String
    ipv6\$1cidr\$1block\$1suffix: String        
    outpost\$1arn: String
    tags: List
  requirements:
    vpc: String
    route\$1table: String
```

## 속성
<a name="node-subnet-properties"></a>

 `type`    
이 서브넷에서 시작한 인스턴스가 퍼블릭 IPv4 주소를 수신할지 여부를 지정합니다.  
필수 항목 여부: 예  
유형: String  
가능한 값: `PUBLIC` \$1 `PRIVATE`

 `availability_zone`    
서브넷의 가용 영역입니다. 이 필드는 AWS 리전 내의 AWS 가용 영역(예: 미국 서부`us-west-2`(오레곤))을 지원합니다. 와 같이 가용 영역 내의 AWS 로컬 영역도 지원합니다`us-west-2-lax-1a`.  
필수 항목 여부: 예  
유형: String

 `cidr_block`    
서브넷에 대한 CIDR 블록입니다.  
필수 여부: 아니요  
유형: 문자열

 `ipv6_cidr_block`    
IPv6 서브넷을 생성하는 데 사용되는 CIDR 블록입니다. 이 속성을 포함하는 경우 `ipv6_cidr_block_suffix`를 포함하지 마십시오.  
필수 여부: 아니요  
유형: 문자열

 `ipv6_cidr_block_suffix`    
Amazon VPC를 통해 생성된 서브넷에 대한 IPv6 CIDR 블록의 2자리 16진수 접미사입니다. 다음 형식을 사용합니다. `2-digit hexadecimal::/subnetMask`   
이 속성을 포함하는 경우 `ipv6_cidr_block`를 포함하지 마십시오.  
필수 여부: 아니요  
유형: 문자열

 `outpost_arn`    
서브넷 AWS Outposts 이 생성될의 ARN입니다. AWS Outposts에서 Amazon EKS 자체 관리형 노드를 시작하려는 경우 이 속성을 NSD 템플릿에 추가하세요. 자세한 내용은 *Amazon EKS 사용 설명서*의 [AWS Outposts에 대한 Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts.html)를 참조하세요.  
이 속성을 NSD 템플릿에 추가하는 경우 `availability_zone` 속성 값을 AWS Outposts의 가용 영역으로 설정해야 합니다.  
필수 여부: 아니요  
유형: 문자열

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 요구 사항
<a name="node-subnet-requirements"></a>

 `vpc`    
[AWS.Networking.VPC](node-vpc.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `route_table`    
[AWS.Networking.RouteTable](node-route-table.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-subnet-example"></a>

```
SampleSubnet01:
  type: tosca.nodes.AWS.Networking.Subnet
  properties:
    type: "PUBLIC"
    availability_zone: "us-east-1a"
    cidr_block: "10.100.50.0/24"
    ipv6_cidr_block_suffix: "aa::/64"
    outpost_arn: "arn:aws:outposts:region:accountId:outpost/op-11223344EXAMPLE"
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"
  requirements:
    vpc: SampleVPC
    route_table: SampleRouteTable
         
SampleSubnet02:
  type: tosca.nodes.AWS.Networking.Subnet
  properties:
    type: "PUBLIC"
    availability_zone: "us-west-2b"
    cidr_block: "10.100.50.0/24"
    ipv6_cidr_block: "2600:1f14:3758:ca00::/64"
  requirements:
    route_table: SampleRouteTable
    vpc: SampleVPC
```

# AWS.Deployment.VNFDeployment
<a name="node-vnf-deployment"></a>

네트워크 함수 배포는 관련 인프라 및 애플리케이션을 제공하여 모델링됩니다. [클러스터](#node_vnf_deployment_cluster) 속성은 네트워크 함수를 호스팅할 EKS 클러스터를 지정합니다. [vnfs](#node_vnf_deployment_vnfs) 속성은 배포를 위한 네트워크 함수를 지정합니다. 또한 [pre\$1create](#node_vnf_deployment_pre_create) 및 [post\$1create](#node_vnf_deployment_post_create) 유형의 선택적 수명 주기 후크 작업을 제공하여 인벤토리 관리 시스템 API 호출과 같은 배포 관련 지침을 실행할 수 있습니다.

## 구문
<a name="node-vnf-deployment-syntax"></a>

```
tosca.nodes.AWS.Deployment.VNFDeployment:
  requirements:
    deployment: String
    cluster: String
    vnfs: List
  interfaces:
    Hook:
      pre\$1create: String
      post\$1create: String
```

## 요구 사항
<a name="node-vnf-deployment-requirements"></a>

 `deployment`    
[AWS.Deployment.VNFDeployment](node-vnf.md) 노드입니다.  
필수 여부: 아니요  
유형: 문자열

 `cluster`    
[AWS.Compute.EKS](node-eks.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

 `vnfs`    
[AWS.VNF](node-vnf.md) 노드입니다.  
필수 항목 여부: 예  
유형: String

## 인터페이스
<a name="node-vnf-deployment-interfaces"></a>

### 후크
<a name="node-vnf-deployment-hooks"></a>

수명 주기 후크가 실행되는 단계를 정의합니다.

 `pre_create`    
[AWS.HookExecution](node-hook-execution.md) 노드입니다. 이 후크는 `VNFDeployment` 노드가 배포되기 전에 실행됩니다.  
필수 여부: 아니요  
유형: 문자열

 `post_create`    
[AWS.HookExecution](node-hook-execution.md) 노드입니다. 이 후크는 `VNFDeployment` 노드 배포 후에 실행됩니다.  
필수 여부: 아니요  
유형: 문자열

## 예제
<a name="node-vnf-deployment-example"></a>

```
SampleHelmDeploy:
  type: tosca.nodes.AWS.Deployment.VNFDeployment
  requirements:
    deployment: SampleHelmDeploy2
    cluster: SampleEKS
    vnfs:
      - vnf.SampleVNF
  interfaces:
    Hook:
      pre_create: SampleHook
```

# AWS.Networking.VPC
<a name="node-vpc"></a>

Virtual Private Cloud(VPC)에 대한 CIDR 블록을 지정해야 합니다.

## 구문
<a name="node-vpc-syntax"></a>

```
tosca.nodes.AWS.Networking.VPC:
  properties:
    cidr\$1block: String
    ipv6\$1cidr\$1block: String        
    dns\$1support: String
    tags: List
```

## 속성
<a name="node-vpc-properties"></a>

 `cidr_block`    
VPC에 대한 IPv4 네트워크 범위입니다(CIDR 표기).  
필수 항목 여부: 예  
유형: String

 `ipv6_cidr_block`    
VPC를 생성하는 데 사용된 IPv6 CIDR 블록입니다.  
허용되는 값: `AMAZON_PROVIDED`  
필수 여부: 아니요  
유형: 문자열

 `dns_support`    
VPC에서 시작된 인스턴스가 DNS 호스트 이름을 가져오는지 나타냅니다.  
필수 여부: 아니요  
유형: 부울  
기본값: `false` 

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-vpc-example"></a>

```
SampleVPC:
  type: tosca.nodes.AWS.Networking.VPC
  properties:
    cidr_block: "10.100.0.0/16"
    ipv6_cidr_block: "AMAZON_PROVIDED"
    dns_support: true
    tags:
      - "Name=SampleVPC"
      - "Environment=Testing"
```

# AWS.Networking.NATGateway
<a name="node-nat-gateway"></a>

서브넷을 통해 퍼블릭 또는 프라이빗 NAT 게이트웨이 노드를 정의할 수 있습니다. 퍼블릭 게이트웨이의 경우 탄력적 IP 할당 ID를 제공하지 않으면 AWS TNB는 계정에 탄력적 IP를 할당하고 이를 게이트웨이에 연결합니다.

## 구문
<a name="node-nat-gateway-syntax"></a>

```
tosca.nodes.AWS.Networking.NATGateway:
  requirements:
    subnet: String
    internet\$1gateway: String
  properties:
    type: String
    eip\$1allocation\$1id: String
    tags: List
```

## 속성
<a name="node-nat-gateway-requirements"></a>

 `subnet`    
[AWS.Networking.Subnet](https://docs.aws.amazon.com/tnb/latest/ug/node-subnet.html) 노드 참조입니다.  
필수 항목 여부: 예  
유형: String

 `internet_gateway`    
[AWS.Networking.InternetGateway](https://docs.aws.amazon.com/tnb/latest/ug/node-internet-gateway.html) 노드 참조입니다.  
필수 항목 여부: 예  
유형: String

## 속성
<a name="node-nat-gateway-properties"></a>

 `type`    
게이트웨이가 퍼블릭인지 아니면 프라이빗인지를 나타냅니다.  
허용되는 값: `PRIVATE`, `PUBLIC`   
필수 항목 여부: 예  
유형: String

 `eip_allocation_id`    
탄력적 IP 주소의 할당을 나타내는 ID입니다.  
필수 여부: 아니요  
유형: 문자열

 `tags`    
리소스에 연결할 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-nat-gateway-example"></a>

```
Free5GCNatGateway01:
  type: tosca.nodes.AWS.Networking.NATGateway
    requirements:
       subnet: Free5GCSubnet01
       internet_gateway: Free5GCIGW
    properties:
       type: PUBLIC
       eip_allocation_id: eipalloc-12345
```

# AWS.Networking.Route
<a name="node-route"></a>

대상 라우팅을 NAT 게이트웨이에 대상 리소스로 연결하고 해당 라우팅을 연결된 라우팅 테이블에 추가하는 라우팅 노드를 정의할 수 있습니다.

## 구문
<a name="node-route-syntax"></a>

```
tosca.nodes.AWS.Networking.Route:
  properties:
    dest\$1cidr\$1blocks: List          
  requirements:
    nat\$1gateway: String
    route\$1table: String
```

## 속성
<a name="node-route-properties"></a>

 `dest_cidr_blocks`    
대상 리소스에 대한 대상 IPv4 경로 목록입니다.  
필수 여부: 예  
유형: 목록  
멤버 유형: 문자열

## 요구 사항
<a name="node-route-requirements"></a>

 `nat_gateway`    
[AWS.Networking.NATGateway](https://docs.aws.amazon.com/tnb/latest/ug/node-nat-gateway.html) 노드 참조입니다.  
필수 항목 여부: 예  
유형: String

 `route_table`    
[AWS.Networking.RouteTable](https://docs.aws.amazon.com/tnb/latest/ug/node-route-table.html) 노드 참조입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="node-route-example"></a>

```
Free5GCRoute:
  type: tosca.nodes.AWS.Networking.Route
  properties: 
    dest_cidr_blocks: 
      - 0.0.0.0/0
      - 10.0.0.0/28    
  requirements:
    nat_gateway: Free5GCNatGateway01
    route_table: Free5GCRouteTable
```

# AWS.Store.SSMParameters
<a name="node-ssm"></a>

 AWS TNB를 통해 SSM 파라미터를 생성할 수 있습니다. 생성하는 SSM 파라미터는 SSM에서 생성되며 AWS TNB 네트워크 인스턴스 ID 접두사가 붙습니다. 이렇게 하면 동일한 NSD 템플릿을 사용하여 여러 인스턴스를 인스턴스화하고 업그레이드할 때 파라미터 값이 재정의되지 않습니다.

## 구문
<a name="node-ssm-syntax"></a>

```
tosca.nodes.AWS.Store.SSMParameters
  properties:
    parameters:
      name: String
      value: String         
    tags: List
```

## 속성
<a name="node-ssm-properties"></a>파라미터

 `name`    
ssm 속성의 이름입니다. 다음 형식을 사용합니다. `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+$`   
각 파라미터의 이름은 256자 미만이어야 합니다.  
필수 항목 여부: 예  
유형: String

 `value`    
ssm 속성의 값입니다. 다음 형식 중 하나를 사용합니다.  
+ 참조가 없는 값의 경우: `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+$`
+ 정적 참조의 경우: `^\$\{[a-zA-Z0-9]+\.(properties|capabilities|requirements)(\.([a-zA-Z0-9\-_]+))+\}$`
+ 동적 참조의 경우: `^\$\{[a-zA-Z0-9]+\.(name|id|arn)\}$`
각 파라미터의 값은 4KB 미만이어야 합니다.  
필수 항목 여부: 예  
유형: String

 `tags`    
SSM 속성에 연결할 수 있는 태그입니다.  
필수 여부: 아니요  
유형: 목록

## 예제
<a name="node-ssm-example"></a>

```
SampleSSM
    type: tosca.nodes.AWS.Store.SSMParameters
    properties:
        parameters:
            - name: "Name1"
              value: "Value1"
            - name: "EKS_VERSION"
              value: "${SampleEKS.properties.version}"
            - name: "VPC_ID"
              value: "${SampleVPC.id}
            - name: "REGION"
              value: "${AWS::Region}
        tags:
            - "tagKey=tagValue"
```

# 공통 노드
<a name="common-nodes"></a>

NSD 및 VNFD에 대한 노드를 정의합니다.
+ [AWS.HookDefinition.Bash](node-hook-bash.md)

# AWS.HookDefinition.Bash
<a name="node-hook-bash"></a>

에서 an AWS HookDefinition을 정의합니다`bash`.

## 구문
<a name="hookdefinition-syntax"></a>

```
tosca.nodes.AWS.HookDefinition.Bash:
  properties:
    implementation: String
    environment\$1variables: List
    execution\$1role: String
```

## 속성
<a name="_properties"></a>

 `implementation`    
후크 정의의 상대 경로입니다. 형식은 `./hooks/script_name.sh`여야 합니다.  
필수 항목 여부: 예  
유형: String

 `environment_variables`    
후크 bash 스크립트의 환경 변수입니다. 형식:를 다음 정규식 패턴과 `envName=envValue` 함께 사용합니다.  
+ 참조가 없는 값의 경우: `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+=[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+$`
+ 정적 참조의 경우: `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+=\$\{[a-zA-Z0-9]+\.(properties|capabilities|requirements)(\.([a-zA-Z0-9\-_]+))+\}$`
+ 동적 참조의 경우: `^[a-zA-Z0-9]+[a-zA-Z0-9\-\_]*[a-zA-Z0-9]+=\$\{[a-zA-Z0-9]+\.(name|id|arn)\}$`
`envName=envValue` 값이 다음 기준을 충족해야 합니다.  
+ 공백은 사용하지 않습니다.
+ **envName**은 문자(A-Z 또는 a-z) 또는 숫자(0-9)로 시작합니다.
+ 환경 변수 이름을 다음과 같은 AWS TNB 예약어로 시작하지 않습니다(대/소문자를 구분하지 않음).
  + CODEBUILD
  + TNB
  + HOME
  + AWS
+ **envName**과 **envValue**에는 원하는 수의 문자(A\$1Z 또는 a\$1z), 숫자 (0\$19) 및 특수 문자(`-`, `_`)를 사용할 수 있습니다.
+ 각 환경 변수(각각 **envName**=**envValue**)는 128자 미만이어야 합니다.
예시: `A123-45xYz=Example_789`  
필수 여부: 아니요  
유형: 목록

 `execution_role`    
후크를 실행하는 역할입니다.  
필수 항목 여부: 예  
유형: String

## 예제
<a name="hookdefinition-example"></a>

```
SampleHookScript:
  type: tosca.nodes.AWS.HookDefinition.Bash
  properties:
    implementation: "./hooks/myhook.sh"
    environment_variables:
      - "variable01=value01"
      - "variable02=value02"
    execution_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleHookPermission"
```