카테고리 없음

EC2의 스토리지(EBS, EFS 그리고 AMI)

곤프 2022. 7. 16. 00:08

-----------------------------------------------------EBS------------------------------------------------------------

1. EBS는 네트워크 USB 스틱이라고 생각하자.

 

2. EBS 볼륨을 사용하면 EC2 인스턴스가 종료된 후에도 데이터를 지속할 수 있다. 

 

3. CCP 레벨의 EBS 볼륨은 하나의 EC2 인스턴스에만 마운트가 가능하고, 어소시에이트 레벨은 다중 EC2 인스턴스 연결이 가능하다.

 

4. EBS 볼륨은 같은 가용영역(=!리전이지만 거의 =리전 이라고 봐야할 듯?)에서만 연결이 가능하다

(us-northeast-1에서 생성된 경우 us-northeast-2에는 연결이 불가)

 

5. 프리티어에서는 매달 30GB의 EBS 스토리지를 범용 SSD 혹은 마그네틱으로 제공한다.

 

6. EBS 볼륨은 네트워크 드라이브고 물리적 드라이브가 아니다.

즉 인스턴스와 EBS 볼륨이 통신을 하기위해 네트워크가 필요하며 네트워크로 인한 지연시간이 발생한다.

네트워크 드라이브로 EC2에서 분리하여 매우 빠르게 다른 인스턴스로 연결이 가능하다. 이 떄문에 대체 작동에 경우에 굉장히 유용하다.

 

7. 스냅샷을 이용하면 다른 리전으로도 볼륨을 옮길 수 있다.

 

8. 원하는 Size 및 IOPS(단위 초당 전송 수) 용량을 미리 결정해야한다. 

 

9. EC2 인스턴스를 생성할 때 EBS 볼륨을 생성한다면 기본적으로 Root 볼륨의 경우 인스턴스 종료와 함께 삭제되도록 설정되어 있다.

(인스턴스 종료할 때 삭제여부는 사용자가 제어 가능하다)

 

10. Snapshots 이란 EBS 볼륨의 특정 시점에 대한 백업이라고 생각하면 된다.

(EBS 볼륨을 삭제하더라도 스냅샷으로 얼마든지 해당 시점에 EBS를 복구할 수 있다.)

 

11. Snapshots은 백업 목적도 있지만, 가용 영역(AZ) 또는 리전(Region)에 걸쳐서 Snapshots를 복사할 수도 있다.

(EBS 자체로는 불가하며  us-northeast-1에 생성된 EC2 인스턴스의 EBS를 옮길 때, 해당 EBS를 Snapshots 생성하고 해당 Snapshots으로 부터 EBS를 복구한 뒤, EBS를 us-northeast-2에 EC2 인스턴스로 연결하면 된다.)

 

12. EBS 볼륨은 6가지 타입이 있다.

 

13. gp2 / gp3 (SSD)

범용 SSD 볼륨으로써 다양한 워크로드에 대해 가격과 성능의 절충안이 되어준다.

gp2 : 최대 3000 IOPS에 볼륨과 IOPS가 연결되어 있어서 볼륨의 GB(용량)이 커질 때 IOPS도 같이 증가하게 된다.
짧은 지연시간을 자랑하며 효율적인 비용의 스토리지 이다. 시스템 부팅 볼륨에서  가상 데스크톱, 개발 테스트 환경에서 사용될 수 있으며 크기는 1GB에서 16TB 까지 다양하다


gp3: 최신 세대의 볼륨으로 기본 성능으로 3000 IOPS와 초당 125MB의 처리량을 제공한다  각각의 IOPS는 16,000 IOPS이며 처리량은 1000MB/s 까지 증가시킬 수 있다. 볼륨과 IOPS가 연결되어 있지 않다.

 

14. io1 / io2 (SSD)

최고 성능을 자랑하는 SSD 볼륨으로 지연시간이 낮고 대용량의 워크로드에 쓰인다.

