지구정복

[AWS] 3장 무한대로 저장 가능한 스토리지 만들기 본문

데이터 엔지니어링 정복/Cloud(AWS, Ncloud)

[AWS] 3장 무한대로 저장 가능한 스토리지 만들기

eeaarrtthh 2020. 12. 21. 22:03
728x90
반응형

1. 스토리지(Storage)

스토리지란 컴퓨터에 데이터를 저장하는 저장소의 역할을 수행하는 부품이다. 컴퓨터의 하드디스크와 같다.

스토리지를 서버에 직접 연결할 수 있고, 대용량의 데이터를 저장하기 위해 별도의 스토리지용 네트워크를 구성할 수도 있다.

 

이때 서버에 직접 연결하는 방식을 DAS(Direct Attached Storage)라 하고, 스토리지를 빠른 속도의 네트워크로 연결하는 방식을 NAS(Network Attached Storage)와 SAN(Storage Area Network)라고 한다.

NAS는 LAN(Local Area Network)을 연결하여 사용하기 때문에 비용이 저렴하다.

SAN은 확장이 용이하며, 대규모 엔터프라이즈 환경을 구성하기 적합한 고속의 전용 네트워크를 구성하여 빠른 속도의 스토리지 서비스를 제공한다.

 

또한 SAN은 블록 수준에서 데이터를 저장하고 NAS는 파일 단위로 데이터를 저장한다.

 

AWS는 서비스의 용도에 따라 다양한 스토리지 서비스를 제공한다. 데이터를 무한하게 저장 가능한 Amazon S3(Simple Storage Service)와 대용량의 데이터를 백업 및 보관이 가능한 Amazon Glacier 등이 있다.

 

2. 데이터 백업(Data Backup)

데이터 백업이란, 데이터가 손상되거나 유실되는 것을 대비하여 데이터를 복사하고 다른 곳에 저장하는 것을 말한다.

언제든지 발생할 수 있는 최악의 상황에 대비하기 위해 중요한 데이터를 반드시 백업해야 한다.

 

AWS는 EBS Snapshot 및 AMI 백업 등의 기능을 활용하여 데이터 백업 서비스를 제공한다.

 

3. 스냅샷(Snapshot)

스냅샷이란 특정 시간에 데이터 저장 장치의 상태를 별도의 파일이나 이미지로 저장하는 기술로, 스냅샷 기능을 이용하여 데이터를 저장하면 유실된 데이터 복원과 일정 시점의 상태로 데이터를 복원할 수 있다.

 

4. S3와 Glacier

4.1 Amazon S3(Simple Storage Service)

아마존 S3는 확장성이 뛰어나며, 무한대로 저장 가능하고, 사용한 만큼만 지불하는 인터넷 기반 스토리지 서비스이다. 버킷이라는 리전 내에서 유일한 영역을 생성하고 데이터를 키-값 형식의 객체로 저장한다. 

 

S3는 사용하고 있는 저장 공간만큼 매월 비용을 지불하며, 저장하는 데이터의 크기, 액세스 요청횟수, 데이터 다운로드 용량 등으로 전체적인 비용을 산정한다.

 

4.2 Amazon S3의 주요 특징

-활용 분야

백업 및 복구, 데이터 아카이빙, 빅데이터 분석을 위한 데이터 레이크, 하이브리드 클라우드 스토리지, 재해복구 등

 

-S3의 스토리지 클래스

1. S3 표준 : 가용성 및 성능이 뛰어난 객체 스토리지 서비스 제공한다. 비용은 EBS 대비 20%저렴하고 전송 데이터를 위한 SSL 및 저장 데이터 암호화를 지원한다.

 

2. S3 표준 - IA(Infrequent Access) : 액세스 빈도가 낮지만 필요할 때 빠르게 액세스 해야 하는 데이터를 위한 스토리지 클래스이다. 최근 백업 서비스에 많이 사용된다.

 

3. S3 One-Zone-IA : 액세스 빈도가 낮지만 빠른 액세스가 필요한 데이터를 저장하는 스토리지 클래스이다. 최소 3개의 가용영역(AZ)에 데이터를 저장하는 다른 S3 스토리지 클래스와 달리, 단일 AZ에 데이터를 저장함으로써 S3 표준-IA보다 20% 저렴하다.

 

4. Amazon Glacier : 데이터 보관을 위한 안전하고 안정적, 비용이 매우 저렴한 스토리지 서비스이다. 데이터 아카이빙 및 장기간 데이터 보관 및 오래된 로그 데이터에 대한 저장 용도로 적당하다.

 

4.3 Amazon Glacier

