AWS에는 AWS CLI(Command Line Interface)가 있어 로컬에서 S3 bucket를 동기화하여 사용할 수 있으며, ls, rm, cp와 같은 리눅스 명령어를 사용할 수 있다.
기본적인 사용방법은 다음과 같다.

1. AWS CLI 설치

나는 주로 Ubuntu를 사용 해 Ubuntu를 기준으로 설명한다. Windows에서 사용하고 싶다면 설치 방법은 아래와 같다.

Windows AWS CLI 설치

Ubuntu에서는 아래의 명령어로 설치할 수 있다.

1
$ apt install -y awscli

만약 아래와 같은 오류 발생 시 apt update 후 설치하면 정상적으로 진행된다.

1
E: Package 'awscli' has no installation candidate

설치가 완료되면 기본 설정을 해 주어야 한다. 설정하기 위해서는 aws configure를 사용한다.

1
2
3
4
5
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]: 
Default region name [None]: 
Default output format [None]:

첫 두 항목(AWS Access Key ID, AWS Secret Access Key)는 AWS 홈페이지에서 생성할 수 있다. https://aws.amazon.com/ko/에서 로그인 후 AWS 소개 > 내 보안 자격 증명 > 액세스 키(액세스 키 ID 및 비밀 액세스 키) > 새 액세스 키 만들기를 선택 해 새로 키를 생성한다.

그럼 위와 같이 키 값을 확인할 수 있는데, 이를 복사 해 각각 AWS Access Key IDAWS Secret Access Key에 넣어주면 된다. 또한 세번째 값인 Default region name에는 내가 생성 한 버킷의 region을 넣어주면 된다.

서울의 경우, ap-northeast-2를 넣어주면 된다. 마지막 값인 Default output format은 따로 입력하지 않아도 된다. 정상적으로 설정이 완료 됬는지는 아래의 명령어를 통해 확인할 수 있다.

  • 현재 계정에 생성 된 bucket 목록 확인
1
$ aws s3 ls
  • 현재 계정의 bucket 내 파일 목록 확인
1
$ aws s3 ls s3://[bucketname]

정상적으로 설정이 완료 됬으며, bucket이 존재 할 경우 출력되는 예시는 다음과 같다.

1
2
3
4
5
$ aws s3 ls
2020-02-06 02:29:29 [bucketname]                                                                                                         
$ aws s3 ls s3://[bucketname]
2020-02-06 02:32:37      26075 test.png                    
2020-02-06 03:01:22         12 test.txt 

2. 기본 사용법

AWS CLI를 통한 S3 사용 방법은 아래와 같다.

1) 버킷 생성하기

1
2
$ aws s3 mb s3://[bucketname]
make_bucket: [bucketname]

이때, mbMake Bucket을 의미한다. bucket의 이름은 AWS 전체에서 고유한 이름이어야 한다.

2) 목록 확인

bucket 목록을 확인하려면 아래와 같다.

1
2
$ aws s3 ls
2020-02-06 02:29:29 [bucketname]  

만약 bucket 내의 파일을 확인하고 싶다면 아래와 같이 사용할 수 있다.

1
2
3
$ aws s3 ls s3://[bucketname]
2020-02-06 02:32:37      26075 test.png                    
2020-02-06 03:01:22         12 test.txt 

3) 파일 업로드

1
2
$ aws s3 cp [localfilepath] s3://[bucketname]/[filename]
upload: [localfilepath] to s3://[bucketname]/[filename]

이 때, 업로드 하는 파일에 public 읽기 권한을 부여하고 싶다면 뒤에 --acl public-read를 추가 해 주면 된다.

1
$ aws s3 cp [localfilepath] s3://[bucketname]/[filename] --acl public-read

4) 파일 다운로드

1
$ aws s3 cp s3://[bucketname]/[filename] [localfilepath]

파일을 업로드 할 때와 반대로 사용하면 된다.

5) 파일 삭제

1
$ aws s3 rm s3://[bucketname]/[filename]