1. 스토리지 개요
먼저, EC2 Instance Storage는 데이터를 보관하는 장소로 보관 방식과 사용 용도에 따라 다양한 형태로 존재한다.
스토리지 종류에는 1) 블록 스토리지, 2) 파일 스토리지, 3) 객체 스토리지로 분류할 수 있다.
먼저, 1) 블록 스토리지의 경우, `블록`이라는 개별 단위로 분할하여 저장한다. 이 때, 블록에는 저장된 고유한 주소가 있어 파일을 요청할 경우에 블록들을 재구성하여 하나의 데이터로 서버에 전달하는 과정을 거치게 된다. 일반적으로 블록 스토리지는 Storage Area Network (SAN)을 사용한다.
다음으로 2) 파일 스토리지가 있다. 파일 스토리지는 파일 수준 혹은 파일 기반 스토리지라고 불리며, 디렉터리 구조로 구성되어 있어 각 파일은 파일에 종속되는 계층 구조를 띄고 있다. 블록 스토리지와 다르게 Network Attached Storage (SAN)에 사용된다.
마지막으로 3) 객체 스토리지가 존재한다. 데이터의 조각을 가져와 객체로 지정하여 개별 단위로 저장하는 것으로, 파일 스토리지와 달리 모든 객체는 중첩된 계층 구조없이 단일한 평면적인 주소 공간을 가지고 있다. 평면적인 주소 공간에서는 데이터 및 관련 메타데이터로 구성된 객체에 고유 식별자가 존재하여, 객체의 키만 알고 있다면 검색이 가능하다. 해당 객체 스토리지에 접근할 때에 HTTP 프로토콜 기반의 REST API를 사용하며, 무제한의 가까운 저장 용량을 가지고 있다.
EFS와 S3는 추후에 포스트 작성할 예정입니다..
2. Elastic Block Store : EBS
EBS는 EC2 인스턴스에 사용할 수 있는 블록 스토리지 볼륨을 제공하는 서비스이다. 블록 스토리지 볼륨을 사용하여 데이터를 일정한 블록으로 나누어 분산 저장하는 특징이 있다.
- EC2 인스턴스가 종료가 되어도 EBS 볼륨의 데이터는 사라지지 않는다.
- 이는 EBS와 EC2가 종속적인 관계가 아니기에 독립된 데이터 수명 시간을 보장한다.
- 하지만 EC2에 연결된 EBS 볼륨을 EC2 종료 시, 삭제하도록 설정할 수 있다.
- 하나의 인스턴스에만 연결이 가능하며, 연결할 EC2가 존재하는 AZ에서만 가능하다.
- 인스턴스 입장에서는 여러 개의 EBS 볼륨을 연결할 수 있다.
- EBS 볼륨을 생성한 뒤, 다른 AZ로 이동할 수 없다. 하지만 이는 스냅샷 기능을 활용하면 가능하다.
- EC2와 EBS 볼륨에는 고속 네트워크로 연결되어 있다. 하지만 이로 인한 지연이 발생할 수 있다.
2-1. EBS Snapshot
앞서 EBS 볼륨을 스냅샷 기능을 활용하여 다른 AZ로 이동할 수 있다고 했다. 그렇다면 스냅샷은 무엇일까?
스냅샷은 특정 시점의 EBS 볼륨을 백업을 만드는 행위로, EBS 볼륨을 생성하고 스냅샷 기능을 사용하는 것을 권장하고 있다. 다른 AZ 뿐만 아니라 다른 리전으로도 복제가 가능하며 이는 증분식 백업 방식을 지원한다.
- EBS Snapshot Archive
- 스냅샷을 아카이브 티어로 옮기게 될 경우, 75% 저렴해지는 장점이 있다
- 하지만 아카이브를 복원하는 데에 소요되는 시간은 24시간 ~ 72시간 정도 소요된다.
- Recycle Bin for EBS Snapshots
- 이는 영구 삭제하는 대신 우리가 컴퓨터에 있는 폴더를 휴지통에 넣는 것과 같아 복원이 가능하다.
- 보관되는 기간은 1일 ~ 1년 사이로 설정이 가능하다.
- Fast Snapshot Restore
- 스냅샷을 완전히 초기화해 첫 사용에서의 지연 시간을 없앤다.
- 빠르게 초기화할 경우에 용이하지만 비용이 많이 든다는 단점이 존재한다.
2-2. EBS 유형
EBS 볼륨 유형에는 크게 SSD 볼륨, HDD볼륨으로 구분한다. SSD 볼륨은 메모리형 디스크로 OS 영역이나 DB 보관 스토리지 유형으로 사용되며, HDD 볼륨은 플래터 디스크로, 속도와 상관없이 용량이 많이 필요한 경우에 사용하여 주로 데이터 분석에 활용된다.
- GP2 / GP3 : 가격과 성능의 균형을 맞춘 범용 SSD 볼륨
- GP3의 경우 IOP와 처리량을 독립적으로 설정 가능하지만, GP2에서는 서로 연결되어 있는 차이점이 있다.
- IO / IO2 Block Express (SSD) : 고성능의 SSD 볼륨으로, 고처리량과 저지연과 같은 작업에 처리된다.
- 이는 DB 중심의 워크로드에 적합하며, EBS 다중 연결 기능을 제공한다. (하단에 더보기 확인)
- 32,000 이상의 IOP를 얻기 위해, EC2 Nitro와 IO1, IO2가 필요하다.
→ GP2, GP3, IO1, IO2만 부팅 볼륨으로 사용 가능하다.
- ST1 (HDD) : 저비용 대용량 볼륨으로, 자주 액세스하고 처리량이 많은 작업
- 이는 빅데이터와 로그 처리에 적합하며, IO1과 IO2와 비교했을 때 지연 시간에서 차이를 보인다.
- SC1 (HDD) : 가장 저렴한 HDD 볼륨으로, 액세스 빈도가 낮은 작업
2-3. EBS Encryption
EBS 볼륨을 생성하면 저장 데이터가 볼륨 내부에서 암호화가 되며, 인스턴스와 볼륨 간의 전송 데이터 역시 암호화 기능을 제공한다. 뿐만 아니라 스냅샷으로 생성된 볼륨 역시 암호화가 가능하다.
이는 AES-256 암호화 표준을 사용하며, 암호화는 지연 시간에 영향을 끼치지 않는다
- EBS 볼륨 스냅샷을 생성하여 EBS 볼륨 스냅샷을 암호화
- 암호화된 스냅샷을 통해 암호화된 EBS 볼륨 생성
- 해당 EBS 볼륨을 EC2 인스턴스에 연결
여기서 주의해야 할 점은 암호화되지 않은 EBS 볼륨에서 생성한 스냅샷은 암호화가 진행되지 않는다.
※ EC2 Instacne Storage
EBS는 네트워크를 통해 통신하기에 더 좋은 성능을 원한다면 EC2 Instance Store를 사용할 수 있다.
이는 더 좋은 I/0 성능을 보여주지만 EC2를 종료할 경우에는 해당 스토리지도 손실되는 단점을 보유하고 있다. 그렇기에 버퍼, 캐시, 스크래치 데이터, 임시 데이터 적합한 케이스이기에 장기 스토리지를 원할 경우에는 EBS가 적합하다.
이는 310,000 IOPS가 필요한 고성능 데이터 베이스를 사용하는 워크로드에 적합하다.
※ IO / IO2 Block Express 유형을 읽다가 EBS 다중 연결 기능을 보고 기웃거렸다. 앞서 EBS는 하나의 인스턴스에만 마운드가 가능한 것으로 알고 있었지만, 인스턴스 여러 개에 연결할 수 있다는 사실이 이상했다.
이는 io1, io2 제품군에서만 사용할 수 있는 기능으로 각 EC2 인스턴스는 볼륨에 대한 읽기 및 쓰기 권한을 가지는 것으로 동일한 AZ에서만 사용이 가능하고, 최대 16개의 인스턴스를 연결할 수 있는 특징을 있다. 이를 사용하기 위해 반드시 클러스터 인식 파일 시스템을 사용해야 한다고 확인할 수 있었다.
'AWS > AWS SAA-C03' 카테고리의 다른 글
AWS Certified Solutions Architect Associate - EC2 (1) | 2024.12.16 |
---|---|
AWS Certified Solutions Architect Associate - IAM (0) | 2024.12.14 |