
1. Amazon EFS(Elastic File System)
- Managed NFS (network file system) that can be mounted on many EC2
- EFS works with EC2 instances in multi-AZ
- Highly available, scalable, expensive (3x gp2), pay per use

- Use cases: content management, web serfing, data sharing, Wordpress
- Uses NFSv4.1 protocol
- Uses security group to control access to EFS
- Compatible with Linux based AMI (not Windows)
- Encryption at rest using KMS
- POSIX file system (~Linux) that has a standard file API
- File system scales automatically, pay-per-use, no capacity planning! (by GB)
2. EFS Performance & Storage Classes
▶ EFS Scale
- 1000s of concurrent NFS clients, 10 GB+ /s throughput
- Grow to Petabyte-xcale network file system, automatically
▶ Performance Mode (set at EFS creation time)
- General Purpose (default) - latency-sensitive use cases (web server, CMS, etc...)
- Max I/O - higher latency, throughput, highly parallel (big data, media processing)
▶ Throughput Mode
- Bursting - 1 TB = 50MiB/s + burst of up to 100MiB/s
- Provisioned - set your throughput regardless of storage size, ex: 1 GiB/s for 1 TB storage
- Elastic - automatically scales throughput up or down based on your workloads (Up to 3GiB/s for reads and 1 GiB/s for writes / Used for unpredictable workloads)
3. EFS - Storage Classes

▶ Storage Tiers (lifecycle management feature - move file after N days)
- Standard: for frequently accessed files
- Infrequent access(EFS-IA): cost to retrieve files, lower price to store
- Archive: rarely accessed data (few times each year), 50% cheaper
- Implement lifecycle policies to move files between storage tiers
▶ Availability and duravility
- Standard: Multi-AZ, great for prod
- One Zone: One AZ, great for dev, backup enabled by default, compatible with IA (EFS One Zone - IA)
▶ Over 90% in cost savings
4. EFS 실습
아,,,, 실습 하려고 하니까 이제 AWS 루트 계정(root account)으로 로그인 하려면 MFA를 필수 설정이네...
분명 몇일 전까지만 해도 스킵 할 수 있었는데 보안 강화가 되었는지 이제부터 MFA 설정을 강제 당하게 되었습니다^_^
IAM 사용자 계정 Account ID (12 digits) or account alias 를 분실함 ㅋㅋㅋㅋㅋㅋ ㅠㅠ
Root 계정 사용해야만 로그인이 된다구 합니다....

4-1. Create File System




[File system type]
Regional
- 여러 가용 영역에 걸쳐 한 지역 내에 파일 시스템을 제공하는 옵션 - 데이터의 가용성과 내구성을 매우 높게 유지할 수 있다.
One Zone
- 비용을 절감하고 싶다면 특정 AZ 선택
- 개발 환경에서는 좋지만 프로덕션 환경에서는 가용영역이 사용할 수 없게 되면 데이터에 액세스 할 수 없게 되므로추천하지 않음

[Automatic backups]
- 자동 저장 옵션을 활성화 하는 것이 좋다.

[Lifecycle management]
여러 스토리지 계층으로 데이터를 이동해서 비용을 절감할 수 있다.
Transition into Infrequent Access
- 예를 들어 30이 동안 파일에 액세스 하지 않은 경우 IA로 이동하라고 설정할 수 있다. 파일에 액세스 하는 경우를 제외하고는 더 저렴하게 사용할 수 있다. 즉, 30일이 지나면 파일에 거의 액세스 할 일이 없을 때 선택하는 옵션이다.
Transition into Archive
- 90일 동안 파일에 액세스 하지 않은 경우 스토리지 클래스로서 훨씬 저렴한 아카이브로 파일을 옮기게 설정할 수 있다.
Transition into Standard
- 기존에 저비용 스토리지(예: Glacier, Nearline, Coldline 등)에 저장된 데이터를 다시 Standard(표준 스토리지) 클래스로 전환할 때 사용하는 옵션이다. 훨씬 더 많이 재사용될 것이라고 가정할 경우에 사용하는 옵션이다.

