스토리지란, 컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품이다.
컴퓨터의 하드 디스크와 동일한 역할을 수행하는 부품이라고 이해하면 쉽겠다.
스토리지를 서버에 직접 연결할 수도 있고, 대용량의 데이터를 저장하기 위해 별도의 스토리지용 네트워크를 구성할 수도 있다.
이때, 서버에 직접 연결하는 방식을 DAS(Direct Attached Storage)라고 하고, 스토리지를 빠른 속도의 네트워크로 연결하는 방식을 NAS(Network Attahced Storage)와 SAN(Storage Area Network)라고 한다.
NAS는 LAN을 연결하여 사용하기 때문에, 비용이 저렴하다는 특징이 있다.
SAN은 확장이 용이하며, 대규모 엔터프라이즈 환경을 구성하기 적합한 고속의 전용 네트워크를 구성하여 빠른 속도의 스토리지 서비스를 제공한다.
NAS와 SAN의 가장 큰 차이점은, SAN은 블록 수준에서 데이터를 저장하지만, NAS는 파일 단위로 데이터에 접속한다는 것이다.
OS 입장에서 보면, SAN은 일반적으로 디스크로 나타나며, 별도로 구성된 스토리지용 네트워크가 존재한다. 반면, NAS는 OS에 파일 서버로 표시된다.
AWS는 서비스의 용도에 다라 다양한 스토리지 서비스를 선택적으로 사용할 수 있다. 데이터를 무한하게 저장 가능한 Amazon S3와 대용량의 데이터를 백업 및 보관이 가능한 Amazon Glacier 등 용도에 따라 다양한 종류의 스토리지를 이용할 수 있다.
참고할만한 블로그 포스팅 : NAS/SAN/DAS에 대해
데이터 백업이란, 데이터가 손상되거나 유실되는 것을 대비하여 데이터를 복사하고 다른 곳에 저장하는 것을 말한다. 저장장소는 동일장비 또는 다른 장비의 하드디스크 공간일 수도 있고, 별도의 백업 테이프 또는 장비일 수도 있다.
대부분 회사 내 it 담당자는 평상시에는 데이터 백업의 중요성에 대해 실감하지 못하다가, 실수로 중요한 데이터를 날리는 등의 경험을 해보면, 백업의 중요성에 대해 깨닫게 된다.
데이터 백업은 서버를 이전하거나 교체하는 경우에도 이루어져야 하며, AWS는 EBS Snapshot 및 AMI 백업 등의 기능을 활용하여 데이터 백업 서비스를 제공한다.
스냅샷은 기술적인 용어로, 특정 시간대에 데이터 저장장치의 상태를 별도의 파일이나 이미지로 저장하는 기술로, 스냅샷 기능을 이용하여 데이터를 저장하면 유실된 데이터 복원과 일정 시점의 상태로 데이터를 복원할 수 있다.
일반적으로 스냅샷은 데이터 분석, 데이터 보호 및 데이터 복제와 같은 작업을 위해 수행되며, 재해복구와 같은 장애 상황에서도 데이터 복원을 통해 중요하고 긴급한 상황에서도 최상의 데이터 보호 수단이 될 수 있다. 스냅샷은 데이터 연속성을 요구하는 상황에서 데이터를 보호할 뿐만 아니라, 보다 높은 앱 가용성을 제공하고 대용량의 데이터백업관리를 단순화하여 운영관리 비용을 최소화 할 수 있다.
AWS는 EBS에 대한 스냅샷을 제공함으로서, 손쉽게 서버의 데이터 백업/복원 및 다른 EC2 또는 다른 리전으로 EBS 복사 기능을 통해 인스턴스 migration을 지원한다.
또한 이를 활용한 다양한 재해복구 시나리오를 제공한다.
Amazon S3 는 Simple Storage Service의 약자로 확장성이 뛰어냐며, 무한대로 저장 가능하고, 사용한 만큼만 지불하는 인터넷 기반 스토리지 서비스이다.
버킷(bucket)이라는 리전 내에서 유일한 영역을 생성하고, 데이터를 키-값(key-value) 형식의 객체로 저장한다. S3는 비용이 매우 저렴하며, 간단한 정적 웹 서비스를 위한 웹 사이트를 만들 수 있다.
S3 서비스는 스토리지 기술을 근간으로 하며, 파일 단위의 접근만 지원하기 때문에 EBS 서비스를 대체할 수 없다.
S3는 사용하고 있는 저장 공간만큼 매월 비용을 지불하며, 저장하는 데이터의 크기, 액세스 요청 횟수, 데이터 다운로드 용량 등으로 전체적인 비용을 산정한다.
주요 특징
2006년에 출시된 최초의 AWS 서비스
객체 기반의 무제한 파일 저장 스토리지
URL을 통해 손쉽게 파일 공유 기능 제공
99.999999999%의 내구성
정적 웹 사이트 호스팅 서비스 제공 기능
활용 목적
백업 및 복구 (backup & storage)
데이터 아카이빙 (data archiving)
빅데이터 분석을 위한 데이터 레이크 (reference : The difference between data lake & data warehouse)
하이브리드 클라우드 스토리지(hybird cloud storage)
재해복구 (disaster discovery)
(중요) S3 스토리지 클래스
아래의 그림에서는, 총 6개이고 aws 공식 홈페이지에서도 6개로 확인 가능한데,
대략적으로 4개에 대해서만 파악하고 있으면 된다.
Glacier은 데이터 아카이빙 및 장기 백업을 위한 안전하고, 안정적이며 비용이 매우 저렴한 클라우드 스토리지 서비스이다.
99.999999999%의 안전성을 제공하도록 설계되어 있으며, 가장 엄격한 데이터 보관에 대한 규제 요구사항(sec rule17a-4, pci-dss, hipaa/hitech, fedramp, eu gdpr 및 disma)도 충족할 수 있는 종합적인 보안 및 규정 준수 기능을 제공한다.
S3의 개별 스토리지 영역인 'bucket'과 유사한 'vault' 라는 개별 스토리지 영역을 생성하여 데이터를 보관하며, console을 통한 업로드로 지원하며 별도의 api를 이용하여 데이터에 대한 저장 기능을 제공한다.
일반적으로 S3에 저장되는 데이터는 라이프사이클 옵션을 활용하여 일정 기간 이상, 지난 데이터에 대해 보다 저렴한 Glacier 로 이동하여 저장하는 옵션을 사용할 수 있다.
S3와 같은 99.999999999% 내구성 제공
몇분에서 몇시간 내 데이터 꺼내기 제공(클래스에 따라)
S3 대비 최대 77% 저렴한 가격
아카이빙, 장기간 백업 및 오래된 로그 디이터
Secure, Durable, High-Scalable
데이터 보관에 대해서는 프리티어를 제공하지 않음(단, 월별 10GB의 Amazon Glacier 데이터 검색 무료 제공)
1) API/SDK를 이용한 Direct 연결
2) S3 라이프 사이클과의 통합
3) 3rd Party Tool과 AWS Storage Gateway 의 연동
AMI 는 Amazon Machine Image 약자로, EC2 인스턴스 생성에 필요한 모든 소프트웨어 정보를 담고 있는 템플릿 이미지이다. 본인이 원하는 OS와 Application 종류에 따라 AMI 이미지를 선택하면 OS와 Application 이 EC2 인스턴스 생성 시 그대로 설치된다.
AMI는 개인 사용자들도 언제든지 생성 가능하며, 이후 동일한 환경을 갖는 인스턴스를 생성하기 위해 이용할 수 있다. Auto Scaling 시, EC2 인스턴스를 다른 리전으로 이전해야 할 때, 상용 솔루션이 설치되어 있는 s/w를 사용하는 경우, AWS MarketPlace를 이용하기 위해 AMI를 사용할 수 있다.
AWS에서 실행되는 소프트웨어를 판매 또는 구매할 수 있는 온라인 스토어로, 35개의 카테고리에 걸쳐 1280개 이상의 소프트웨어 판매업체가 제공하는 4,200개 이상의 s/w를 보유하고 있다.
OS, Security, Network, Stroage, BI(Business Intelligence), Database, Media 등 다양한 분야에 걸친 솔루션들과 Application을 검색하고, 구매하고, 배포 및 관리할 수 있는 원-스톱(one-stop) 쇼핑을 지원한다.
순서 1. aws console > S3에 들어가서, 아래와 같이 버킷을 생성한다.
순서 2. 폴더 만들기 > 폴더 생성 > 테스트로 아무 이미지 파일 업로드
순서 3. 업로드된 파일을 확인하기 위해 "객체 URL" 항목의 전체 접근 경로를 클릭 > 현재는 접근 권한이 없기 때문에, 에러가 표시된다.
순서 4. 권한 부여를 위해, 이전 페이지로 이동해서 [퍼블릭으로 설정] 버튼을 클릭한 후, 다시 [링크]를 클릭하여 확인해보면, 업로드된 이미지 파일을 확인할 수 있다.
퍼블릭으로 설정하고, 다시 url를 조회해보면, 정상적으로 조회가 가능하다.
AWS 명령줄 인터페이스(CLI)를 사용하여 Amazon S3에 액세스할 수 있도록 구성하고, 로컬 PC 또는 서버에서 배치 파일(Batch File)과 윈도우 예약작업을 활용하여 설정된 일정에 자동으로 백업할 수 있도록 구성한다.
순서 1. S3에 접속한 후, 미리 생성된 버킷 내에 백업 테스트를 위해, 다음과 같이 폴더 만들기를 통해 "backup_test" 폴더를 생성한다.
순서 2. CLI 사용을 위해 IAM 계정 생성이 필요하다. 상단 메뉴 중 [IAM] 에서 "AWS_Admin"이라는 이름의 사용자로, AdminstratorAccess 정책을 연결하여 생성해준다. 프로그래밍 접근을 위해 필요한 인증 정보를 확인하기 위해, [.csv 다운로드] 버튼을 클릭하여 인증정보 파일도 함께 다운로드 해준다.
순서 3. AWS CLI 설치를 위해 Windows 버전 AWS CLI Version 2를 다운로드 받아, 실행한다.
AWS CLI는 여기서 다운로드 받을 수 있다.
어려운 거 없다. 그냥 다운로드 하고 쭉- 진행해서, finish 해준다.
순서 4. 이전에 다운로드 받은 csv 파일을 열어, 인증 정보를 확인하고 입력하여 접속한다.
순서 5. s3 에 만들어놓은 bucket에 들어 있는 data들을 로컬 폴더에 복사하려니, 자꾸만 bucket 명이 없다는 에러가 떠서, 아애 cli를 통해 make_bucket을 해버렸다. (관련한 명령어들은 aws 공식 guidance - s3로 파일 백업을 스크립트하는 방법을 참조하여 진행하였다.)
순서 6. 아래와 같이, 로컬에 있던 png파일이 버킷의 폴더 안으로 옮겨진 것 (동기화된 것)을 확인할 수 있다.
순서 7. 이제는 반대로, 클라우드(s3)에 들어있는 test02.png 파일을 로컬 디렉토리로 옮겨보고자 한다.
순서 8. 로컬폴더에 test02.png 파일을 클라우드로부터 다운로드 받았고, 로컬 디렉토리에 들어가서 test02.png가 정상적으로 다운로드 받아졌음을 확인하였다.
순서 9. 이제는 이 두 파일들을 모두 cli 명령어 입력을 통해 삭제해보겠다.
순서 10. 다시 bucket에 들어가면 모두 삭제된 모습을 확인할 수 있다.
=> 이를 통해, AWS CLI를 사용하여 클라우드에서 파일을 생성/복사/검색 및 삭제하는 방법을 배웠다.
순서 1. 인스턴스 페이지에 접속하여, 우클릭 > 이미지 > 이미지 생성을 통해 AMI를 이용하여 EC2를 백업해놓는다.
순서 2. 인스턴스를 삭제하고, 생성된 이미지를 이용하여 다시 인스턴스를 생성함으로서, EC2를 복원해본다.
이미지를 사용해서 새롭게 다시 인스턴스를 생성함
순서 3. 백업된 AMI로 생성된 인스턴스에 정상적으로 접속이 가능하다.
(참고로, 새로 생성된 instance의 경우 inbound 규칙 (보안규칙) 설정을 잘 봐줘야 한다.
putty 다시 붙는데, config가 틀리면 안 붙는다! )
-끝-