AWS Storage: EC2-EBS와 EFS
내용은 아래 강의를 듣고 작성하였습니다.
스토리지 서비스의 중요성
클라우드 컴퓨팅 환경에서 스토리지 서비스는 핵심적인 역할을 담당하며, 특히 AWS에서는 다양한 옵션을 통해 사용자 요구를 충족할 수 있는 유연성을 제공한다. 이러한 스토리지 서비스는 단순한 데이터 저장을 넘어 효율적인 데이터 관리와 보안까지 포함하여 비용 최적화와 시스템 성능 향상에 기여한다.
AWS에서 제공하는 주요 스토리지 서비스 중 EBS(Elastic Block Store)와 EFS(Elastic File System)는 각기 다른 특징과 용도로 구분되는데, 두 서비스의 적절한 활용은 시스템 효율성과 비용 효율성을 좌우할 수 있으므로, 선택 과정에서 각 서비스의 장단점을 명확히 이해하는 것이 중요하다. 오늘은 이 두가지의 특징과 차이점에 대해서 정리해보았다.
EBS(Elastic Block Storage)
EBS 볼륨은 네트워크 드라이브로, 물리적인 드라이브가 아니라 인터넷을 통해 작동한다.
이 때문에 EC2 인스턴스와 연결할 때 약간의 지연(latency)이 발생할 수 있다는것이 단점. 이 드라이브는 EC2 인스턴스에서 분리한 후 다른 인스턴스에 빠르게 연결할 수 있어 유연하게 활용할 수 있다는 장점도 갖고 있다.
하지만 같은 가용 영역(Availability Zone, AZ)에서만 사용할 수 있다는 제한이 있는데
예를 들어, us-east-1a에 있는 EBS 볼륨은 us-east-1b로 바로 연결할 수 없으며, 이를 위해서는 먼저 스냅샷을 생성하고 이동해야 한다.
위의 사진 처럼 EBS가 특정 가용영역에서만 지원이 가능하다. 다만 같은 가용영역 내에서는 하나의 EC2 인스턴스에 여러개를 탈부착할 수 있다.
그래서 만약 다른 리전의 인스턴스에 연결을 하려면 아래와 같이 SnapShot를 찍어둔 다음 옮기면 사용가능하다.
EFS(Elastic File System)
EFS는 여러 EC2 인스턴스에서 동시에 접근할 수 있는 파일 시스템을 제공한다.
파일 스토리지는 네트워크를 통해 데이터를 저장하고 접근할 수 있으며, 파일 단위로 데이터를 관리한다. 왜냐하면 파일 스토리지는 데이터를 파일 시스템 구조로 저장하고, 네트워크를 통해 접근할 수 있기 때문이다.
EFS는 공유 파일 시스템이 필요한 애플리케이션에 적합하며, 데이터의 확장성과 가용성을 보장한다. 또한, EFS는 자동으로 확장되며, 사용한 만큼만 비용을 지불.(Pay Per Use)
하지만 EFS는 블록 스토리지에 비해 I/O 성능이 낮을 수 있으며, 네트워크 대역폭에 영향을 받을 수 있다. 따라서 EFS는 공유 파일 시스템이 필요한 경우에 적합하다
EFS와 다르게 Multi AZ에서 공동으로 사용가능하다.
그래서 이제 EC2 인스턴스에 어떤 경우에 EBS를 사용하고 EFS를 사용하는 것이 효율적인지에 대해 알아보겠다.
EBS VS EFS
EBS
To migrate an EBS volume across AZ
1. SnapShot 생성
2. SnapShot을 다른 가용 영역으로 이동
3. 해당 Snapshot을 새로운 EBS에서 불러오기
반면
EFS
추가적인 설정 없이 다른 가용영역에서 스토리지를 공유하여 사용할 수 있다.
아래 사진을 보면 이해가 더 쉽다.
결론: EBS와 EFS의 선택 기준
EBS와 EFS는 AWS에서 제공하는 주요 스토리지 서비스로, 각기 다른 특성과 사용 목적을 가지고 있다. 이 두 서비스는 성능, 확장성, 비용 측면에서 차이가 있기 때문에 시스템 요구사항에 따라 적절하게 선택하는 것이 중요하다.
EBS는 인스턴스에 연결하여 사용되는 블록 스토리지로, 데이터의 일관성과 고성능 I/O 작업이 필요한 워크로드에 적합하다. 단일 인스턴스에 연결되어 작동하며, 데이터베이스나 트랜잭션 처리와 같은 작업에서 주로 사용된다.
반면, EFS는 다수의 인스턴스가 동시에 접근할 수 있는 네트워크 파일 스토리지로, 파일 기반 데이터 공유와 대규모 애플리케이션에서 유용하다. 특히, 동적으로 크기를 확장하거나 축소할 수 있어 유연한 데이터 관리가 가능하다.
EBS와 EFS를 선택할 때는 성능 요구사항, 데이터 공유 필요성, 그리고 비용 효율성을 종합적으로 고려해야 한다. EBS는 고성능 I/O와 데이터 안정성이 중요한 작업에 적합하며, EFS는 확장성과 다중 인스턴스 접근이 요구되는 환경에 적합하다.