초보 개발자

AWS EBS,AMI 본문

AWS SAA

AWS EBS,AMI

taehyeki 2023. 1. 28. 22:39

EBS

EBS란 Elastic Block Storage의 줄임말이다.

인스턴스가 실행중인 동안 연결 가능한 네트워크 드라이브이다.

심지어 인스턴스가 종료된 후에도 남아있을 수 있다 ( 옵션을 준다면 )

EBS는 생성된 가용영역에서만 사용할 수 있다.

만약 east-1에 EBS를 만들었는데 그걸 east-2에서는 사용할 수 없다는 뜻이다. 

it's a network drive

it's locked to a specific AZ

스냅샵이란걸 이용하면 다른 가용영역으로도 볼륨을 옮길 수 있다고 한다.

하나의 인스턴스에 두개의 ebs를 사용하는 것도 물론 가능하다. usb를 본체에 꽂는다고 생각하면된다.

물론 만들어 두고 사용하지 않아도 된다. 그냥 만들어만 두어도 상관없다.

 

인스턴스를 생성할 때 delete on terminataion이라는 부분이 기본값으로 체크되어있는데 이 값을 비활성화하면

인스턴스를 삭제해도 EBS는 존재하게 된다.

 

루트 볼륨의 경우, ‘종료 시 삭제' 속성이 기본으로 활성화되어 있기 때문에, 기본적으로 삭제되게 됩니다. 기타 EBS 볼륨 유형의 경우, ‘종료 시 삭제' 속성이 기본적으로 비활성화되어 있으므로 삭제되지 않습니다.

 

EBS 스냅샷

ebs스냅샷은 특정시점의 ebs 볼륨의 백업본이다.

ec2에서 ebs를 분리해야 할 의무는 없지만 권장사항이라고한다.

다른 리전이나 가용영역에도 복사할 수 있다. (ami는 해당 리전만 가능)

스냅샷을 만들 때에는 암호화를 지정할 수 없는데, 스냅샷을 이용하여 새로 볼륨을 만드는 경우에는 암호화를 지정할 수 있다.

 

스냅샷 아카이브 

일반 스냅샷 보다 75퍼센트 정도 저렴한 대신에 즉시 복원이 되는 것이 아니라 24 ~ 72시간이 소요된다고 한다.

 

스냅샷 휴지통

스냅샷을 삭제하는 경우 영국삭제가 아니라 휴지통에 보관됨으로 실수로 지웠을 경우에 복원할 수 있다.

 

빠른 스냅샷 복원 (FSR )

용량이 큰 EBS를 빠르게 인스턴스 초기화 할 때 사용할 수 있는데 비용이 많이든다.

 

먼저 현재 사용하고 있는 볼륨에서 스냅샷을 하나 생성했다.



스냅샷을 이용해 볼륨을 생성하였고 그 볼륨을 다시 어태치 해보자 오른쪽 마우스 볼륨 연결한 뒤 같은 가용영역에 있는 인스턴스를 고르면 된다. 하지만 추가적인 작업을 해주어야 실제로 추가가 되는데 이 부분은 강의에선 다루지 않았다.

 

AMI

amazon machine image

ami are a customization of ec2

ec2에다 원하는 소프트웨어 , 설정파일들을 추가, 별도의 운영체제 설치 등 

우리가 인스턴스에 설치하고자하는 모든 소프트웨어를 AMI에 미리 설치하여 시간을 줄일 수 있다.

 

AMI는 특정 AWS 리전에 국한되며, 각 AWS 리전에는 고유한 AMI가 있습니다. 다른 AWS 리전에서 AMI를 사용해 EC2 인스턴스를 실행하는 것은 불가능하지만, 대상 AWS 리전으로 AMI를 복사해 EC2 인스턴스를 생성하는 것은 가능합니다.

 

EC2 instance storage 

물리적 디스크이며 고성능이다. 실제 인스턴스와 같은 공간에 디스크가 있는 것 같다.

하지만 인스턴스를 중지하면 데이터를 잃어버린다.

일시적인 데이터, 캐시, 버퍼, 스크래치 데이터를 저장할 때 유용하다.