데이터 아카이빙 및 장기 백업을 위한 안전하고 안정적이며 비용이 매우 저렴한 클라우드 스토리지 서비스이다. 가장 엄격한 데이터 보관에 대한 규제 요구사항과 규정 준수 기능을 제공한다.

 

4.4 Amazon Glacier의 주요 특징

- 데이터 접근 방법

세 가지 방법으로 데이터 접근이 가능하다.

1. API / SDK를 이용한 Direct 연결이다. API나 SDK를 활용한 프로그램 개발을 통해 깊게 저장된 데이터를 위한 Glacier에 직접 접속한다.

 

2. S3 라이프 사이클과의 통합이다. S3의 라이프 사이클과 통합을 통해 오래된 데이터에 대해 Glacier로 자동 이관된다.

 

3. Third Party Tool과 AWS Storage Gateway 연동이다. 기존 Backup 인프라와 Third Party Tool과의 연계 및 AWS Storage Gateway 통합을 통해 거부감 없는 방식으로 데이터 백업 및 보관 기능을 제공한다.

 

5. AMI와 Market Place

5.1 AMI(Amazon Machine Image)

EC2 인스턴스 생성에 필요한 모든 소프트웨어 정보를 담고 있는 템플릿 이미지이다.

EC2인스턴스 생성을 위해 인스턴스 시작할 때 AMI를 선택하는 화면에서 본인이 원하는 OS와 Application종류에 따라 AMI 이미지를 선택하면 OS와 Application이 EC2 인스턴스 생성시 그대로 설치된다.

 

이러한 AMI는 이용자들도 언제든지 생성 가능하며, 이후 동일한 환경을 갖는 인스턴스를 손쉽게 생성할 수 있다. 

Auto Scaling 등 자동화할 때, EC2 인스턴스를 다른 리전으로 이전할 때, 상용 솔루션이 설치되어 있는 소프트웨어를 사용하는 경우 AWS Marketplace를 이용하기 위해 AMI를 사용하게 된다.

 

5.2 Amazon Marketplace

AWS에서 실행되는 소프트웨어를 판매 또는 구매할 수 있는 온라인 스토어이다.

 

6. 실습) Amazon S3로 파일 업로드 및 삭제하기

6.1 Amazon S3로 파일 업로드 및 삭제

1. 아마존에 로그인 한뒤 [서비스] -> [스토리지] -> [S3]로 이동한다.

aws.amazon.com/ko/console/

 

AWS Management Console

2020년 11월 30일 - 2020년 12월 18일 | 수백 개의 세션에 액세스하고, 클라우드 리더들의 이야기를 들으며, AWS의 최신 소식을 누구보다 먼저 확인하세요.

aws.amazon.com

 

2. 처음 접속하면 S3 서비스 사용을 위한 전역적으로 고유한 컨테이너인 버킷(Bucket)을 생성해야 한다.

버킷은 리전 단위로 생성되며, 리전 내에 고유한 별칭을 사용해야 한다.

[버킷 만들기] 버튼을 클릭한다.

 

3. [버킷 이름]에 보인이 원하는 이름을 입력하고 [리전]은 아시아 태평양(서울)을 선택하고 [다음]을 클릭한다.

4. 버킷이 생성되었음을 확인하고 '버킷 이름'을 클릭하여 하위페이지로 이동한다.

 

5. [폴더 만들기] 버튼을 클릭 후 폴더명에 "upload_test"를 입력하고 [폴더 만들기]버튼을 눌러 폴더를 생성한다.

 

6. 생성된 폴더명을 클릭하여 폴더 내부로 이동후 [업로드] 버튼을 눌러 [파일 추가] 버튼을 누른다. 그리고 파일을 추가하거나 드래그앤드롭하여 업로드할 파일을 추가한다. 그리고 [업로드] 버튼을 클릭한다.

7. 파일이 정상적으로 업로드되었음을 확인 후 '파일명'을 클릭하여 속성 페이지로 이동한다.

 

8. 업로드된 파일을 확인하기 위해 [객체URL]항목의 전체 접근 경로를 클릭한다.

 

9. 현재는 접근 권한이 없기 때문에 다음과 같이 에러가 표시된다.

 

10. 이전 페이지로 이동후 [퍼블릭으로 설정] 버튼을 클릭 후 다시 [링크]를 클릭하면 다음과 같이 업로드된 이미지를 확인할 수 있다.

 

만약 안될 시 아래를 클릭해서 퍼블릭 액세스 차단 설정을 해제해준다.

 

11. 다시 [객체 URL]을 누르면 이미지를 볼 수 있다.

12. 폴더 또는 파일 삭제를 원하는 경우 삭제할 대상을 다음과 같이 체크하여 선택 후 [삭제]를 클릭한다.

 

6.2 PC의 파일을 Amazon S3로 백업하기