Nitro EC2 인스턴스에서는, io1 / io2 볼륨의 경우 최대 64,000 IOPS까지 사용이 가능하며 Nitro EC2 인스턴스가 아닐경우 최대 32,000 IOPS까지 사용가능하다.

io2의 장점은 io1과 동일한 비용으로 내구성과 기가 당 IOPS의 수가 더 높다. io2의 사용이 더 합리적이다.

 

EBS gp2 볼륨 유형을 사용할 때 달성할 수 있는 최대 IOPS는 16,000 입니다.
EBS io1 또는 io2 볼륨 유형을 사용할 때 달성할 수 있는 최대 IOPS는 64,000
EBS io2 Block Express 볼륨 유형을 사용할 때 달성할 수 있는 최대 IOPS는 256,000

 

15. st1 (HDD)

저비용의 HDD 볼륨으로 잦은 접근과 처리량이 많은 워크로드에 쓰인다.

부팅볼륨으로 사용이 불가능하며 125mb에서 16tb 까지 사용이 가능하다. 빅데이터나 데이터 웨어하우징 로그처리에 용이하다.

최대 처리량은 초당 500MB 최대 IOPS는 500이다. 

 

16. sc1 (HDD)

비용이 가장 저렴한 볼륨으로 접근 빈도가 낮은 워크로드에 쓰인다.

 아카이브 데이터용으로 접근빈도가 낮은경우에 최저비용으로 사용한다. 최대 처리량은 초당 250MB이고 IOPS도 250이다.

 

17. EBS 볼륨은 처리량과 IOPS(초당 I/O 작업 수)에 따라 선택한다.

 

18. EC2 인스턴스에서는 gp2/gp3 , io1/io2 만 부팅볼륨으로 사용이 가능하다.

 

19. io1/io2은 여러 EC2 인스턴스에 동시에 연결이 가능하다.

-----------------------------------------------------AMI------------------------------------------------------------

 

20. AMI는 Amazon Machine Image의 약자다.

 

21. AMI는 사용자가 자신이 필요한 소프트웨어 구성이나 운영체제 환경 등을 미리 정의 및 설정하여 부팅과 구성 시간을 단축하도록 구성할 수 있다.

 

22. AMI는 AWS에서 제공하는 AMI를 사용하거나 직접 생성해서 사용할 수 있고, AWS 마켓 플레이스에서 다른 사용자가 만들어서 판매하는 AMI도 구매할 수 있다.

 

23. 특정 유형의 ECS 인스턴스는 물리적으로 연결된 하드웨어 디스크를 가지며 이 하드웨어 디스크를 ECS 인스턴스 스토어라고 부른다.

 

24. EC2 인스턴스 스토어는 EC2 인스턴스가 중지 또는 종료되면  해당 스토리지도 손실된다

따라서 인스턴스 스토어는 임시 스토리지라고 부르며 장기적으로 데이터를 보관할 수는 없다. 

주로 Buffer나 Cache, 스크래치 데이터, 임시콘텐츠등을 보관할 때 사용한다.

-> EBS나 EFS보다 빠른 디스크 I/O성능을 제공한다.

-> 인스턴스를 중지/종료후에 데이터가 손실되는 문제에 대한 솔루션으로 인스턴스 스토어가 있는 다른 EC2 인스턴스에서 복제 메커니즘을 설정하여 대기 복사본을 가지는 방법이 있다. 다른 솔루션으로는 데이터에 대한 백업을 사용하는 방법도 있다.

 

25. AMI는 특정 AWS 지역용으로 구축되며 각 AWS 지역마다 고유하다. AMI를 다른 지역에 복사해서 사용할 수는 있다.

 

-----------------------------------------------------EFS------------------------------------------------------------

25. EFS(Elastic File System)은 다양한 가용영역에 걸쳐 다수의 EC2 인스턴스에 연결이 가능한 관리형 네트워크 파일 시스템 이다.

