AWS - 5 [EC2 스토리지]

_Block·2022년 9월 3일
0

AWS

목록 보기
6/27
post-thumbnail

👆 EBS 볼륨

인스턴스가 실행 중인 동안 여결 가능한 네트워크 드라이브를 말합니다.

말이 어렵지 우리가 모르는 사이에 계속 사용했던 기능으로 인스터스가 종료된 후에도 데이터를 계속해서 유지하고 있습니다.

쉽게 말하면 USB와 같은 역할을 합니다.

하나의 USB는 하나의 컴퓨터 에만 연결가능하고, 다른 컴퓨터로 연결도 가능합니다.

이러한 역할을 하는 것이 CCP EBS볼륨 입니다.

대신 EBS볼륨은 특정 가용영역에 종속되어 있기 떄문에 A라는 가용영역에서 생성된 EBS 볼륨은 B에서는 사용이 불가능 합니다.

  • 하지만 스냅샷이라는 것을 활용하면 이동 가능합니다.
정리를 하자면

하나의 EC2에는 최소 한개의 EBS 볼륨이 필요하며 이러한 형태를 CCP레벨의 EBS볼륨 이라고 합니다.

가용영역에 기본적으로 종속되어 있으며, 하나의 EC2인스턴스에 여러개의 EBS볼륨이 접속이 되는 것은 문제가 없습니다.
- 쉽게 말해 USB를 하나의 컴퓨터에 여러개 연결하는 것 입니다.

USB처럼 컴퓨터에 연결을 하지 않아도 존재하며 원할떄만 연결하여 사용 하면 됩니다.

기본적으로 생성되는 EBS볼륨은 default값이 EC2종료시에 삭제되는 기능을 가지고 있지만 추가적인 EBS볼륨은 EC2종료시에 삭제되지 않습니다.

  • 이 옵션은 Aws ClI에서 EC2인스턴스를 생성할 떄 수정 가능합니다.

👆 EBS 볼륨 실습

EC2인스턴스를 선택하여 Storage탭으로 이동을 하면 루트장치 정보를 확인 가능합니다.

새로운 EBS볼륨을 생성해 보겠습니다.

스토리지에서 EBS볼륨을 선택하면 EBS대시보드가 나오고 해당 화면에서 볼륨생성을 클릭합니다.

기본 셋팅은 그대로 진행을 하지만 가용영역은 한번 확인해 보아야 합니다.

앞서 말했듯이 EBS볼륨은 하나의 가용영역에 종속되기 떄문에 EC2인스턴스가 생성되어 있는 가용영역을 확인하여 같은 가용영역으로 설정해 주어야 합니다.

  • EC2의 가용영역은 EC2인스턴스 대시보드에서 확인 가능합니다.

이후 생성을 하면 두개가 생성이 되게 되며, 하나는 root볼륨, 하나는 방금 생성한 볼륨입니다.

그러면 방금 생성한 볼륨을 만들어진 EC2에 연결해야 합니다.

매우 간단하게 만들어진 볼륨을 클릭하여 작업 - 볼륨연결을 통해 만들어진 EC2에 연결 하면 됩니다.

그러면 보이는 바와 같이 EC2인스턴스에 두개의 볼륨이 연결된 것을 확인할 수 있습니다.

👆 EBS 스냅샷

스냅샷이 필요한 이유는 백업입니다.

앞서 말했듯이 기본적으로 EBS볼륨은 가용영역에 종속되어 있지만, 스냅샷을 통해서 데이터를 백업하고 해당 데이터를 다른 가용영역으로 옮기는 행위를 할 수 있습니다.

스냅샷 휴지통이라는 옵션이 있습니다.

스냅샷을 찍고 삭제를 하면 휴지통으로 이동하게 되는데 해당 휴지통에서 설정한 기간(1년)이 지날떄까지 보관하고 있다가 삭제가 되는 기능입니다.

실수로 데이터를 옮기는데 실패하거나 오류가 생겼을때 해당 기능을 활용하면 됩니다.

👆 EBS 볼륨 유형

🐾 gp2/gp3

범용 SSD 볼륨으로 가장 범용적으로 사용되는 볼륨 입니다.

🐾 io1/io2

최고 성능을 자랑하는 SSD볼륨입니다.

미션 크리티컬이자 지연시간이 낮고, 대용량의 워크로드에 사용 됩니다.

🐾 st1 볼륨

저렴한 HDD볼륨입니다.

잦은 접근과 처리량이 많은 워크로드에 사용됩니다.

