

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# Fargate 포드 구성 세부 정보 이해
<a name="fargate-pod-configuration"></a>

이 섹션에서는 AWS Fargate에서 Kubernetes 포드를 실행하기 위한 몇 가지 고유한 포드 구성 세부 정보에 대해 설명합니다.

## 포드 CPU 및 메모리
<a name="fargate-cpu-and-memory"></a>

Kubernetes를 사용하면 포드의 각 컨테이너에 할당되는 요청, 즉 최소량의 vCPU 및 메모리 리소스를 정의할 수 있습니다. 최소한 각 포드에 대해 요청된 리소스를 컴퓨팅 리소스에서 사용할 수 있도록 Kubernetes에서 포드를 예약합니다. 자세한 내용은 Kubernetes 설명서의 [컨테이너의 컴퓨팅 리소스 관리](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)를 참조하십시오.

**참고**  
Amazon EKS Fargate는 노드당 하나의 포드만 실행하므로 리소스가 더 적은 경우 포드를 제거하는 시나리오가 발생하지 않습니다. 모든 Amazon EKS Fargate 포드는 보장된 우선순위로 실행되므로 요청된 CPU와 메모리는 모든 컨테이너의 한도와 같아야 합니다. 자세한 내용은 쿠버네티스 문서의 [Configure Quality of Service for Pods](https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/)를 참조하세요.

포드가 Fargate에 예약되면 포드 사양 내의 vCPU 및 메모리 예약에 따라 포드에 프로비저닝할 CPU 및 메모리 양이 결정됩니다.
+ Init 컨테이너의 최대 요청은 Init 요청 vCPU 및 메모리 요구 사항을 결정하는 데 사용됩니다.
+ 장기 실행 요청 vCPU 및 메모리 요구 사항을 결정하기 위해 모든 장기 실행 컨테이너에 대한 요청이 추가됩니다.
+ 포드에 사용할 vCPU 및 메모리 요청에 대해서는 이전의 두 값 중 큰 값이 선택됩니다.
+ Fargate는 필요한 Kubernetes 구성 요소(`kubelet`, `kube-proxy` 및 `containerd`)에 대한 각 포드의 메모리 예약에 256MB를 추가합니다.

Fargate는 포드가 실행해야 하는 리소스를 항상 보유하도록 vCPU 및 메모리 요청의 합계와 가장 일치하는 다음의 컴퓨팅 구성으로 올림 처리합니다.

vCPU 및 메모리 조합을 지정하지 않으면 사용 가능한 가장 작은 조합(.25 vCPU 및 0.5GB 메모리)이 사용됩니다.

아래 표에는 Fargate에서 실행되는 포드에 사용할 수 있는 vCPU 및 메모리 조합이 나와 있습니다.


| vCPU 값 | 메모리 값 | 
| --- | --- | 
|  .25 vCPU  |  0.5GB, 1GB, 2GB  | 
|  .5 vCPU  |  1GB, 2GB, 3GB, 4GB  | 
|  1 vCPU  |  2GB, 3GB, 4GB, 5GB, 6GB, 7GB, 8GB  | 
|  2 vCPU  |  4\$116GB(1GB 증분)  | 
|  4 vCPU  |  8\$130GB(1GB 증분)  | 
|  8 vCPU  |  16\$160GB(4GB 단위)  | 
|  16 vCPU  |  32\$1120GB(8GB 단위)  | 

Kubernetes 구성 요소에 예약된 추가 메모리로 인해 요청된 것보다 많은 vCPU를 사용하는 Fargate 태스크가 프로비저닝될 수 있습니다. 예를 들어 1개의 vCPU 및 8GB 메모리에 대한 요청의 경우 해당 메모리 요청에 256MB가 추가되며, vCPU 1개와 9GB 메모리를 사용하는 태스크가 없으므로 2개의 vCPU 및 9GB 메모리로 Fargate 태스크를 프로비저닝합니다.

Fargate에서 실행 중인 포드의 크기와 `kubectl get nodes`를 사용하여 Kubernetes가 보고하는 노드 크기 사이에는 상관 관계가 없습니다. 보고된 노드 크기는 대개 포드의 용량보다 큽니다. 다음 명령을 사용하여 포드 용량을 확인할 수 있습니다. *default*를 포드의 네임스페이스로, *pod-name*을 포드의 이름으로 바꿉니다.

```
kubectl describe pod --namespace default pod-name
```

예제 출력은 다음과 같습니다.

```
[...]
annotations:
    CapacityProvisioned: 0.25vCPU 0.5GB
[...]
```

`CapacityProvisioned` 주석은 적용된 포드 용량을 나타내며 Fargate에서 실행되는 포드의 비용을 결정합니다. 이러한 컴퓨팅 구성에 대한 요금 정보는 [AWS Fargate 요금](https://aws.amazon.com/fargate/pricing/)을 참조하세요.

## Fargate 스토리지
<a name="fargate-storage"></a>

Fargate에서 실행되는 포드는 수동 드라이버 설치 단계 없이 Amazon EFS 파일 시스템을 자동으로 탑재합니다. Fargate 노드에는 동적 영구 볼륨 프로비저닝을 사용할 수 없지만 고정적인 프로비저닝은 사용할 수 있습니다. 자세한 내용은 GitHub에서 [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/docs/README.md)를 참조하세요.

프로비저닝이 완료되면 Fargate에서 실행되는 각 포드는 기본적으로 20GiB의 임시 스토리지를 받습니다. 이 유형의 스토리지는 포드가 중지된 후에 삭제됩니다. Fargate에서 시작된 새 포드에는 임시 스토리지 볼륨의 암호화가 기본적으로 활성화되어 있습니다. 임시 포드 스토리지는 AWS Fargate 관리형 키를 사용하여 AES-256 암호화 알고리즘으로 암호화됩니다.

**참고**  
Fargate에서 실행되는 Amazon EKS 포드의 기본 가용 스토리지는 20GiB 미만입니다. 이는 일부 공간을 `kubelet` 및 포드 내부에 로드되는 기타 Kubernetes 모듈에서 사용하기 때문입니다.

임시 스토리지의 총량은 최대 175GiB까지 높일 수 있습니다. Kubernetes를 사용하여 크기를 구성하려면 포드의 각 컨테이너에 대한 `ephemeral-storage` 리소스 요청을 지정합니다. Kubernetes 가 포드를 예약할 때 이는 각 포드에 대한 리소스 요청의 합계가 Fargate 태스크의 용량보다 작도록 보장합니다. 자세한 내용은 쿠버네티스 문서의 [포드 및 컨테이너 리소스 관리](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/)를 참조하세요.

Amazon EKS Fargate는 시스템 사용 목적으로 요청한 것보다 더 많은 임시 스토리지를 프로비저닝합니다. 예를 들어, 100GiB를 요청하면 Fargate 작업에 115GiB의 임시 스토리지가 프로비저닝됩니다.