PC 로컬 파일을 AWS S3에 저장하기
AWS S3가 처음이신 분은 선행으로 S3가 무엇일까? 를 참고하시면 됩니다.
이전에는 AWS 웹사이트에서 파일을 버킷에 업로드해봤습니다.
PC(Mac) 환경에서 간단한 명령어를 이용해 로컬 파일을 Amazon S3에 저장해보도록 하겠습니다.
개발 환경 및 사용 기술
- 운영체제 : mac (linux, window도 일부 변형해 적용 가능)
- AWS CLI
- AWS S3
1. S3에 버킷 생성
s3에서 백업 테스트를 위한 버킷을 생성합니다. 저는 버킷 안에 백업 파일이 들어갈 'folder1'라는 폴더를 생성했습니다.
2. IAM에서 사용자 추가
AWS CLI를 이용하기 위해서는 IAM 계정 생성이 필요합니다. IAM 서비스로 이동해서 '사용자 추가'를 클릭합니다.
사용자 이름을 임의로 입력하고 "프로그래밍 방식 액세스"를 선택합니다.
AdministratiorAccess 권한 선택
[정책 설정]에서 '기존 정책 직접 연결'을 클릭하고 "AdministratorAccess"를 클릭합니다.
[태그 추가]에서 다음을 클릭합니다.
[사용자 추가]에서도 마찬가지로 다음을 클릭합니다.
인증 정보 .csv 다운로드
.csv 다운로드를 클릭해 인증정보를 다운로드합니다
다운로드한 파일을 열면 다음처럼 인증 정보가 있습니다.
4. AWS CLI 다운로드
AWS CLI를 mac에서는 brew를 이용해 간편하게 다운로드할 수 있습니다.
window와 linux의 설치 방법은 조금씩 다르므로 공식 사이트를 참고해주시면 됩니다.
설치하는데 시간이 조금 필요합니다.
brew install awscli
5. "aws configure” 명령어로 인증정보 입력
위 csv 파일에 있는 "Access Key Id", "Secret Access Key" 값을 입력합니다.
Default Region name은 "ap-northeast-e", default output format은 "json"을 입력합니다.
6. "aws s3 sync ‘백업할 로컬 파일’ ‘s3://버킷명/폴더 경로’"를 입력
백업할 로컬 파일을 backuplog.log로 만들었고 backup이라는 폴더 하위에 위치시켰습니다.
다음과 같이 명령어를 입력하면 업로드 성공 로그가 나타납니다.
aws s3 sync ‘백업할 로컬 파일’ ‘s3://버킷명/폴더 경로'는 로컬 폴더 전체의 파일을 "s3://버킷명/폴더 경로"로 동기화시켜주는 명령어입니다.
실제 리눅스 서버 환경에서 위 명령어와 함께 crontab과 shell을 사용하면 서버에서 주기적으로 서버의 특정 파일을 s3에 자동으로 백업해줄 수 있습니다.
일일이 파일을 백업하는 프로세스를 자동화해 매우 편리합니다.
7. s3로 이동해 파일이 정상적으로 동기화되어있는지 확인
s3에 로컬 파일이 원하는 폴더에 업로드된 것을 확인할 수 있습니다.