연결된 인스턴스에 문제가 생겨도 데이터를 잃을 가능성이 있으므로 자주 백업을 해두는 것이 좋다.

ec2에 성능이 아주 뛰어난 하드웨어가 연결된 것이 보이면 그것은 EC2 instance storage일 것이다.

EC2 인스턴스 스토어는 최적의 디스크 I/O 성능을 제공합니다.

기반 스토리지에 310,000의 IOPS가 필요한 고성능 데이터베이스를 실행하고 있습니다. 어떤 방법을 추천할 수 있을까요

  • EC2 인스턴스 스토어 사용

     

EBS종류

6가지의 종류가 있다고 한다.

1. gp2/ gp3 general purpose SSD : 다양한 워크로드에 대해 가격과 성능의 절충안이다. 프리티어에서 사용했던 것이다, 일반적인 개발환경 테스트 환경 

2. io1/io2 : 최고 성능의 SSD이며 미션크리티컬이자 지연시간이 낮고 대용량 워크로드에 쓰인다. 32000iops를 요구할 때에 쓰인다.

3. st1 : 저비용의  HDD볼륨이며 잦은 접근과 처리량이 많은 워크로드에 쓰인다. 빅데이터에 주로 쓰임

4 sc1: 가장 저렴한 HDD볼륨이며 접근 빈도가 낮은 워크로드에 쓰인다.

 

EBS볼륨 정의 방법은 크기, 처리량, IOPS(초당 I/O 작업수)

EC2인스턴스에서는 오직 gp2/gp3 , io1/io2만이 부팅 볼륨으로 사용될 수 있다.

 

gp2는 짧은 지연시간과 효율적인 비용 스토리지이다. 1g ~ 16tb까지 다양

gp3는 IOPS와 처리량을 독자적으로 설정할 수 있는 반면 gp2는 그 둘이 연결되어있다.

 

EBS 다중연결

하나의 볼륨을 여러 인스턴스에 연결할 수도 있다.

이건 오직 io1, io2에서만 사용할 수 있다.

역시 해당 가용영역 내에서만 사용할 수 있다.

애플리케이션 가용성을 높이기 위해 애플리케이션이 동시쓰기 작업을 관리해야할 때 사용한다고한다.

다중연결을 사용하려면 클러스터 인식 파일시스템을 사용해야한다고 한다.

 

EBS 다중 연결을 사용하면, 동일한 EBS 볼륨을 동일 AZ 상에 있는 다수의 EC2 인스턴스에 연결할 수 있습니다. 각 EC2 인스턴스는 완전한 읽기/쓰기 권한을 갖게 됩니다.

 

EBS암호화

EBS 볼륨을 생성하면 즉시 다음과 같은 일이 일어난다.

1. 저장 데이터가 볼륨 내부에 암호화되고 인스턴스와 볼륨 간의 전송 데이터 역시 암호화되된다. 스냅샷 뿐만 아니라스냅샷으로 생성한 볼륨 역시 모두 암호화된다.

2. 암호화 및 복호화 메커니즘은 보이지 않게 처리되고 아무것도 하지 않아도 된다/. 백그라운드에서 EC2와 EBS가 모두 처리하죠

3. 종합적으로 봤을 때 암호화를 사용해야 하는 이유는 지연 시간에는 영향이 거의 없고  KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 갖죠 알고 계시는 게 좋아요 스냅샷을 복사해 암호화를 푼 걸 다시 암호화 활성화를 하는 거죠

먼저 EBS볼륨을 하나 생성하고 ( 여기서 굳이 암호화를 선택 하지 않아도된다. )

그 볼륨을 이용해서 스냅샷을 하나 생성한다. 

그럼 위와 같이 하나가 잘 생성된 것을 확인할 수 있는데, 암호화가 되지 않았다. 기존 볼륨이 암호화 되어있지 않다면 스냅샷으로 만든 볼륨도 암호화 되지 않을까? 그건 아니다. 스냅샷으로 볼륨을 생성할 때 암호화를 할지 말지 다시 한번 선택할 수 있다.