[Performance settings]
성능 설정에는 Throughput mode라는 처리량 모드가 있으며 일반적으로 세 가지 옵션이 있다.
Enhanced와 Bursting모드로 나뉘는데, Enhanced 에는 다시 Elastic이랑 Provisioned 모드가 있다.
즉 Elastic, Provisioned, Bursting 모드 중 한 개를 선택 가능하다.
Bursting
실제 사용중인 스토리지 용량에 따라 처리량을 확장하여 조금 더 늘릴 수 있는 방법이다. 따라서 1GB가 있는 경우 1GB를 기준으로 처리량을 얻게 된다. 1TB의 경우 더 많은 스토리지를 사용하기 때문에 처리량이 높아진다.
Elastic(Recommended)
EFS 파일 시스템의 크기에 관계 없이 필요한 모든 IO를 제공하고 자동으로 확장 할 수 있는 경우이다. 그리고 사용한 만큼만 비용을 지불하게 된다. 따라서 예를 들어 초당 0MB 에서 초당 100MB로 순식간에 확장 가능하다. 즉, 예측할 수 없는 IO가 발생하는 workload가 있는 경우에 최고의 선택이다. 설정에 대해서 생각할 필요가 없기 때문에 이 모드가 권장된다.
Provisioned
필요한 처리량을 미리 알고 있을 때 사용하는 옵션. 확실히 초당 100MB인 걸 알 때 100MB 를 입력해서 사용하면 되고, 초당 300MB의 버스팅 제한이 있다. 또 처리량을 미리 프로비저닝 하기 때문에 비용도 미리 지불해야 한다.

[Additional seettings]
General Purpose(Recommended) - 범용 옵션
- Elastic 성능모드 선택한 경우 유일한 옵션
- 하지만 버스팅을 사용하거나 프로비저닝 하는 경우 두 가지 옵션 중 선택 가능
- 범용모드는 고성능 및 지연 시간에 민감한 애플리케이션에 적합함 (지연시간이 매우 짧음)
Max I/O 모드
- 고도로 병렬화된 워크로드에 적합하고 더 높은 지연 시간을 견딜 수 있다.
- 즉, 지연 시간이 길어지는 대신 더 많은 I/O를 얻을 수 있는 옵션이다.
- 빅 데이터 유형의 설정에 적합하다.

[Network access]
VPC
- default 로 설정
Mount targets
- EFS 파일 시스템에 세 개의 AZ를 선택 가능
- 각 AZ가 서브넷에 지정되는데 기본 서브넷으로 두기
- IP는 자동으로 설정되고 각각에 보안그룹을 지정한다
- ⭐EFS를 위해 특정 보안 그룹을 생성해야 한다.
📌 보안그룹 생성하기
EC2 대시보드 > Security Groups > Create security group

인바운드 규칙은 스킵


생성 완료


생성된 File System 을 살펴 보면 6.00 KiB가 사용되고 있는 걸 확인 가능하다.
EFS 파일 시스템은 사용한 스토리지에 대한 비용만을 지불하므로 현재까지는 비용이 없다.
4-2. Mount EFS on EC2 Instance
EC2 Instance A 생성하기
Key pair name - required 부분을 Proceed without a key pair > 0 x File system 옆 Edit > You currently don't have file systems on this instance. You need to select a subnet before you can add a file system. > Scroll back up > Network settings > Edit > Subnet 선택 > 다시 File systems > EFS 선택 > Add shared file system > File system 과 Mount point 가 자동으로 설정됨






EC2 Instance B 생성하기
Instance A와 다른subnet (AZ)과 security group 설정







4-3. EFS 콘솔의 Network 탭
각 가용영역에 여러 보안 그룹이 있는 것을 확인 할 수 있다. 우리는 efs-demo만 생성했지만 실제로는 EC2 콘솔이 우리 대신 생성해서 EFS 파일 시스템에 연결한 것이다.

