AWS

EC2 Instance Storage

S_N_Y 2024. 3. 4. 08:13

 

# 들어가기 앞서.. - EBS 볼륨이란?🧐

 

- 네트워크 드라이브(물리적 드라이브 X) :

인스턴스와 EBS 볼륨이 서로 통싢기 위해서는 네틑워크를 필요로 한다. 그리고 네트워크를 사용하기 위해 컴퓨터가 다른 서버에 도달할 때, 지연이 생길 수 있다. 네트워크 드라이브라 EC2 인스턴스에서 분리도 될 수 있고 다른 인스턴스로 연결될 수도 있다.

- 특정 Availability Zone(가용영역)에 고정 :

특정 region에 생성된 볼륨은 다른  region으로 연결이 X, 그러나 'SnapShot(스냅샷)'을 이용하면 다은 가용영역으로도 볼륨을 옮길 수 있다.

- 볼륨이라 용량을 미리 결정해야 한다 :

해당 프로비전 용량에 따라 요금이 청구되고 용량은 그때그때마다 늘릴 수 있다고 한다.

 

#0 볼륨 생성시 하나 주의할 점 📢 (가용영역)

볼륨을 생성할 때, 가용영역(Ability Zone)만 좀 더 신경쓰면 된다.

EBS 볼륨은 특정 가용영역에 대해 생성하기 때문이다.

현재의 EC2 인스턴스가 있는 곳과 동일한 지역을 선택하여야 한다.

(하지만 대부분 이 글을 읽는 분들은 한국에서 만들 것이니 ap-northeast-2c로 넣으면 된다!)

인스턴스 -> 해당 EC2 인스턴스 -> 네트워킹에서 확인 가능

 

#1 스냅샷이란?

EBS 볼륨을 가지고 스냅샷을 설정할 수 있다고 들어가는 말로 언급한 적이 있는데 스냅샷은 '원하느 시점에만 백업'한다고 말할 수 있다. 해당하는 시점의 상태를 백업으로 남겨놓는다는 개념이며 볼륨을 삭제해도 해당 백업을 통해 복구가 가능하다는 특징이 있다.

(여러 가용영역과 region의 복제에도 쓸 수있다 - 데이터의 일부는 AWS 내 다른 region으로 전송할 수 있다는 것)

 

<스냅샷의 기능>

- 스냅샷 아카이브(SnapShot Archive) :

스냅샷을 또 다른 스토리지 티어인 '아카이브 티어'라는 곳으로 옮길 수 있는데 비용이 상대적으로 훨씬 싸긴 한데 아카이브로부터 스냅샷을 복구하려면 시간이 걸려서 급히 복구 안해도 될만한 것이 여기에 저장되어야 한다.

- 스냅샷 휴지통(Recycle Bin) :

보통 삭제하면 없어지는데 휴지통을 설정해두면 삭제한 모든 스냅샷이 휴지통으로 보관이 된다. 그리고 설정한 기간, 그 이후부터 일년 사이의 기간에 따라 스냅샷이 휴제통에서 삭제되므로 그 점도 유의해야 한다..!

 

#2 AMI - 나만의 AMI 생성 후 EC2 인스턴스에 적용하기

인스턴스를 생성할 때 추천해준 아마존 머신 이미지를 사용했었는데 그렇게 사용자 지정 AMI를 만들거나 커스텀 AMI를 만들 수 있다. AMI는 사용자 지정 EC2 인스턴스를 나타낸다.

각자의 소프트웨어 구성에 대해 운영체제를 정의/설정해서 모니터링 도구를 설정할 수도 있는데 이때 자체적으로 AMI를 만들면 부팅과 구성의 시간이 단축된다..! 따라서 AMI를 지속적으로 구성하고 특정 region에 맞도록 구축함으로써 이들을 원하는 region에 복사해놓거나 AWS 글로벌 인프라를 활용할 수 있다.  

 

+) 만든 AMI를 EC2에 적용할 때의 팁 :

