Amazon EFS 볼륨과 Amazon ECS를 함께 사용하기 위한 모범 사례
Amazon EFS 볼륨과 Amazon ECS를 함께 사용하기 위한 모범 사례
Amazon EFS를 Amazon ECS와 함께 사용할 때 권장되는 보안·접근 제어, 성능, 처리량, 비용, 데이터 보호 모범 사례를 알아봐요.
출처: 문서
본문
Amazon EFS를 Amazon ECS와 함께 사용할 때 다음 모범 사례 권장 사항을 참고하세요.
Amazon EFS 볼륨의 보안 및 접근 제어
Amazon EFS는 Amazon EFS 파일 시스템에 저장된 데이터가 안전하고 필요한 애플리케이션만 접근할 수 있도록 하는 접근 제어 기능을 제공해요. 저장 데이터(at rest)와 전송 중(in-transit) 암호화를 활성화해 데이터를 보호할 수 있어요. 자세한 내용은 Amazon Elastic File System User Guide의 Data encryption in Amazon EFS 참고.
데이터 암호화 외에도 Amazon EFS를 사용해 파일 시스템에 대한 접근을 제한할 수 있어요. EFS에서 접근 제어를 구현하는 방법은 세 가지가 있어요.
보안 그룹 (Security groups) — Amazon EFS 마운트 대상(mount targets)을 사용하면 네트워크 트래픽을 허용·거부하는 보안 그룹을 구성할 수 있어요. Amazon EFS에 연결된 보안 그룹을 구성해 Amazon ECS 인스턴스에 연결된 보안 그룹(또는 awsvpc 네트워크 모드를 사용할 때는 Amazon ECS 태스크)에서 오는 NFS 트래픽(포트 2049)을 허용할 수 있어요.
IAM — IAM을 사용해 Amazon EFS 파일 시스템에 대한 접근을 제한할 수 있어요. 구성하면 Amazon ECS 태스크는 EFS 파일 시스템을 마운트하려면 파일 시스템 접근을 위한 IAM 역할이 필요해요. 자세한 내용은 Amazon Elastic File System User Guide의 Using IAM to control file system data access 참고. IAM 정책은 클라이언트가 Amazon EFS 파일 시스템에 연결할 때 TLS를 사용하도록 요구하는 것 같은 사전 정의된 조건을 적용할 수도 있어요. 자세한 내용은 Amazon Elastic File System User Guide의 Amazon EFS condition keys for clients 참고.
Amazon EFS access points — Amazon EFS access points는 Amazon EFS 파일 시스템에 대한 애플리케이션별 진입점이에요. access point를 사용해 해당 access point를 통한 모든 파일 시스템 요청에 대해 사용자의 POSIX 그룹을 포함한 사용자 ID를 적용할 수 있어요. access point는 파일 시스템의 다른 루트 디렉터리를 적용할 수도 있어요. 그래서 클라이언트는 지정된 디렉터리나 그 하위 디렉터리의 데이터에만 접근할 수 있어요.
IAM 정책 (IAM policies)
IAM 정책을 사용해 Amazon EFS 파일 시스템에 대한 접근을 제어할 수 있어요. 파일 시스템 정책을 사용해 파일 시스템에 접근하는 클라이언트에 대해 다음 액션을 지정할 수 있어요:
| 액션 | 설명 |
|---|---|
elasticfilesystem:ClientMount |
파일 시스템에 읽기 전용 접근을 제공해요. |
elasticfilesystem:ClientWrite |
파일 시스템에 쓰기 권한을 제공해요. |
elasticfilesystem:ClientRootAccess |
파일 시스템에 접근할 때 root 사용자 사용을 제공해요. |
각 액션은 정책에 지정해야 해요. 정책은 다음과 같이 정의할 수 있어요:
- Client-based - 태스크 역할에 정책을 연결해요. 태스크 정의를 만들 때 IAM 권한 부여 옵션을 설정해요.
- Resource-based - Amazon EFS 파일 시스템에 정책을 연결해요. 리소스 기반 정책이 없으면 기본적으로 파일 시스템 생성 시 모든 주체(
*)에게 접근이 부여돼요.
IAM 권한 부여 옵션을 설정하면 태스크 역할과 연결된 정책과 Amazon EFS 리소스 기반 정책을 병합해요. IAM 권한 부여 옵션은 태스크 ID(태스크 역할)를 정책과 함께 Amazon EFS에 전달해요. 이를 통해 Amazon EFS 리소스 기반 정책이 정책에 지정된 IAM 사용자나 역할에 대한 컨텍스트를 가질 수 있어요. 이 옵션을 설정하지 않으면 Amazon EFS 리소스 수준 정책은 IAM 사용자를 "anonymous"로 식별해요.
최대 보안을 위해 Amazon EFS 파일 시스템에 세 가지 접근 제어를 모두 구현하는 것을 고려해 보세요. 예를 들어 Amazon EFS 마운트 지점에 연결된 보안 그룹을 컨테이너 인스턴스나 Amazon ECS 태스크와 연결된 보안 그룹의 인그레스 NFS 트래픽만 허용하도록 구성할 수 있어요. 또한 연결이 허용된 보안 그룹에서 시작되더라도 파일 시스템 접근에 IAM 역할을 요구하도록 Amazon EFS를 구성할 수 있어요. 마지막으로 Amazon EFS access points를 사용해 POSIX 사용자 권한을 적용하고 애플리케이션의 루트 디렉터리를 지정할 수 있어요.
access point를 사용해 Amazon EFS 파일 시스템을 마운트하는 방법을 보여주는 태스크 정의 스니펫:
"volumes": [
{
"efsVolumeConfiguration": {
"fileSystemId": "<fs-1234>",
"authorizationConfig": {
"accessPointId": "<fsap-1234>",
"iam": "ENABLED"
},
"transitEncryption": "ENABLED",
"rootDirectory": ""
},
"name": "<my-filesystem>"
}
]
Amazon EFS 볼륨 성능
Amazon EFS는 General Purpose와 Max I/O 두 가지 성능 모드를 제공해요. General Purpose는 콘텐츠 관리 시스템과 CI/CD 도구 같은 지연 시간에 민감한 애플리케이션에 적합해요. 반면 Max I/O 파일 시스템은 데이터 분석, 미디어 처리, 머신 러닝 같은 워크로드에 적합해요. 이러한 워크로드는 수백 또는 수천 개의 컨테이너에서 병렬 작업을 수행해야 하며 가능한 최고의 총 처리량과 IOPS가 필요해요. 자세한 내용은 Amazon Elastic File System User Guide의 Amazon EFS performance modes 참고.
일부 지연 시간에 민감한 워크로드는 Max I/O 성능 모드가 제공하는 더 높은 I/O 수준과 General Purpose 성능 모드가 제공하는 더 낮은 지연 시간을 모두 필요로 해요. 이 유형의 워크로드에는 General Purpose 성능 모드의 파일 시스템을 여러 개 만드는 것을 권장해요. 그렇게 하면 워크로드와 애플리케이션이 지원할 수 있는 한 이 모든 파일 시스템에 애플리케이션 워크로드를 분산할 수 있어요.
Amazon EFS 볼륨 처리량
모든 Amazon EFS 파일 시스템에는 Provisioned Throughput을 사용하는 파일 시스템의 프로비저닝된 처리량 양 또는 Bursting Throughput을 사용하는 파일 시스템의 EFS Standard 또는 One Zone 스토리지 클래스에 저장된 데이터 양에 의해 결정되는 계량 처리량(metered throughput)이 연관돼 있어요. 자세한 내용은 Amazon Elastic File System User Guide의 Understanding metered throughput 참고.
Amazon EFS 파일 시스템의 기본 처리량 모드는 버스팅(bursting) 모드예요. 버스팅 모드에서는 파일 시스템이 성장함에 따라 파일 시스템에 사용 가능한 처리량이 확장·축소돼요. 파일 기반 워크로드는 일반적으로 급증하여 한동안 높은 수준의 처리량을 요구하고 나머지 시간에는 낮은 수준의 처리량을 요구하기 때문에, Amazon EFS는 한동안 높은 처리량 수준을 허용하도록 버스트하도록 설계됐어요. 또한 많은 워크로드가 읽기 중심이라 읽기 작업은 다른 NFS 작업(예: 쓰기)과 1:3 비율로 계량돼요.
모든 Amazon EFS 파일 시스템은 Amazon EFS Standard 또는 Amazon EFS One Zone 스토리지 1TB마다 일관된 기준 성능 50 MB/s를 제공해요. 모든 파일 시스템(크기와 무관)은 100 MB/s까지 버스트할 수 있어요. 1TB 이상의 EFS Standard 또는 EFS One Zone 스토리지가 있는 파일 시스템은 TB마다 100 MB/s까지 버스트할 수 있어요. 읽기 작업은 1:3 비율로 계량되므로 읽기 처리량 TiB당 최대 300 MiB/s를 구동할 수 있어요. 파일 시스템에 데이터를 추가하면 파일 시스템에 사용 가능한 최대 처리량은 Amazon EFS Standard 스토리지 클래스의 스토리지에 따라 자동으로 선형적으로 확장돼요. 저장된 데이터 양으로 달성할 수 있는 것보다 더 많은 처리량이 필요하면 워크로드가 요구하는 특정 양으로 Provisioned Throughput을 구성할 수 있어요.
파일 시스템 처리량은 파일 시스템에 연결된 모든 Amazon EC2 인스턴스가 공유해요. 예를 들어 100 MB/s까지 버스트할 수 있는 1TB 파일 시스템은 단일 Amazon EC2 인스턴스에서 100 MB/s를 구동할 수 있고, 10개의 인스턴스는 각각 10 MB/s를 구동할 수 있어요. 자세한 내용은 Amazon Elastic File System User Guide의 Amazon EFS performance 참고.
Amazon EFS 볼륨 비용 최적화
Amazon EFS는 사용자를 위해 스토리지 확장을 간소화해요. Amazon EFS 파일 시스템은 데이터를 추가하면 자동으로 성장해요. 특히 Amazon EFS Bursting Throughput 모드에서는 표준 스토리지 클래스의 파일 시스템 크기가 성장함에 따라 Amazon EFS의 처리량이 확장돼요. EFS 파일 시스템에 프로비저닝된 처리량의 추가 비용을 지불하지 않고 처리량을 개선하려면 여러 애플리케이션이 하나의 Amazon EFS 파일 시스템을 공유할 수 있어요. Amazon EFS access points를 사용하면 공유 Amazon EFS 파일 시스템에서 스토리지 격리를 구현할 수 있어요. 이렇게 하면 애플리케이션이 여전히 같은 파일 시스템을 공유하지만, 권한을 부여하지 않는 한 서로의 데이터에 접근할 수 없어요.
데이터가 성장하면 Amazon EFS는 자주 접근하지 않는 파일을 낮은 스토리지 클래스로 자동 이동하는 데 도움을 줘요. Amazon EFS Standard-Infrequent Access (IA) 스토리지 클래스는 매일 접근하지 않는 파일의 스토리지 비용을 줄여줘요. 이는 Amazon EFS가 제공하는 고가용성, 고내구성, 탄력성, POSIX 파일 시스템 접근을 희생하지 않고 이루어져요. 자세한 내용은 Amazon Elastic File System User Guide의 EFS storage classes 참고.
자주 접근하지 않는 파일을 Amazon EFS IA 스토리지로 이동하여 자동으로 비용을 절약하도록 Amazon EFS 수명 주기 정책(lifecycle policies) 사용을 고려하세요. 자세한 내용은 Amazon Elastic File System User Guide의 Amazon EFS lifecycle management 참고.
Amazon EFS 파일 시스템을 만들 때 Amazon EFS가 여러 가용 영역에 데이터를 복제(Standard)할지, 단일 가용 영역 내에서 중복 저장(One Zone)할지 선택할 수 있어요. Amazon EFS One Zone 스토리지 클래스는 Amazon EFS Standard 스토리지 클래스에 비해 상당한 비용을 절감할 수 있어요. 다중 AZ 복원력이 필요 없는 워크로드에는 Amazon EFS One Zone 스토리지 클래스 사용을 고려하세요. 자주 접근하지 않는 파일을 Amazon EFS One Zone-Infrequent Access로 이동하면 Amazon EFS One Zone 스토리지 비용을 더 줄일 수 있어요. 자세한 내용은 Amazon EFS Infrequent Access 참고.
Amazon EFS 볼륨 데이터 보호
Amazon EFS는 Standard 스토리지 클래스를 사용하는 파일 시스템의 경우 여러 가용 영역에 데이터를 중복 저장해요. Amazon EFS One Zone 스토리지 클래스를 선택하면 데이터는 단일 가용 영역 내에서 중복 저장돼요. 또한 Amazon EFS는 주어진 연도에 99.999999999%(11 nine)의 내구성(durability)을 제공하도록 설계됐어요.
모든 환경과 마찬가지로 백업을 보유하고 우발적 삭제에 대한 안전 장치를 구축하는 것이 모범 사례예요. Amazon EFS 데이터의 경우 이 모범 사례에는 AWS Backup을 사용한 정상 기능·정기적으로 테스트되는 백업이 포함돼요. Amazon EFS One Zone 스토리지 클래스를 사용하는 파일 시스템은 이 기능을 비활성화하기로 선택하지 않으면 파일 시스템 생성 시 기본적으로 파일을 자동 백업하도록 구성돼요. 자세한 내용은 Amazon Elastic File System User Guide의 Backing up EFS file systems 참고.