4-4. EC2 인스턴스의 Security Groups 탭
EC2 대시보드의 Security Groups 탭에서 sg-067907f7b585f1cc0 - efs-sg-2를 선택하고 Inbound rules 탭에 가면 인바운드 규칙에 NFS 프로토콜 유형과 2049 포트를 허용한 것을 확인 가능 하다.



인바운드 규칙의 소스가 sg-c5f8c1bf7bc347eb인데 EC2 Instance B에 연결된 보안그룹이다. 이 보안그룹이 Instance B의 EFS 파일 시스템 접근을 허용한다. efs-sg-2라는 보안그룹이 EFS 파일 시스템과 연결되어 있기 때문이다.
4-5. Instance A와 B에서 EC2 Instance Connect 하기
EC2 대시보드 > Instance A 선택 > Connect > EC2 Instance Connect 탭 > Connect to Instance > Connect



먼저 Instnace A ECS 터미널에서 아래 명령어로 hello.txt 라는 파일을 생성했다.
ls /mnt/efs/fs1/
sudo su
echo 'hello world' > /mnt/efs/fs1/hello.txt
cat /mnt/efs/fs1/hello.txt

이제 Instance B의 ECS 콘솔로 가서 같은 명령어 입력 해 주면 해당 위치 안에 같은 내용을 담은 hello.txt 라는 파일이 이미 존재하는 것을 확인할 수 있다.
ls /mnt/efs/fs1
cat /mnt/efs/fs1/hello.txt

즉, 두 EC2 인스턴스 모두 EFS 파일 시스템이 네트워크 드라이브로 마운트 된 것을 확인 가능하다.
AZ는 다르지만 같은 EFS를 공유하고 있다는 것이다.
실습 끝!
- 이제 EC2 인스턴스 선택하고 Terminate instance로 종료하기
- EFS 파일 시스템 삭제하기 (파일시스템 아이디 받아적기)
- Security Groups 탭에서 데모 중에 생성된 추가 보안그룹들 삭제하기




🐦TMI
📌 ECS 터미널(Cloud Shell, EC2 SSH)에서 복사하기 붙여넣기 단축키
터미널 환경에서는 기본 Ctrl + C가 프로세스 종료 명령이거나 특수문자 단축키이다. 그래서 복사 붙여넣기를 하려면 다른 단축키를 사용해야 한다.
| Windows (PowerShell, WSL, ECS) | macOS/Linux (터미널) | |
| 복사 | Ctrl + Insert 또는 Ctrl + Shift + C | cmd + c 또는 Ctrl + Shift + C |
| 붙여넣기 | Shift + Insert 또는 Ctrl + Shift + V | cmd + v 또는 Ctrl + Shift + V |
한글로 알고 싶으신 분들은 아래 블로그를 참조 하세요
[AWS] EFS (EC2 Instance Store 中)
EFS(Elastic File System)관리형 NFS(Network File System)이다.: 네트워크 파일 시스템이므로 많은 EC2 인스턴스에 마운트될 수 있다.EFS 덕분에 EC2 인스턴스는 서로 다른 가용성 영역에 있을 수 있다.그래서 가
ysh2.tistory.com
포스팅 하면서 궁금한 점 (추후 포스팅 할 예정)
📌 MiB/s, MiB, GB, GiB 차이
📌 아마존 S3 vs EFS vs EBS : 어떤 AWS 스토리지를 써야 하나요?
'AWS' 카테고리의 다른 글
| [AWS] Solutions Architect Associate 실습 23일차 - Amazon EFS VS EBS (22) | 2025.02.16 |
|---|---|
| [AWS] 아마존 S3 vs EFS vs EBS : 어떤 AWS 스토리지를 써야 하나요? (8) | 2025.02.16 |
| [AWS] Solutions Architect Associate 실습 21일차 - EBS 볼륨 유형, 다중연결, 암호화 (2) | 2025.02.12 |
| [AWS] EBS 볼륨 유형 (SSD 기반 & HDD 기반), EBS Snapshot (7) | 2025.02.10 |
| [AWS] Solutions Architect Associate 실습 20일차 - AMI, EC2 Instance Store (5) | 2025.02.10 |