AWS - EBS(Elastic Block Storage)/EFS(Elastic File System)

 


 

 

1. EBS (Elastic Block Storage)

 EBS는 EC2 인스턴스에 연결하여 사용하는 블록 스토리지 서비스입니다. 운영체제와 데이터 저장을 위한 맞춤형 스토리지로, 다양한 볼륨 유형과 스냅샷 기능을 제공합니다.

 

1) 주요 특징

- 루트 볼륨: EC2 인스턴스의 AMI가 설치되는 주요 볼륨으로, 운영체제 및 핵심 데이터를 저장합니다.

 

- 여러 개의 EBS 연결 가능: 한 EC2 인스턴스에 여러 개의 EBS를 연결할 수 있어 스토리지 요구사항에 맞춰 확장이 가능합니다.

 

- 같은 가용영역 내에서 사용: EBS와 EC2 인스턴스는 같은 가용영역(AZ)에 있어야 정상적으로 연결될 수 있습니다.

 

- 스냅샷 지원: EBS 볼륨의 백업 및 복원을 위해 스냅샷 기능을 제공하며, 이를 통해 다른 AZ나 리전으로 데이터를 쉽게 전송 가능합니다.

 

- KMS 암호화 지원: AWS Key Management Service(KMS)를 통해 EBS 볼륨의 데이터 암호화를 지원합니다.

 

2) 볼륨 유형

EBS는 SSD(솔리드 스테이트 드라이브)와 HDD(하드 디스크 드라이브) 타입으로 나뉘며 사용 목적에 따라 성능과 비용이 다릅니다.

 

- 범용 SSD (gp2, gp3): 일반적인 워크로드에 적합하여 저비용 고성능 스토리지입니다.

- 프로비저닝된 IOPS SSD (io1, io2): 고성능 I/O가 필요한 애플리케이션에 적합합니다.

- 처리량 최적화 HDD (st1): 비용 효율이 높은 대용량 스토리지입니다.

- 콜드 HDD (sc1): 자주 액세스하지 않는 데이터를 위한 저비용 옵션입니다.

 

3) EBS 다중 연결 (Multi-Attach)

 하나의 EBS 볼륨을 최대 16대의 EC2 인스턴스에 동시에 연결할 수 있으며, 이 인스턴스들은 같은 가용영역 내에 있어야 합니다. 단, Nitro 기반의 리눅스 인스턴스에서만 가능하다는 제한이 있습니다.

 

4) 스냅샷 관리

- 스냅샷: EBS 볼륨의 데이터를 백업하여 다른 AZ나 리전에서 사용할 수 있으며 AMI를 제작할 수 있습니다.

 

- EBS 스냅샷 아카이브: 자주 액세스하지 않는 스냅샷을 아카이브하여 비용을 절감할 수 있습니다.

 

- EBS 스냅샷 휴지통: 실수로 삭제한 스냅샷을 복구할 수 있도록 휴지통에 보관하는 기능입니다.

 

- 빠른 스냅샷 복원: 지연 시간을 최소화하여 스냅샷에서 EBS 볼륨을 복원하는 기능이 있으며, 추가 비용이 발생할 수 있습니다.

 

 

2. 인스턴스 스토어

 인스턴스 스토어는 EC2 인스턴스와 직접 연결된 임시 스토리지로, 고성능 I/O 작업에 적합합니다. 이는 물리적으로 서버에 장착된 SSD나 HDD를 사용하며, 고성능 애플리케이션에서 사용되지만 데이터 영속성은 보장되지 않습니다.

 

1) 주요 특징

- 고성능 IOPS: 인스턴스 스토어는 높은 I/O 성능을 제공하여 실시간 데이터 처리나 고성능 애플리케이션에 이상적입니다.

 

- 데이터 영속성 없음: 인스턴스 중지 시 데이터가 모두 사라지므로, 지속적인 데이터 저장이 필요한 경우에는 EBS나 S3와 같은 영구 스토리지 사용을 권장합니다.

 

 