1. 새로운 'backup_test'폴더를 생성한다.

2. AMI CLI 사용을 위해 IAM 계정 생성을 해야한다. [서비스] > [보안, 자격 증명 및 규정 준수] > [IAM]을 클릭한다.

 

3. IAM에서 [사용자] > [사용자 추가]를 클릭하고 [사용자 이름]에 'AWS_Admin'을 입력한다.

그리고 [액세스 유형]에서 '프로그래밍 방식 액세스'를 선택 후 [다음: 권한]을 클릭한다.

 

4. [기존 정책 직접 연결] > 'AdministratorAccess'를 클릭 > [다음: 태그] 클릭 후 [태그 추가] 페이지에서 [다음: 검토]를 누른다. 마지막으로 [사용자 만들기]를 누른다.

 

5. 프로그래밍 접근을 위해 필요한 인증 정보 확인을 위해 [.CSV 다운로드]를 클릭한다.

 

6. AWS CLI설치를 위해 아래 페이지로 이동한다.

awscli.amazonaws.com/AWSCLIV2.msi

그리고 'Windows 에 AWS CLI 버전2 설치'로 링크를 클릭한다. 그리고 설치파일을 설치한다.

 

7. cmd창을 열고 이전에 다운로드받은 CSV파일에서 인증 정보를 확인한다.

CMD 창에 'aws configure'를 입력하고 메시지가 표시되면 다음을 입력한다. csv에서 가린 부분을 차례대로 입력해준다.

 

8. 로컬PC 또는 서버 내 백업할 폴더 정보를 확인후 CMD 창에 

'aws s3 sync '백업할 로컬 파일 경로' s3://버킷명/폴더 경로'를 입력한다.

 

aws s3 sync D:\backup_upload s3://jihoonbucket/backup_test

 

9. S3로 이동후 파일이 정상적으로 동기화 되었는지 확인한다.

파일 백업을 자동화하기 위해 메모장을 이용해서 배치 파일(.bat)을 만들고 "aws s3 sync '백업할 로컬 파일 경로' s3://버킷명/폴더 경로" 를 로컬 PC에 저장한다.

 

10. 제어판 > 관리도구 > 작업스케줄러를 실행하고 또는 시작프로그램 검색하는 곳에 '작업 스케줄러' 검색한다.

작업스케줄러 > 작업 만들기를 클릭한다.

 

11. 이름은 "AWS File Backup", [보안옵션]은 '사용자가 로그온할 때만 실행', '가장 높은 수준의 권한으로 실행'을 선택후

[트리거]탭을 클릭한다.

 

12. [트리거] > [새로 만들기] > [설정] > '매일', '오전 6:00:00', '사용' 선택후 [확인] 누른다.

 

13. [동작] > [새로만들기] > [찾아보기] 이전에 생성한 배치파일을 선택 후 [확인]을 누른다.

14. 이제 왼쪽에 [작업 스케줄러 라이브러리]을 누르고 만든 작업을 클릭후 [실행]을 눌러서 정상 작동 여부를 확인한다.

 

7. 실습) AMI를 이용한 서버 백업과 복원하기

7.2 AMI를 이용한 EC2백업

1. 메인 메뉴의 [서비스] > [컴퓨팅] > [EC2]로 이동한다.

 

2. [인스턴스]에서 백업할 인스턴스 선택후 마우스 오른쪽 버튼 클릭 후 [이미지] > [이미지 생성]을 클릭한다.

3. [이미지 이름]에 '생성할 이미지 이름'을 입력후 [이미지 생성]을 클릭한다.

4. [이미지] > [AMI]에서 AMI가 정상적으로 생성되었음을 확인한다.

 

7.2 AMI를 이용한 EC2 복원

1. [인스턴스]에서 기존 인스턴스 선택 후 [종료]버튼을 누러 기존 인스턴스를 삭제한다.

2. [이미지] > [AMI]에서 AMI이미지 선택후 마우스 오른쪽 버튼 클릭후 [시작]을 누른다.

3. [인스턴스 유형 선택] 페이지에서 인스턴스 유형을 't2.micro'로 선택후 [검토 및 시작]을 누른다.

4. [인스턴스 시작 검토] 페이지에서 인스턴스 내용 확인후 [시작]을 누른다.

5. [키 페어 선택] 페이지에서 '기존 키 페어 선택'을 선택하고 아래 체크박스 선택후 [인스턴스 시작]버튼을 클릭한다.

6. [인스턴스] 페이지로 이동후 신규로 생성된 인스턴스의  연결을 시도해본다.

7. 백업된 AMI로 생성된 인스턴스에 정상적으로 접속이 된다.

 

 

 

 

 

[출처]

아마존웹서비스 - 권영환

728x90
반응형
Comments