그럼 아래와 같이 같은 볼륨이지만, 하나는 암호화가 된 채로, 하나는 안된 채로 사용할 수 있게된다.

EFS elastic file system

리눅스 기반의 인스턴스에 부착을 할 수있고 가용영역에 상관없이 여러개의 어떠한 인스턴스와도 결합할 수 있다

하나의 EFS로 1a , 1b, 1c와 같은 다른 가용영역에 있는 여러 인스턴스들에 부착할 수 있다.

암호화를 할 수 있고, EFS에 보안그룹을 붙일 수도 있다. 가장 큰 특징은 사용량에 따라 볼륨 크기를 조절해준다.

하지만 이렇게 유연한 나머지 비용은 gp2 기준 3배가 발생한다고 한다. 초당 10gb를 처리할 수 있다고 한다.

 

performance  mode

1. general : 웹 서비스와 같이 지연시간에 민감한 곳에 사용한다.

2. max i/o : i/o를 극대화 하고 싶을 때 사용한다. 병렬처리, 지연시간 최소, ( 빅데이타 , 미디어 프로세싱 등에 사용)

 

throughput mode

1. bursting(기본 모드) : 1tb 전송 속도가 초당 50mib이다. 100mib까지 버스트 할 수 있다.

 

2. provisioned : 버스팅 모드는 사용 공간이 많을 수록 버스팅 용량과 처리량이 증가하지만. 스토리지 용량에 상관없이 처리량을 설정할 수 있다. (1tb전송시에 초당 1gib로 설정 가능 )

 

efs에 저장한 파일들은 기본적으로 standard티어로 저장되는데 이건 검색 할 때 비용이 좀 든다. 따라서 별로 검색을 하지 않는 파일들은

EFS-IA로 설정할 수 있는데 이건 검색비용이 저렴해진다. 예를들어 60일 동안 사용하지 않은 파일들은 EFS-IA로 변경하도록 설정하는 것standard는 자주사용하는 것에 설정, EFS-IA는 자주 사용하지 않는 것에 설정!

 

availibility, durablity 

standard(regional) : 여러 az에 적용가능

one-zone : 하나의 az에만 적용가능, 기본적으로 백업을 지원해줌, 가격이 90%이상 저렴, 개발할때 많이 사용

but 해당 az가 다운되면 이것 역시 같이 다운됨

 

EBS vs EFS

1.EBS

EBS볼륨은 한번에 하나의 인스턴스에만 연결이 가능하다. 그리고 특정 가용영역에만 한정된다. 즉 인스턴스가 한 가용영역안에 존재하니 그 EBS또한 그 영역에 붙어있는 것이다.

gp2 EBS는 용량에 따라 IO가 증가하는데 io 1은 독립적으로 IO를 정할 수 있다.

EBS를 다른 가용영역으로 옮기려고 한다면

1. 스냅샷을 찍는다.

2. 다른 가용영역에서 그 스냅샵으로 볼륨을 생성한다. ( EBS의 스냅샷이나 백업을 만들 때에는  EBS볼륨의 IO를 전부 사용하니 인스턴스를 중지시킨 후에 해야한다 )

EBS의 크기에 따라 값이 결정 다 쓰던 말던 값이 정해짐

 

2.EBS

여러 가용영역에 걸쳐 여러개의 인스턴스와 연결할 수 있다. 다중 AZ이기에 AZ영역 밖에 존재한다.

오직 리눅스 계열에서 사용가능하다. 윈도우에선 사용하기 까다로운듯?

가격은 EBS의 3배정도이다. 조금이나마 줄일 수 있는 방법은 스토리지 티어를 IA로 설정해두면 된다.

EFS는 사용한 만큼만 청구된다.

 

 

'AWS SAA' 카테고리의 다른 글

AWS ELB, ASG  (0) 2023.01.29
AWS EFS 실습  (0) 2023.01.29
AWS Instance Storage  (0) 2023.01.28
AWS IP, ENI, hibernate  (0) 2023.01.27
AWS NAT instance 실습  (0) 2023.01.27