🐾 sc1 볼륨

가장 저렴한 HDD볼륨으로

접근 빈도가 낮은 워크로드에 사용 됩니다.

어떤 볼륨을 선택하는 것은 어렵습니다.

기본적으로 EC2에서는 gp, io가 부팅 볼륨으로 사용 될 수 있습니다.

이 부분에서 중요한 내용은 gp2, IOPS 프로비저닝 입니다.

gp2는 짧은 지연 시간을 자랑하며 가장 효율적인 스토리지 입니다.

부팅 볼륨에서는 가상 데스크톱, 개발, 테스트 환경에서 사용이 가능하며

용량은 1GB에서 16TB까지 다양합니다.

gp3와의 차이점은 성능의 차이만이 있으며

gp3는 IOPS(초당 작업 수)을 16,000 
처리량은 1,000MB/s까지 증가시킬 수 있습니다.

gp3는 독자적으로 처리량, IOPS만을 다룰 수 있지만

gp2는 그 둘이 연결되어 있기 떄문엥 처리량만을 높게 하겨 설정 할 수는 없습니다.
- 일반적으로 처리량의 3배의 IOPS가 필요합니다.

이 부분에서 중요한 점은 gp2/gp3스토리지는 비용 효과적이고 gp2는 gp3와 다르게 IOPS, 처리량을 독자적으로 처리가불가능 하다는 점 입니다.

👆 AMI

AMI는 커스텀한 EC2인스턴스 입니다.

EC2인스턴스를 특정 리전에 맞게 만듬으로써 동작합니다.

가장 좋은 예시는 AWS Linux 2가 있습니다.

  • 즉 자신이 만드는 커스텀한 EC2입니다.

👆 EFS

네트워크 파일 시스템을 의미 합니다.

네트워크 파일 시스템이기 떄문에 여러개의 EC2에 연결 가능합니다.

높은 가용성으로 확장성이 뛰어나지만 gp2 EBS 볼륨에 비해 3배 정도 비싸며

사용할 떄 마다 비용을 지불하기 떄문에 사전 용량이 없습니다.

Basic한 사용 방법은 EFS를 보안 그룹으로 감싸고 여러 인스턴스를 연결하여 사용 합니다.

대표적으로 웹 서비스 제공, 데이터 공유 등에 사용이 되며 EFS에 접근을 하기 위해서, 올바르게 사용하기 위해서는 보안 그룹을 설정해야 합니다.

기억 해야 할 점 : Linux 기반 AMI에서만 호환이 됩니다.

가장 큰 장점으로는 용량을 미리 정하지 않아도 되기 떄문에 시스템이 자동으로 확장이 되고, 사용하는 데이터의 용량만큼만 비용이 부과됩니다.

  • 온디맨드 형태의 EC2와 같습니다.

🐾 EFS 성능

🍊 EFS Scale

  • 수천 명의 파일시스템을 가질 수 있는 스케일에, 10 GB/s이 상의 용량을 가집니다.
  • 자동으로 용량이 증가 됩니다.

🍊 EFS Mode

  • 생성할 떄 EFS의 성능 모드를 설정할 수 있습니다.
  • Performance 모드

    • 기본 모드로 지연 시간이 중요한 경우에 사용 됩니다.
    • 벙렬 처리가 가능합니다.
    • 웹 서버 , CMS, 미디어 처리에 적합합니다.
  • Throughput모드

    • 기본값은 Bursting모드로 50MiB/s 정도 속도의 데이터 전송을 지원합니다.
    • 부수적으로 프로비저닝 기능도 지원 합니다.

프로 비저닝 : 캐시와 유사하게 시스템 자원을 배치 해 두었다가 필요 시 시스템을 즉시 사용 가능한 상태로 미리 준비해 두는 것

🐾 EFS 스토리지 클래스

일정 시간 뒤 파일을 다른 계층으로 이동하는 기능입니다.

Standard 계층은 자주 접속하는 파일에 적용되며

EFS-IA 계층은 파일을 찾을 떄 비용을 지불해야 하지만, 저장할 떄 비용은 낮습니다.

수명 주기라는 정책도 있는데 이는 EFS-IA를 활성화 하고자 한다면 설정해야 합니다.

만약 Standard계층에 있는 파일을 일정 주기 이상 사용하지 않으면 EFS-IA계층으로 자동으로 이동하는 정책 입니다.

🐾 EFS의 가용성, 내구성

EFS를 AZ(가용영역)으로 설정하면 환경에 좋습니다.

