EBS (Elastic Block Store) Volume
EBS Volume?
- 인스턴스가 실행 중인 동안 연결 가능한
네트워크 드라이브
입니다.
- 인스턴스와 EBS 볼륨이 서로 통신을 하기 위해서는 네트워크를 필요로 합니다.
- 네트워크가 사용되기 때문에 컴퓨터가 다른 서버에 도달할 때
지연
이 생길 수 있습니다.
EC2 인스턴스에서 분리될 수 있고 매우 빠르게 다른 인스턴스로 연결될 수 있습니다.
- 인스턴스가 종료된 후에도 데이터를 지속할 수 있습니다.
- 인스턴스를 재생성하고 이전 EBS 볼륨을 마운트하면 데이터를 다시 받을 수 있습니다.
- CCP 레벨의 EBS 볼륨은 한 번에 하나의 인스턴스에만 마운트할 수 있습니다.
- 어소시에이트 레벨: 일부 EBS 다중 연결이 가능합니다.
- EBS는 io1이나 io2 제품군일 때만 여러 EC2 인스턴스에 연결이 가능합니다.
- 다중 연결로 동일한 EBS 볼륨을 동일한 가용 영역 내의 여러 EC2 인스턴스에 연결하여 사용할 수 있습니다.
- 이때 각 EC2 인스턴스는 볼륨에 대한 전체 읽기 및 쓰기 권한을 갖습니다.
- 반드시
클러스터 인식 파일 시스템
을 사용해야 합니다.
- EBS 볼륨을 생성할 때는 특정 가용 영역에서만 가능합니다.
- EBS 볼륨은 특정한 가용 영역에 고정되어 있습니다.
- 다만,
스냅샷
을 이용하면 다른 가용 영역으로도 볼륨을 옮길 수 있습니다.
- 볼륨이기 때문에 용량을 미리 결정해야 합니다
- 따라서 원하는 양의 GB 및 IOPS, 즉 단위 초당 전송 수를 미리 지정해야 합니다.
- 꼭 EC2 인스턴스에 연결될 필요가 없습니다.
네트워크 USB 스틱
- 프리티어 등급으로는 매달 30GB의 EBS 스토리지를 제공합니다.
EBS - 삭제 및 종료 속성
기본 설정
으로는 루트 볼륨에 체크되어 있고 새로운 EBS 볼륨에는 체크가 되어 있지 않습니다.
이 옵션을 통해 EC2 인스턴스 종료 시 EBS 행동을 제어할 수 있습니다.
기본적으로 루트 EBS 볼륨은 인스턴스 종료와 함께 삭제되도록 설정이 되어 있습니다.
- 실사용
- 인스턴스가 종료될 때 루트 볼륨을 유지하고자 하는 경우
- 데이터를 저장하고자 하는 등의 경우에는
- 루트 볼륨의 종료 시 삭제 속성을 비활성화하면 됩니다.
EBS 볼륨 종류
- EBS 볼륨은 크기, 처리량과 IOPS로 종류를 나눕니다.
- EC2 인스턴스에는
gp2/gp3
와 io1/io2
만이 부팅 볼륨으로 사용될 수 있습니다.
- EBS 볼륨은
6종류
입니다.
- gp2 / gp3 (SSD)
- 범용 SSD 볼륨으로 다양한 워크로드에 대해 가격과 성능의 절충안입니다.
- 1GB - 16TB
- gp3에서는 IOPS와 처리량을 독자적으로 설정할 수 있는 반면, gp2에서는 그 둘이 연결되어 있다는 점입니다.
- io1 / io2 (SSD)
- 최고 성능을 자랑하는 SSD 볼륨으로 미션 크리티컬이자 지연 시간이 낮고 대용량의 워크로드에 쓰입니다.
- 4GB - 16TB
- st1 (HDD)
- 저비용의 HDD 볼륨으로 잦은 접근과 처리량이 많은 워크로드에 쓰입니다.
- sc1 (HDD)
- 가장 비용이 적게 드는 HDD 볼륨으로 접근 빈도가 낮은 워크로드를 위해 설계되었습니다.
EBS 스냅샷 (Snapshots)
- 언제든 원하는 시점에 EBS 볼륨을 가지고 와서
백업
하는 것입니다.
- 즉, 추후에 EBS 볼륨을 삭제하더라도 해당 시점에 대한 백업으로 복원할 수 있는 것입니다.
- 복원 목적도 있으나,
가용 영역(AZ) 또는 리전(Region)에 걸친 스냅샷을 복사할 수 있기 때문입니다.
- AZ 전반의 스냅샷을 통해 EBS 볼륨을 효과적으로 전송할 수 있습니다.
EBS 암호화
- EBS 볼륨을 생성하면,
- 저장 데이터가 볼륨 내부에 암호화됩니다.
- 인스턴스와 볼륨 간의 전송 데이터 역시 암호화됩니다.
- 스냅샷 뿐만 아니라 스냅샷으로 생성한 볼륨 역시 모두 암호화됩니다.
암호화가 동시다발적으로 일어납니다.
- 암호화 및 복호화 메커니즘은 보이지 않게 처리되고 아무것도 하지 않아도 됩니다.
- 백그라운드에서 EC2와 EBS가 모두 처리하기 때문입니다.
- 종합적으로 봤을 때 암호화를 사용해야 하는 이유
- 지연 시간에는 영향이 거의 없습니다.
- KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 갖습니다.
- 스냅샷을 복사해 암호화를 푼 걸 다시 암호화 활성화를 합니다.
EBS 볼륨을 암호화하거나 암호화를 푸는 방법
- 볼륨의 EBS 스냅샷을 생성합니다.
- 복사 기능을 통해 EBS 스냅샷을 암호화합니다
- 스냅샷을 이용해 새 EBS 볼륨을 생성하면 해당 볼륨도 암호화될 것입니다.
- 암호화된 볼륨을 인스턴스 원본에 연결합니다.
AMI
- AMI : Amazon Machine Image
- 사용자 지정 (Customization) EC2 인스턴스를 나타냅니다.
- 소프트웨어 구성에 대해
운영 체제를 정의 및 설정
하며 모니터링 도구를 설정
할 수도 있습니다.
- 자체적으로 AMI를 생성하면 부팅과 구성에 시간이 단축됩니다.
- EC2 인스턴스에 설치하고자 하는 모든 소프트웨어가 AMI를 통해서 사전에 패키징 되기 때문입니다.
- AMI를 자체적으로 구성하고 특정 리전에 맞도록 구축함으로써 원하는 리전에 복사해 놓거나 AWS 글로벌 인프라를 활용할 수 있습니다.
- Public AMI
- 직접 생성한 AMI
- AWS 마켓 플레이스 AMI
- 다른 사용자가 만들어서 판매하는 AMI입니다.
- AWS의 공급 업체가 자체적으로 AMI나 구성이 훌륭한 소프트웨어를 생성하고 여러분은 시간 절약을 위해 마켓 플레이스 AMI에서 이들을 구매할 수 있습니다.
- 우리도 직접 AMI를 직접 판매할 수 있습니다.
AMI Process
- EC2 인스턴스를 시작하고 이를 사용자 지정으로 바꾸어 줍니다.
- 인스턴스를 중지시켜 데이터 무결성을 확보합니다.
- AMI를 구축하는데, 이때 표시되지는 않으나 EBS 스냅샷 또한 생성됩니다.
- 다른 AMI에서 인스턴스를 실행할 수 있게 됩니다.
EC2 인스턴스 스토어
-
EBS 볼륨은 좋은 성능에 네트워크 드라이브이지만, 그 성능은 제한적
입니다.
-
매우 좋은 성능이 필요하다면, EC2 인스턴스 스토어를 사용합니다.
- I/O 성능이 좋습니다.
- 이들이 훌륭한 처리량을 갖추고 있어서 매우 향상된 디스크 성능을 요할 때에 활용할 수 있도록 확보할 필요가 있습니다
- 인스턴스 스토어를 중지 또는 종료하면 해당 스토리지 또한 손실됩니다.
- 이를 임시 스토리지라고 부르며 EC2 인스턴스 스토어가 장기적으로 데이터를 보관할 만한 장소가 될 수 없습니다.
-
버퍼, 캐시, 스크래치 데이터, 임시 콘텐츠에 사용하면 적합합니다.
-
EC2 인스턴스의 기본 서버에 장애가 발생할 시,
해당 EC2 인스턴스가 연결된 하드웨어에도 장애가 발생하므로 데이터 손실에 대한 위험이 존재합니다.
Amazon EFS
- Elastic File System : 관리된 NFS 즉 네트워크 파일 시스템
- 따라서 여러 EC2 인스턴스에 마운트할 수 있습니다.
- 높은 가용성으로 확장성이 뛰어납니다.
- 하나의 네트워크 파일 시스템에 동시에 연결할 수 있습니다.
- 활용
- 콘텐츠 관리
- 웹 서비스 제공
- 데이터 공유
- WordPress
- 내부적으로 NFS 프로토콜을 사용합니다.
- EFS 접근을 제어하기 위해 보안 그룹을 설정합니다.
- Windows가 아닌 Linux 기반 AMI에만 호환이 됩니다.
KMS
를 통해 EFS 드라이브의 저장 데이터 암호화를 활성화합니다.
Linux의 표준 파일 시스템
으로 표준 File API를 사진 POSIX 파일 시스템입니다.
- EFS의 장점은 용량을 미리 정하지 않아도 됩니다.
- 파일 시스템이 자동으로 확장되고 EFS에서 사용하는 데이터의 1GB마다 비용을 지불하면 됩니다.
EFS 성능
- EFS Scale
- 수천 명의 NFS 클라이언트를 동시에 가질 수 있습니다.
- 10GB/s 이상의 용량을 가집니다.
- 미리 용량을 정해두지 않아도 자동으로 페타바이트 수준의 스케일로 커질 수 있습니다.
- Performance mode (EFS 생성 시 설정)
- 일반 모드
- 지연 시간이 중요한 경우에 사용합니다.
- 웹 서버, CMS
- Max I/O 모드
- 지연 시간과 용량이 늘어납니다.
- 병렬적 처리가 가능해 빅 데이터나 미디어 처리에 적합합니다.
- 처리율(Throughput) 모드
- Bursting 모드가 1 TB 즉 50MiB/s 정도 속도의 데이터 전송을 지원하는데 100 MiB/s까지도 가능합니다.
- 프로비저닝도 설정할 수 있습니다.
- 원래는 더 많은 공간을 사용할 수록 처리량과 용량이 커지는데 스토리지 크기와 무관하게 용량을 프로비저닝할 수 있습니다.
스토리지 클래스
- 스토리지 티어 (Storage Tiers)
: 스토리지 계층은 일정 시간 뒤 파일을 다른 계층으로 이동하는 기능입니다.
- Standard 계층
- Standard-IA
- 파일을 찾을 때 비용을 지불해야 하지만 EFS-IA에 파일을 저장할 때 비용이 낮습니다.
- EFS-IA를 활성화하려면 수명 주기 정책을 사용해야 합니다.
EX)
EFS Standard 계층에 자주 사용하는 파일이 있다고 가정합시다.
이때 60일 이상 액세스하지 않은 파일이 있다면 수명 주기 정책을 설정했기 때문에 파일이 EFS-IA 계층으로 이동될 거예요.
- 가용성과 내구성
- EFS를 다중 AZ로 설정하면 프로덕션 환경에 훌륭합니다.
- One Zone EFS 파일 시스템
- 개발에는 좋지만 가용 영역이 하나일 뿐이고 기본값으로 백업이 활성화 됩니다.
- EFS-IA 계층과 호환이 가능해서
EFS One Zone-IA
라고 부르며 큰 할인 폭으로 비용의 90% 정도를 절감할 수 있습니다.
EBS vs EFS
- EBS
- EBS 볼륨은 한 번에 하나의 인스턴스에만 연결이 가능합니다.
- 특정 가용 영역에 한정됩니다.
gp2
에서는 디스크 크기가 늘어나면 IO도 함께 증가합니다.
io 1
은 IO를 볼륨 크기와 관계 없이 독립적으로 증가시킬 수 있습니다.
- 중요한 데이터베이스를 실행할 때 좋은 방법입니다.
- EBS 드라이브의 크기에 따라 실제 사용량이 아니라 정해진 사용량을 지불하는 식입니다.
- EBS를 다른 가용 영역으로 옮기고자 할 때
- 1. 가장 먼저 스냅샷을 찍어야 합니다.
- 2. 다른 AZ에서 그 스냅샷을 복원하면 해당 AZ에 EBS 볼륨이 생성됩니다.
- EBS의 스냅샷이나 백업을 만들 때에는 EBS 볼륨 내의 IO를 전부 사용하게 되니 인스턴스가 EBS를 사용 중이 아닐 때에만 실행하셔야 합니다.
- 그렇지 않으면 성능에 문제가 생길 수 있죠
- EC2 인스턴스가 종료되면
루트 EBS 볼륨
도 기본적으로 종료됩니다. (비활성화 가능)
- EFS
- 여러 개의 가용 영역에 걸쳐 무수히 많은 인스턴스들에 연결될 수 있습니다.
- 웹 사이트 파일을 공유할 때도 EFS를 사용합니다. (WordPress)
- Windows에서 구동되지 않습니다.
- EFS는 EBS보다 훨씬 비쌉니다. 거의 세 배 정도 더 비쌉니다.
- 하지만 비용을 절약하고 싶은 경우에는 스토리지 티어로 EFS-IA를 사용하고 제품 수명 정책을 사용하면 비용을 절감할 수 있습니다.
- EFS 사용 시에 또 기억해야 할 점은 EFS는 사용한 만큼만 비용이 청구된다는 겁니다
- 인스턴스 스토어
- EC2 인스턴스에 IO를 최대로 사용하게끔 해줍니다.
- 그러나 인스턴스가 망가지면 함께 망가지는 임시 드라이브입니다.
From
AWS Certified Solutions Architect Associate 시험합격!