ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS 스토리지 서비스 파고 들기
    Tech/Devops 2020. 4. 26. 01:20

    1. 스토리지(Storage)


    우선, 스토리지(Storage)란, 말 그대로 데이터를 저장하는 저장장소를 의미한다. 원래는 데이터 저장장치 그 자체를 스토리지 또는 스토리지 디바이스라고 불렀으나, 현재는 뜻이 확대되어 전문화, 네트워킹화, 대용량화된 저장기술을 총칭하게 되었다. 예를 들어, 조직 내 스토리지 인프라 구축을 위한 저장, 백업, 재난복구, 보안 등을 모두 고려하는 전문화된 대용량 저장기술을 총칭한다.

     

    2. 스토리지 아키텍처(Storage Architecture)


    스토리지의 종류는 다음과 같다. 우선, 서버 내 기본으로 내장 설치된 구조인 '로컬 스토리지', 그리고 서버 외부의 저장된 구조인 '외부 스토리지', 마지막으로 외부 스토리지와 같이 네트워크 기반의 스토리지를 가상화한 '클라우드 스토리지'가 있다.

     

    2-1. 로컬 스토리지

    우선, 로컬 스토리지는 우리 주변에서도 쉽게 볼 수 있는 구조이다. 예를 들어, 우리가 사용하는 컴퓨터 본체 내 기본으로 장착된 내장 디스크처럼, 서버에 내장되어 있는 스토리지이다. 외부 스토리지를 사용하지 않으므로 물리적 공간 자체를 절약할 수 있으나, 외부 스토리지를 이용할 때와 비교한다면 설치할 수 있는 디스크의 개수와 확장성이 적다는 단점이 있다.

     

    2-2. 외부 스토리지

    다음은 외부 스토리지에 대해서 알아보자. 앞 서 말했던 것처럼, 서버 외부에 존재하는 스토리지로 로컬 스토리지 보다 확장성 및 활용성을 높인 구조라고 할 수 있다. 해당 스토리지에서는 총 3가지의 종류가 또 나뉘게 된다.

     

    2-2-1. DAS

    첫 번째로, DAS(Direct Attached Storage), 케이블로 서버에 직접 연결하는 가장 단순한 유형의 스토리지이며, 아래 그림과 같다. 이 같은 구조는 로컬 스토리지와 유사한 물리적 구조를 지닌다. 그러나 저장장치를 외부에 연결함으로 로컬 스토리지보다 저장공간을 더 쉽게 확장할 수 있다는 장점이 있다.

     

    DAS의 단점으로는, 스토리지가 서버에 종속되어 있다는 점이다. 예를 들어, 특정 데이터에 접근하기 위해서는 꼭 지정된 서버를 거쳐야만 한다. 이에 네트워크 상의 서버가 다운될 경우, 해당 서버에 물리적으로 연결된 스토리지를 이용할 수 없어 큰 문제를 야기할 것이다. 또한, 특정 서버에 부하가 몰려 시스템의 성능이 저하될 수도 있고, 서버나 스토리지 사이에 호환성이 없기에 서버 별로 용량을 확장해 주어야 한다는 단점도 있다. 뿐만 아니라 통합적인 관리가 불가능하기에 각 서버별로 스토리지 마다 필요한 시스템을 가지고 있어야 하는 비효율적 중복 저장도 발생하고, 각 서버별 용량 분할, 데이터 정리, 백업 등의 작업도 반복 수행해야 한다는 불편이 있다.

     

    Direct Attached Storage Architecture

    2-2-2. NAS

    두 번째로, NAS(Network Attached Storage)에 대해서 알아보자. 이름에서 알 수 있듯이 스토리지를 네트워크에 바로 연결해 사용하는 것이다. NAS는 네트워크에 연결함으로써, DAS의 단점인 '용량 확장의 한계'와 '여러 대의 서버가 액세스 불가능'하다는 단점을 해결한다. 또한, NAS는 TCP/IP(NFS, SMB/CIFS, AFP와 같은 프로토콜 사용)라는 기존의 네트워크 인프라를 그대로 사용하면서 확장성 높은 스토리지 네트워크를 구성할 수 있어 비용면에서 매우 경제적이다. 따라서 스토리지 네트워크를 구성할 때 우선적으로 고려되는 방법이다. 하나 NAS의 예시를 들자면, Windows에서의 공유 폴더같은 기능을 수행할 수 있다.

     

    이처럼 NAS는 네트워크를 통해 여러 서버에서 동시 연결해 사용 가능하다. 하지만 기존의 네트워크(Etherent LAN)를 사용하기에 작은 사이즈의 파일이나 커맨드 요청에 신속하게 대응하는 버스트형 전송(Short Burst Transmistion)에 유리하고, 사이즈가 너무 큰 데이터 전송에는 상대적으로 불리하다. 따라서, 로컬 스토리지, DAS, SAS의 방식보다 속도가 매우 느리다 할 수 있다. 이러한 특성 때문에 NAS에서의 대용량 데이터 전송은 네트워크의 심각한 오버헤드 및 네트워크 정체를 야기할 수 있다. 따라서 네트워크 정체로 인한 손실을 줄이기 위해서는 LAN의 충분한 대역폭이 확보되어야 한다.

     

    과거까지는, 100Mbps의 고속 Ethernet으로는 확장성이나 성능에 한계가 있었지만, 기가비트 Ethernet이나 10 기가비트 Ethernet의 등장으로 이 같은 대역폭 문제는 거의 해소되고 있다. 이로 인해 그동안 NAS에서 도입이 어려웠던 데이터베이스, 영샹 스티리밍, 가상머신, 웹페이지 호스팅 등 다양한 용도로 사용되기 시작했다.

     

    조금 구체적으로 사용 용도에 대해서 몇 가지 설명하자면 다음과 같다. 1) 파일 공유 : NAS의 주 용도이며, 데이터를 중앙화하고 스토리지 공간을 효율적으로 활용하는데 적합하다. 개인용부터 중소기업, 대기업 사무실까지 광범위 하게 활용된다. 2) 가상화 환경 : 고성능 NAS의 경우 소규모 가상화 환경을 운영하거나 가상 데스크톱 환경을 구축하는데 적합한 성능과 기능을 가지고 있다. 3) 아카이브 : 스토리지 공간을 필요에 따라 확장할 수 있는 스케일 아웃 NAS의 경우 단순히 데이터를 묵혀 두는 방식의 아카이브가 아닌, 필요에 따라 종종 접근이 가능한 아카이브로 적합하다.

     

    Network Attached Storage Architecture

     

    2-2-3. SAN

    마지막으로, SAN(Storage Area Network)에 대해서 알아보자. SAN은 엔터프라이즈 환경을 겨냥한 스토리지 네트워크로, 기본 개념부터 이전의 방식과는 큰 차이를 보인다. NAS가 기존 네트워크 인프라에 가장 효과적인 방법으로 스토리지를 연결했다면, SAN은 기존의 인프라를 무시하고 스토리지 만을 위한 고속 네트워크를 새로 구축하자는 개념이기 때문이다.

    * SAN은, iSCSI(Internet Small Computer Systems Interface), 파이버 채널, iSER(iSCSI Extensions for RDMA) 프로토콜을 주로 사용함.

     

    대개 서버에 직접 연결할 수 있는 스토리지 용량은 서버에 따라 그 한계가 정해지고, 확장 시 서버 다운을 시켜야하지만 SAN은 서버와 관계 없이 대규모 확장이 가능하면서도 서버 다운 없이 확장시킬 수 있다는 장점이 있다. 또한, 60~80Mb/s의 평균 전송률을 가진 파이버 채널(Fibre Channel)으 사용하기에, 40Mb/s의 기가비트 Ethernet 속도가 빠르다는 장점도 있다. 이 외에도 SAN에서는 PPRC(Peer to Peer Remote Copy)와 같은 재해/재난 복구 솔루션이 결합해 재난 발생 시 저장 데이터의 안전과 신속한 복구가 이루어질 수 있으며, 파이버 채널로 구성되기 때문에 10~20Km까지의 장거리로 서버와 스토리지를 분리해줄 수 있다는 장점이 있다. 즉, SAN은 더 비싼 하드웨어와 소프트웨어를 통해 더 견고하고 튼튼한 환경을 구성했다 할 수 있다.

     

    SAN의 단점은, 앞 서 말했듯이 비싸다는 것이다. 단순히 스토리지 디스크나 테이프 장비만이 아닌, 네트워크 인프라를 그것도 고가의 파이버 채널 스위치 장비를 사용해야 하고, SAN에서 사용해야 하는 소프트웨어의 가격도 만만치 않다. 또한, 이를 운영하고 관리할 수 있는 인력도 턱 없이 부족한 실정이고. 이러한 것들이 모여 총소유 비용을 높이는 악재로 작용하고 있다.

     

    SAN의 용도도 알아보자. 세 가지로 줄여 말하자면, 1) 데이터베이스 : 온라인 금융 거래와 같이 빠른 속도를 요구하고 지연에 민감하며 대규모 데이터베이스를 다루는 환경에 적합하다. 2) 가상화 환경 : 가상 머신과 호스트 간 빠른 입출력 속도를 제공해야 하는 대규모 가상화 구축 환경에 적합하다. 3) 영상 편집 : 후반 작업과 같은 영상 편집 작업에 있어서 빠른 전송 속도와 낮은 지연은 필수 불가결이다. 이 때문에 워크스테이션을 DAS로 직접 연결해 사용하는 경우도 있지만, 효율성을 위해 고성능 SAN을 주로 사용한다.

     

    Storage Area Network Architecture

     

    2-2-4. 유니파이드 스토리지

    추가적으로, 유니파이드 스토리지(멀티 프로토콜 스토리지)라는 NASSAN을 모두 포함한 스토리지도 존재한다. 하나의 유니파이드 스토리지 시스템은 파일 프로토콜인 SMB/CIFS와 NFS를 지원함과 동시에 iSCSI와 파이버 채널을 포함한 블록 수준의 프로토콜도 지원한다.

     

    유니파이드 스토리지의 장점은 스토리지 시스템을 도입할 때 비용과 수고를 아낄 수 있다는 것이다. SAN이나 NAS를 따로 구매해 구축하는 것보다 멀티 프로토콜 환경을 지원하는 유니파이드 스토리지로 스토리지 시스템을 구축하는 편이 비용 효율적이기 때문에 두 방식의 스토리지 인프라를 필요로 하는 중견급 기업으로부터 수요가 많다. 다만, 파일 입출력이나 블록 입출력 성능에 영향을 끼치는 경우가 있기 때문에 고속 데이터 처리가 주 용도인 블록 스토리지로서의 성능은 제대로 발휘되기 어렵다는 한계가 존재한다.

     

    구분 NAS File Server
    관점 스토리지 서버
    역할 파일서버, 스토리지의 역할 파일서버 역할
    저장장치 형태 전용 OS 범용 OS
    가용성 저장된 정보의 무중단 활용 측면에서의 가용성 중시 정보 보호보다는 파일서비스와 파일 공유 기능에 중점
    파일서버 성능 크다 보통
    데이터 용량 500GB 이상 200GB 이하
    파일 서비스를 위한 프로토콜 NFS, SMB/CIFS, FTP, HTTP, AFP 지원 사용 OS에 따라 NFS, SMB/CIFS 지원
    구분 DAS NAS SAN
    구성요소 애플리케이션 서버, 서버 애플리케이션 서버, 전용파일 서버, 스토리지 애플리케이션 서버, 스토리지
    접속장치 없음 Ethernet Switch Fibrechannel Switch
    스토리지 공유 가능(허나, 연결가능 갯수는 제한됨) 가능 가능
    파일시스템 공유 불가능 가능 불가능
    파일시스템 관리 애플리케이션 서버 파일 서버 애플리케이션 서버
    접속 속도 결정 요인 채널속도 LAN과 채널속도 채널속도
    특징 소규모 독립된 구성에 적합 파일 공유를 위한 가장 안정적이고 신뢰성 높은 솔루션 유연/확장/편의성이 가장 뛰어남
    단점 공유가 어려움, 분산환경인 경우 관리가 어려움 트래픽에 따른 LAN 대역폭 소모 증가 초기 투자 비용이 높음

     

    2-3. 클라우드 스토리지

    다음은 클라우드 스토리지에 대해서 알아보자. 클라우드 스토리지는 데이터 스토리지를 서비스로서 관리하고 운영하는 클라우드 컴퓨팅 공급자(AWS, Azure, GCP 등)를 통해 데이터를 인터넷에 저장하는 클라우드 컴퓨팅 모델이다. JIT(Just In Time) 용량 및 비용이 온디맨드로 제공되며 자체 데이터 스토리지 인프라를 구매하거나 관리할 필요가 없다. 또한, 언제 어디서든 데이터에 액세스할 수 있는 민첩성이 있고, 손 쉽게 여러 곳에 데이터를 중복 저장함으로써 안정성과 내구성을 갖출 수 있다. 클라우드 스토리지를 보다 더 간단히 말하자면, 지금까지 이야기했던 스토리지들을 '가상화'했다는 것이다.

     

    이러한 클라우드는 또 여러가지 방식으로 유형이 나뉘게 된다. 우선, 데이터를 보유/구성/표시하는 방식에 의해서 나누어 보자. 1) 파일 스토리지, 2) 블록 스토리지, 3) 오브젝트 스토리지로 나뉜다. 또한, 배치 모델 기준으로도 나눌 수 있다. 1) 비구조적 데이터에 적합한 퍼블릭 클라우드 스토리지, 2) 데이터 제어를 강화하기 위해 회사 방화벽 뒤에서 보호할 수 있는 프라이빗 클라우드 스토리지 서비스, 3) 유연성을 높이기 위해서 퍼블릭 및 프라이빗 클라우드 서비스를 함께 혼합한 하이브리드 클라우드 스토리지 서비스가 있다.

     

    3. 스토리지 유형(Storage Type)


     

    클라우드 스토리지에서 이야기했듯이, 데이터를 보유/구성/표시하는 방식에 의해 스토리지 유형이 구분된다. 간단히 각 스토리지에 대해 설명하자면, 파일 스토리지는 데이터를 파일 규칙에 따라 관리하는 것이고, 블록 스토리지는 특정 영역과 구간을 나눠 데이터를 블록 단위로 관리하는 것이다. 마지막으로 오브젝트 스토리지는 파일에 대한 구체적인 정보를 포함한 메타데이터를 자동으로 생성/보관/관리하는 것이 특징이다. 과연, 해당 스토리지들이 무엇이고, 어떻게 사용되는지 자세히 알아보도록 하자.

     

    * 출처, DELL EMC

    3-1. 파일 스토리지(File Storage)

    파일 스토리지 구조, 출처 : 레드헷

    파일 스토리지는 폴더와 파일로 이루어진 계층 구조를 갖는 가장 일반적인 유형의 스토리지이다. 각 파일은 폴더에 종속되며 폴더 역시 다른 폴더에 종속될 수 있다. 파일 스토리지를 '주차장'에 비유한다면, '주차장 건물'에 해당한다. 만약 주차장이 100층으로 이루어져있으며, 내 차가 90층 언저리에 있다고 해 보자. 그렇다면, 나는 내 차를 타기 위해서는 90층까지 거쳐가서 타야만 한다. 이처럼, 파일 스토리지에서는 데이터들이 계층형 레벨로 정리되어 있고, 데이터의 경로를 찾기 위해서는 역추적해 액세스해야만 한다.

     

    주로 PC에서 파일에 저장된 문서에 액세스할 때마다 파일 스토리지를 사용하게 된다. 파일 스토리지 는기능이 다양하며 거의 모든 것을 저장할 수 있기에, 다수의 복잡한 파일을 저장하기도 좋고, 사용자가 신속히 탐색할 수 있어서 좋다. 그러나, 이러한 경우도 파일이 많이 않을 경우이기에, 분류하고 정리하는데 큰 문제가 없는 것이다. 파일이 계속해서 늘어나면 늘어날수록 점점 분류하고 정리하는 일이 많아지고 찾기가 힘들어질 것이다. 예를 들어, 주차장이 100층이 아니라 10000층으로 이루어져있다면? 아찔할 것이다.

     

    이처럼 파일 스토리지에는 규모가 커짐에 따라 발생할 잠재적 문제가 있다. 그럼에도 불구하고, 파일 스토리지는 개인용 PC나 서버에서 일상적인 작업을 잘 수행하기에 업무 현장 및 중대형 기업에서 잘 사용되고 있다. 또한, 대규모 컨텐츠의 저장소나, 개발 환경, 미디어 스토어 또는 사용자 홈 디렉토리 등과 같은 사례에서 적합한 스토리지로 사용된다. 한 두가지 첨언을 하자면, 파일 스토리지는 일반적으로 위에서 설명했던 NAS(Network Attached Storage) 구조에서 사용되고, AWS에서는 EFS(Elastic File System)이라는 클라우드 파일 스토리지 서비스를 제공하고 있다.

     

    3-2. 블록 스토리지(Block Storage)

    블록 스토리지 구조, 출처 : 레드헷

    파일 스토리지와 오브젝트 스토리지는 파일을 하나의 데이터 단위로 취급한다. 그러나 블록 스토리지에서는 다르다. 이름에서 알 수 있듯이, 데이터를 균일한 크기의 블록으로 쪼개어 분산 배치하게 된다. 또한, 블록들은 연속적으로 저장되지 않고, 가장 편리하고 효율적인 곳에 알아서 배치된다. 이렇게 쪼개어져 배치된다면, 우리는 데이터를 어떻게 액세스할 수 있을까? 바로, 애플리케이션이 작업을 수행하기에 액세스할 수 있다. 사용자가 데이터에 대한 요청을 보내면, 고유 식별값을 통해 나누어진 블록들을 연결하고 결합하는 과정을 거쳐 결과값을 응답하게 된다. 따라서, 블록 스토리지에서 애플리케이션 없이 블록은 그 자체로 의미가 없고, 블록 간 연결은 되어있지 않으며, 소유 정보가 없는 그저 데이터 덩어리일 뿐이다. 이를 바탕으로, 블록 스토리지를 '주차장'에 비유한다면, '주차장'이나 '주차공간'에 해당할 것이다. 엄격하게 정의된 주차공간마다 자동차가 주차되기 때문이다.

     

    블록 스토리지는 단일 경로를 갖는 파일 스토리지와 다르게, 여러 개의 경로를 갖는다. 따라서 데이터에 신속하게 액세스할 수 있다. 즉, 낮은 I/O 레이턴시를 가졌다. 또한, 분산 저장하므로 효율적이고 안정적이기까지 하다. 그렇기에 RDB와 같은 데이터베이스에 적합하며, 대규모 트랜잭션을 수행하는 기업과 대용량 데이터베이스를 배포하는 기업에서 사용한다. 이처럼, 더 많은 데이터를 저장해야할 수록 블록 스토리지를 사용하는 것이 유리하나, 블록 스토리지는 상대적으로 가격이 비싸고 복잡하다는 단점 때문에 한계가 있다.

     

    정리하자면, 블록 스토리지는 파일을 고정된 크기의 블록으로 나누어 저장하는 데이터 스토리지이며, 액세스와 편집이 빈번하게 일어나는 데이터나, 정형 데이터에 적합하다. 주로 DAS(Direct Attached Storage)나 SAN(Storage Area Network) 구조에서 사용되며, AWS에서는 EBS(Elastic Block Store)이라는 클라우드 블록 스토리지 서비스를 제공하고 있다.

     

    3-3. 오브젝트 스토리지(Object Storage)

    오브젝트 스토리지 구조, 출처 : 레드헷

    최근 데이터는 이미지나 영상 등과 같이 복잡하고 용량이 크며, 구조화되어 있지 않은 비정형 데이터들이 다수를 차지하고 있다. 그러나 기존의 파일/블록 스토리지로는 구조화되지 않은 데이터를 다루기 힘들었기에 어려움을 겪고 있었다. 사용자가 직접 데이터를 계층화된 디렉토리에 분류하고, 파일명이나 파일종류에 따라 정해진 태그를 직접 부여해 관리하였기 때문이다. 거기다 데이터를 분류하는 규칙이 저마다 다르고, 개체 수가 많아짐에 따라 분류 단계가 늘어나면 더 복잡해질 수 있다는 문제도 있었다. 그래서 이와 같은 요구에 맞게, 비정형 데이터를 안전하게 저장하고 쉽게 관리할 수 있는 ‘오브젝트 스토리지’가 등장하게 되었다. 오브젝트 스토리지는 저장 시, 자동으로 메타 데이터나 고유 식별 값을 자동으로 생성해 보다 쉽고 편리하게 객체를 관리할 수 있게 해주었다.

     

    조금 더 오브젝트 스토리지에 대해 쉽게 이해하기 위해서, 주차장 사례를 이야기하고자 한다. 일반적으로 우리는 주차하기 위해 빈 공간을 확인하고 직접 주차를 한다. 또한 차량을 다시 찾기 위해 주차한 위치도 기억해야만 한다. 그러나 '발렛 주차'는 다르다. 운전자가 키를 넘겨주고 영수증을 발급받게 되며 이후 차량은 어딘가에 주차된다. 차를 찾을 때도 영수증만 보여주면 차량을 가져다 준다. 오브젝트 스토리지는 이와 같다. 데이터(차량)를 저장할 때, 고유 식별자(영수증)가 제공되며 데이터(차량)을 찾기 위해서는 고유 식별자(영수증)를 통해 색인하기만 하면 된다.

     

    오브젝트 스토리지는, 평면적인 주소 공간에 데이터 객체 그 자체가 저장되므로 높은 확장성을 지녔으며, 접근과 색인의 속도가 빠르다. 또한, 오브젝트 스토리지는 RESTFul Protocol(HTTP)를 사용하기에 GET이나 POST 요청을 통해 데이터를 가져올 수 있어, 저비용으로 구조화되지 않은 많은 양의 데이터를 관리할 수 있다는 장점이 있다. 이 외에도 파일에 대해 가지고 있는 정보가 적기에 파일이 아무리 많아져도 블록 스토리지나 파일 스토리지에 비해 빠르게 작동한다. 

     

    정리하자면, 오브젝트 스토리지는, 클라우드에서 주로 사용되는 스토리지이며, 데이터에 고유 식별자와 메타 데이터를 부여해 안전하게 저장하고, 손 쉽게 데이터에 접근할 수 있는 확장성 높은 저장소이다. AWS에서는 S3(Simple Storage Service)라는 클라우드 오브젝트 스토리지 서비스를 제공하고 있다. 

     

    4. AWS 스토리지 서비스


    서비스명(클릭 시 AWS 문서 이동) 설명
    Amazon S3(Simple Storage Service) 클라우드에서 확장 가능한 스토리지
    Amazon EBS(Elastic Block Store) EC2 블록 스토리지 볼륨
    Amazon EFS(Elastic File System) EC2를 위한 완전 관리형 파일 시스템
    Amazon FSx 완전 관리형 파일 시스템
    AWS Backup AWS 서비스 전체에 걸쳐 중앙 집중식 백업
    AWS Snowball Family AWS에서 데이터를 마이그레이션 하기 위한 물리적 디바이스
    AWS Storage Gateway
    하이브리드 스토리지 통합
    CloudEndure Disaster Recovery
    고도로 자동화된 재해 복구

     

    5. 관련 글로 넘어가기


    • Amazon EBS

    • Amazon EFS

    • Amazon FSx

    • AWS Backup

    • AWS Snowball Family

    • AWS Storage Gateway

    • CloudEndure Disaster Recovery

     

    6. 참고자료


    'Tech > Devops' 카테고리의 다른 글

    Devops Roadmap 2021  (0) 2021.06.03
    AWS SAA C01 시험 후기  (1) 2020.06.16
    CI/CD가 뭐야?  (0) 2020.04.02
    AWS EC2에 Node/Nginx 설치  (0) 2020.03.18
    AWS EC2를 사용해보자  (0) 2020.03.14

    댓글 2

Designed by Tistory.