만약 한 AZ가 다운되어도 EFS 시스템에는 영향이 없기 떄문입니다.

만약 하나의 AZ에 보관하여 사용한다면 개발에는 좋지만 백업이 자동으로 활성화되고, 이를 관리해야 합니다.

이는 EFS-IA계층과 호환이 가능하여 이를 EFS One Zone-IA라고 부르며, 비용을 90%가까이 절감 할 수 있습니다.

👆 EFS 실습

AWS CLI를 활용하여 EFS로 이동하여 생성을 클릭합니다.

Basic하게 만들 수 있지만, 좀더 많은 부분을 알아보고 위해 사용자 지정을 통해서 진행을 하였습니다.

  • 사용자 지정 버튼을 클릭하여 이동합니다.

기본적으로 앞서 말했듯이 여러 AZ에 저장을 하는 것이 Basic하게 사용 가능하지만,

현재는 EFS를 만들어 보는 과정이기 떄문에 비용 절감을 위해 One Zone를 선택 합니다.

  • 그후 원하는 AZ를 선택합니다.

앞서 말했듯이 One Zone은 하나의 AZ에 보관을 하는 것이기 떄문에 AZ가 다운되는 현상을 방지할 수 없습니다.

그후 가장 중요한 수명 주기가 있습니다.

비용 절감을 위한 선택사항이기 떄문에 적합하게 선택해 줍니다.

  • 너무 적은 기간을 설정하면 비용이 더 많이 발생할 수 있기 떄문에 적절한 기간을 설정 합니다.

다음으로는 성능 모드를 선택합니다.

일반적인 모드(General Purpose)는 웹 서비스 작업, 미디어 처리에 적합하며

Max I/O모드는 용량, 연산이 최대가 되기 떄문에 빅데이터 작업에 사용 됩니다.

  • 대신 지연시간은 더 늘어나게 됩니다.

Test용 이기 떄문에 General Purpose로 진행하였습니다.

다음으로는 처리량 모드를 설정 합니다.

버스트 모드는 사용되는 양에 따라서 자동으로 늘어나는 모드를 말하고, 프로비저닝 모드는 설정한 처리량으로 계속해서 처리를 하는 것을 의미합니다.

버스트 모드로 진행하였습니다.

다음으로는 네트워크 설정입니다.

기본적으로 OneZone을 사용하였다면 하나의 AZ, Basic을 사용하였다면 해당 리전에 있는 모든 AZ가 보이게 됩니다.

보이는 바와 같이 보안 그룹을 설정을 해야 합니다.

  • security그룹으로 이동 합니다.

현재 저의 security 그룹이며, 새로운 보안 정책을 생성하겠습니다.

  • Test용 이기 떄문에 인바운드 규칙은 설정하지 않고 단순하게 만들고 이후 EFS셋팅에서 만들어진 보안그룹으로 셋팅하겠습니다.

이후 파일 시스템 정책은 선택사항이기 떄문에 넘어가면 새로운 EFS가 만들어 집니다.

이후 생성된 EFS를 EC2에 마운트 해보겠습니다.

일단 새로운 EC2를 생성하기 위해서 EC2시작하기를 선택후 해당 창에서 먼저 네트워크 설정을 해 줍니다.

네트워크 설정에서 서브넷을 default값으로 셋팅해준뒤

스토리지 볼륨에서 세부정보 표시를 클릭후 공유 파일 시스템 추가를 클릭합니다.

  • 클릭을 하게되면 자동으로 EFS가 설정됩니다.

👆 EBS vs EFS

🍊 EBS

  1. 특정 가용역영에 한정되며, 오직 한개의 인스턴스와 연결 가능합니다.

  2. gp2 EBS는 크기가 늘어나면 IO도 증가하지만 ,io1은 독립적으로 증가 시킬 수 있습니다.

  3. 다른 가용영역에서도 사용하고자 한다면, 스냅샷을 찍고 데이터를 옮겨 주어야 합니다.

  • 스냅샷을 찍을떄에는 EBS의 모든 IO를 사용하기 떄문에 반드시 사용하지 않을떄 찍어야 합니다.

🍊 EFS

  1. 여러개의 가용영역에 맞춰 많은 인스턴스에 연결 가능합니다.

  2. linux에서만 사용 가능합니다.

  3. EBS보다 대략 3배 정도가 비쌉니다.

profile
Block_Chain 개발자 입니다. 해당 블로그는 네트워크에 관한 내용을 다루고 있습니다.

0개의 댓글