3. EFS (Elastic File System)

 EFS는 리눅스 기반의 EC2 인스턴스에서 공유 파일 스토리지로 사용되는 네트워크 파일 스토리지입니다. 여러 가용영역에 걸쳐 EC2 인스턴스에 연결되며, NFS(Network File System) 프로토콜을 사용합니다. EFS는 온프레미스 리눅스 서버에서도 연결이 가능합니다.

 

1) 주요 특징

- 네트워크 파일 스토리지: 여러 인스턴스에서 동시에 접근 가능한 파일 시스템으로, NFS 프로토콜을 통해 EC2 인스턴스에 연결됩니다.

- 다중 연결: EFS는 여러 가용영역에 있는 수십 대의 EC2 인스턴스와 연결할 수 있어 고가용성 애플리케이션에 최적화되어 있습니다.

- 보안 그룹 통제: 보안 그룹을 통해 접근을 제어하여 보안 설정을 강화할 수 있습니다.

- 온프레미스 연결 가능: 온프레미스 리눅스 서버에서도 EFS를 연결하여 사용할 수 있습니다.

 

2) 스토리지 클래스

- 표준 스토리지: 3개의 AZ에 데이터가 저장되며, 자주 액세스하는 파일을 저장하는 데 적합합니다.

- 표준 IA (Infrequent Access): 자주 액세스하지 않는 데이터를 3개의 AZ에 저장합니다.

- 원존 (One Zone): 한 개의 가용영역에만 데이터를 저장하며, 자주 액세스하는 파일에 적합합니다.

- 원존 IA: 한 개의 가용영역에 자주 액세스하지 않는 데이터를 저장합니다.

 

3) 성능 모드

- 범용 성능 모드: 일반적인 I/O 성능을 제공하며, 대부분의 워크로드에 적합합니다.

- 최대 I/O 성능 모드: 대규모 병렬 처리 애플리케이션에 적합한 성능 모드입니다.

 

4) 처리량 모드

- 버스팅 처리량 모드: 파일 시스템의 크기가 커짐에 따라 처리량이 자동으로 확장됩니다.

- 프로비저닝된 처리량 모드: 저장된 데이터 양과 상관없이 고정된 처리량을 제공합니다.

 

5) 실습

 

1. EFS에 연결할 보안그룹을 생성합니다. 이때 프로토콜 유형은 NFS입니다.

 

2. EFS 메뉴에 가서 EFS생성을 합니다.

 

3. 탑재 대상에 각 가용영역마다 위에서 생성한 보안그룹으로 지정합니다.

 

4. EFS가 생성되었고 각 가용역역마다 ENI가 생성된 것을 볼 수 있습니다. 이 ENI를 통해 인스턴스에 해당 EFS를 적용할 수 있습니다.

 

5. EC2 인스턴스 생성메뉴에서 EFS에서 생성된 서브넷을 연결하고 EFS를 연결합니다.

 

 

 

6. 해당 인스턴스를 2개 생성하고 다음 명령어를 통해 EFS를 마운트합니다.

# aws efs 유틸 설치
sudo yum install -y amazon-efs-utils

# 폴더 생성/이동
sudo mkdir /mnt/efs
cd /mnt

# efs 마운트, 명령어는 efs-> 연결메뉴에서 확인가능
sudo mount -t efs -o tls fs-0a70f2defb58dea13:/ efs

 

7. 하나의 인스턴스가 efs에 파일을 생성하면 다른 인스턴스에서 해당 파일을 확인 할 수 있습니다.

efs에서 생성
확인

'컴퓨터 > AWS' 카테고리의 다른 글

AWS - CloudFront(1)  (0) 2024.07.04
AWS - RDS(Relational Database Service)  (0) 2024.07.02
AWS - S3(Simple Storage Service)  (0) 2024.06.24
AWS - VPC(Virtual Private Cloud)  (0) 2024.06.09
AWS - ELB(Elastic Load Balancer)  (0) 2024.06.08