#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
echo "<h1> Hello World from $(hostname -f)</h1>" /var/www/html/index.html

나머지는 직전 전 글에 '인스턴스 만들기' 같이 하면 되는데 User data(고급 세부 정보)에 이미 있는 AMI를 httpd를 다시 설치하지 않도록 원래의 중간 코드를 지우고 위와 같은 명령어를 넣으면 된다.

 

#3 EC2 인스턴스 스토어

EC2 인스턴스에 네트워크 드라이브 연결은 좋다. 그러나 그 성능은 '제한'될 수가 있다. 성능 자체는 뛰어나지만 이보다 더 높은 성능을 요구할 때가 있고 이때는 EC2 인스턴스에 연결된 하드웨어 디스크 성능이 향상되어야 한다. EC2는 가상머신이지만 실제로는 하드웨어 서버에 연결되어 있다. 이와 같은 서버에는 해당 서버에 물리적으로 연결된 디스크 공간을 갖고 특정 유형의 EC2 인스턴스는 'EC2 인스턴스 스토어'라고 불리고 이는 해당하는 물리적 서버에 연결된 하드웨어 드라이브를 가르킨다.

I/O 성능 향상을 위해 활용할 수 있지만 EC2 인스턴스 스토어를 중지하거나 종료하면 해당 스토리지 또한 손실되어서 주의해야 한다.

 

그러면 언제 쓰는 것이 좋을까?🧐

-> 버퍼, 캐시, 스크래치 데이터, 임시 콘텐츠를 사용하려는 경우 등등 이것들을 보관한 좋은 장소가 되긴 하지만 장기적인 스토리지는 될 수 없다(장기적인 스토리지는 EBS 볼륨 이용).  EC2인스턴스의 기본 서버에 장애가 발생할 때에 해당 EC2 인스턴스가 연결된 하드웨어에도 장애가 발생해서 데이터 손실에 대하 위험이 존재한다. 따라서 EC2 인스턴스 스토어를 사용할 때에는 니즈에 따라 데이터를 백업해두거나 복제해두어야 하는 점 명심해 두어야 한다..!

#4 EFS - 앨라스틱 파일 시스템 📂

이 시스템은 한 번에 수백 개의 EC2 인스턴스에 마운트할 수가 있다.(이전에 EBS 볼륨은 한 번에 한 EC2만 연결할 수 있었다.)

EFS는 Linux EC2 인스턴스에서만 사용할 수 있다.

그리고 여러 가용영역에서 사용이 가능하다는 점이 좋다

-> 하나의 가용영역에 있는 인스턴스에 연결되었다고 해도 같은 EBS 볼륨은 다른 가용영역의 인스턴스와 연결할 수 있다는 것이다.

그리고 가용성과 확장성이 좋아서 좋은 만큼 비용은 상당하다

(해당하는 용량에 대한 비용만 내면 되긴 하다)

 

<EBS와 EFS의 차이점>

이해를 위한 이미지

스냅샷은 두 개의 가용영역이 있을 때, 하나의 가용영역에 대한 하나의 인스턴스만 연결이 된다. 그리고 특정 가용영역에 대해서만 한정적이다.. EBS를 다른 가용영역으로 옮기려면 스냅샷을 생성하고 이를 이용해서 새로운 가용영역에 해당 EBS 볼륨을 복사해야 한다

=> 심지어 복사본일뿐 동기화된 복사본이 아니다.

 

EFS는 동시에 모든 특정 가용영역에 있는 인스턴스가 EFS 드라이브에 마운트될 수 있다. 이는 모든 파일이 공유된다는 뜻으로 다른 시스템과 공유하여 쓸 수 있다👍

 

✅짤막한 개념 정리

EBS 볼륨은 인스턴스의 데이터가 종료된 이후에도 지속되고 EC2 인스턴스 스토어는 종료 후에는 데이터를 보관하지 않는다.

보안 그룹을 통해 HTTP 트래픽과 SSH 트래픽을 EC2 인스턴스로 전달할 수 있다.