Profile picture

[Linux] AWS S3로 데이터 백업하기

JaehyoJJAng2023년 05월 02일

AWS 명령줄 인터페이스

AWS 커맨드를 CLI 환경에서 사용하려면 AWS CLI를 설치해야 한다.

이 명령줄 인터페이스는 파이썬에서 실행되므로 PC 또는 서버에 Python3이 설치되어 있어야 한다.


pip 설치

$ sudo apt-get install -y python3-pip

AWS CLI 설치

$ pip install --upgrade --user awscli
$ sudo apt-get install -y awscli

IAM 계정 생성하기

  • 계정이름 : modern-linux

image
image


S3 버킷 목록 확인

아래 명령어를 입력하면 현재 계정에서 만든 S3 버킷들이 출력된다.

$ aws s3 ls

현재 modern-linux 계정에서는 아무런 S3 버킷도 생성되지 않았기에 아무것도 출력되지 않는다


버킷 생성하기

새로 만든 계정이면 아직 아무것도 없으니 버킷 생성 명령(mb)으로 버킷을 만들자.
버킷을 만들 때 버킷명은 이 계정뿐 아니라 전체 S3 시스템에서 고유한 이름이어야 한다.

따라서 아래와 같이 mybucket 이라는 버켓명을 설정했을 시 에러가 발생한다

$ aws s3 mb s3://mybucket

make_bucket failed: s3://mybucket An error occurred (BucketAlreadyExists) when calling the CreateBucket operation: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.

자주 사용하지 않는 단어와 숫자를 결합해서 생성하자

$ aws s3 mb s3://linux-bucket0620

make_bucket: linux-bucket0620

백업 준비

백업할 파일이 홈 디렉터리 아래 dir2backup 디렉토리에 있다면 다음과 같이 명령하면 된다

$ aws s3 sync /home/<사용자 계정>/dir2backup s3://linux-bucket0620

위 명령을 처음 실행할 때는 원본 디렉토리에 있는 파일들이 모두 S3 버킷에 올라가고, 그 이후에는 새로 만들거나 변경된 파일만 전송된다


간단 스크립트 작성

$ #!/bin/bash

AWS=$(which aws)

${AWS} s3 sync /home/${USER}/dir2backup s3://linux-bucket0620

Loading script...