본문 바로가기
AWS

[AWS] S3 - 파일 업로드, AWS CLI로 백업, 백업 자동화

by JooRi 2023. 11. 22.
728x90
반응형
SMALL

* Amazon S3(Simple Storage Services)

Amazon S3은 무한대로 저장 가능하고 사용한 만큼만 지불하는 스토리지 서비스이다.

버킷(Bucket)이라는 리전에서 영역을 생성하고 데이터를 키값 형식의 객체(Object)로 저장한다.

S3는 파일 단위 접근만 지원하기 때문에, EC2 인스턴스용 Block Level의 스토리지 서비스인  EBS(Elastic Block Storage)를 대체할 수 없다.

 

S3의 주요 특징은 아래와 같다.

 

1. 백업 및 복구(Backup & Restore)

버전 관리를 통한 데이터 보호 기능 및 데이터 백업 및 복원 기능을 제공한다.

 

2. 데이터 아카이빙(Data Archiving)

아카이브 요구사항을 충족할 수 있게 다양한 스토리지 클래스를 제공한다.

용도에 맞게 스토리지 클래스 옵션을 선택할 수 있다.

 

S3 스토리지 클래스 설명
S3 표준(S3 Standard) - 자주 액세스하는 데이터용
- 무제한 저장 가능한 스토리지
S3 표준-IA(S3 Standard Infrequent Access) - 액세스 빈도가 낮고 빠른 액세스가 필요한 데이터용
- 백업용으로 많이 사용
S3 One Zone-IA - 액세스 빈도가 낮고 빠른 액세스가 필요한 데이터용
- 단일 가용 영역(AZ)에 데이터 저장(비용 저렴)
Amazon Glacier - 데이터 보관을 위해 안전하고 안정적
- 비용이 매우 저렴(S3 Standard 대비 77%까지 저렴)

Amazon Glacier는 장기 백업을 위한 안전하고 안정적이며 비용이 매우 저렴한 클라우드 스토리지 서비스이다.

S3의 스토리지 영역인 Bucket처럼 Vault라는 영역을 생성하여 데이터를 보관한다.

Console을 통한 업로드 및 API를 이용한 데이터 저장 기능을 제공한다.

 

3. 빅데이터 분석을 위한 데이터 레이크(Data Lake)

사진, 비디오 등 어떤 파일을 저장하든 상관없이 S3를 빅테이터 분석용 데이터 레이크로 사용 가능하다.

 

4. 재해 복구(Disaster Recovery)

데이터 보호 및 타 리전으로 교차 리전 복체 서비스를 제공한다.

 

* S3 파일 업로드

버킷 생성

S3로 이동해서 [버킷 만들기] 클릭 후 버킷 이름과 리전(서울)을 설정한다.

 

버킷 생성

체크박스를 위처럼 만들어주고 [버킷 만들기]를 클릭한다.

 

버킷 생성 완료

버킷을 생성된 것을 확인한 후 버킷 이름을 클릭하여 하위페이지로 이동한다.

 

폴더 생성

파일을 업로드할 폴더를 생성한다.

 

파일 추가

생성한 폴더명을 클릭하여 폴더 내부로 이동하여 파일 추가 후 업로드한다.

 

파일 URL 접속
에러

업로드된 파일명을 클릭하여 속성 페이지로 이동한 후 객체 URL에 접속하면 에러가 뜬다.

현재 파일 접근 권환이 없기 때문에 권한을 퍼블릭으로 변경 후 접속하면 된다.

또는 파일을 다운로드해서 확인할 수 있다.

 

* S3 파일 백업

폴더 생성

먼저 버킷에 백업할 폴더를 생성한다.

 

IAM 생성

데이터 백업을 위해 AWS CLI를 사용하려면 IAM 계정을 생성해야 한다.

[서비스] - [보안, 자격 증명 및 규정 준수] - [IAM] - [사용자 생성]으로 이동하여 사용자 이름을 입력한다.

 

IAM 생성

권한 옵션의 직접 정책 연결에서 AdministratorAccess 정책을 선택하고 사용자를 생성한다.

 

콘솔 암호 생성

생성된 IAM 사용자 이름을 클릭하여 내부 페이지로 이동 후 콘솔 암호를 생성하고 .cvs 파일을 다운로드한다.

 

액세스 키 생성

액세스 키를 생성하고 .csv 파일을 다운로드한다.

 

Command Line Interface - AWS CLI - AWS (amazon.com)

 

Command Line Interface - AWS CLI - AWS

aws-shell은 명령줄 셸 프로그램으로서, AWS 명령줄 인터페이스를 사용하는 새로운 사용자와 고급 사용자 모두에게 도움이 되는 편의 기능 및 생산성 기능을 제공합니다. 주요 기능은 다음과 같습

aws.amazon.com

위 링크에 접속하여 AWS CLI 프로그램을 다운로드하고 설치한다.

 

.csv 파일

C - 사용자 - 사용자 - .aws 폴더로 이동 후 다운로드 받은 .csv 파일을 연다.

 

aws configure

cmd 창을 열고 aws configure 명령 후 .csv 파일 내용을 입력하여 S3에 접속한다.

 

aws s3 sync [백업 폴더 경로] [버킷 내 폴더 경로]

C 드라이브에 폴더를 하나 생성하고 백업할 테스트 파일 하나를 만들어준다.

cmd 창에 'aws s3 sync [백업 폴더 경로] [버킷 내 폴더 경로]'를 입력하면 파일이 백업된다.

'aws s3 sync [백업 폴더 경로] [버킷 내 폴더 경로]' 명령은 백업할 폴더 내 전체 파일을 S3 버킷 내 폴더와 동기화시키는 명령이다.

 

백업 완료

S3로 이동하면 파일이 정상적으로 백업된 것을 확인할 수 있다.

 

* S3 백업 자동화

배치 파일 생성

백업을 자동화하기 위해 .bat 배치 파일을 생성하고,

백업 명령 'aws s3 sync [백업 파일 경로] [버킷 내 폴더 경로]'을 저장한다.

 

작업 스케줄러

작업 스케줄러를 실행하고 작업 만들기를 클릭한다.

 

작업 만들기

작업 이름과 보안 옵션 선택 후 [트리거] 탭으로 이동한다.

 

작업 만들기 - 트리거

[트리거] - [새로 만들기]에서 작업을 설정하고 '사용' 체크박스 선택 후 확인을 클릭한다.

 

작업 만들기 -- 동작

[동작] - [새로 만들기]에서 이전에 생성한 배치 파일을 첨부한다.

 

작업 스케줄 설정을 마치고 실행하여 동작 여부를 확인해 본다.

 

 

728x90
반응형
LIST

댓글