(다중 AZ에서 동작하며 EBS와의 가장 큰 차이점이다. EBS는 단일 AZ에 묶여 있다.

 

26. 따라서 EFS는 EBS 대비 가용성과 확장성이 높으며 비용도 높다.

(gp2 드라이브 비용의 약 세 배에 달하지만 사용한만큼만 내면된다 = 너무 큰 데이터를 저장하는게 아니라면 EBS보다 EFS가 오히려 저렴할 수 있다!)

 

27. EFS는 콘텐츠 관리, 웹 서비스, 데이터 공유, 워드 프레스등에 사용되며 프로토콜은 표준 NFSv4.1을 사용한다.

 

28. EFS의 접근제한은 네트워크 보안인 보안그룹을 이용해야 한다(Network File System임을 기억하자!)

 

29. Windows가 아닌 Linux 기반 AMI(=POSIX 파일시스템)에서만 EFS의 사용이 가능하다.

 

30. KMS 키를 이용하여 EFS 유휴 시 암호화 설정이 가능하다.

 

31. 수천 명의 동시 클라이언트와 초당 최대 10GB의 처리량을 자랑한다.

 

32. 파일시스템 자체가 페타바이트(PB)까지 확장이 가능하며 관리할 필요가 없이 자동으로 확장된다.

 

33. 성능 모드로는 1. 범용성능모드, 2. Max I/O 성능모드 2가지 모드가 있다.

 

범용 성능 모드 : 웹서버 운영이나 지연 시간에 민감한 파일이 있는 경우(워드프레스 등의 운영)

여러 파일에 신속하게 접근해야 하는 경우

 

Max I/O 성능모드 : 대규모 데이터 워크로드를 처리하는경우. 지연시간은 조금 더 들겠지만 처리량이 더 높다.

이는 훨씬 더 병렬적인 모드로 빅 데이터나 미디어 처리에 훌륭한 성능을 보인다.

 

34. 처리량 모드로는 1. Bursting(버스팅) 처리량 모드, 2. 프로비저닝모드

 

Bursting(버스팅) 모드 : 1TB의 스토리지에 대해 초당 50MB를 저장할 수 있으며, 여기에 초당 100MB까지 확장이 가능

Provisioned(프로비저닝) 모드 : 스토리지 크기와 상관없이 처리량 설정이 가능, 1TB의 스토리지에 불과하더라도 초당 1GB의 처리량을 요청가능

 

-> 스토리지 크기 자체는 작으나 높은 처리량을 요할 때에는 프로비저닝모드!

 

35. 스토리지 계층 : 파일 수명에 대한 주기관리 기능으로, 30일이 지난 후 새로운 계층으로 파일을 이동시키는 기능이다.

표준은 접근빈도가 높은 파일로 설정되어있으며, EFS-IA라고 부르며 접근 빈도가 낮은 접근에 대한 계층이 존재한다.

(7, 14, 30일..60일..90일...등 기간 설정 가능)

 

-------------------------------------------EFS vs EBS------------------------------------------------

EBS : 

1. 특정 가용 영역에 한정 됨

2. 한 번에 하나의 인스턴스에만 연결 가능

3. 다른 가용영역으로 이동을 위해서는 스냅샷을 찍어서 복원해야 함

(이 때 인스턴스가 사용중이면 안됨!!)

4. 사용한 량만큼이 아닌 차지하는 용량만큼의 비용이 지불된다.

 

EFS :

1. 여러 가용 영역에서 사용이 가능함.

2. POSIX 시스템 특성 상 리눅스에서만 사용이 가능함

3. 비용이 3배 정도 비싸다.

4. 접근빈도가 낮은 파일을 이동시키는 EFS-IA(Infrequent Access)를 사용하면 비용이 절감됨.

5. EFS는 사용한 량만큼 비용이 지불된다.