AWS CLI 설치, S3 데이터 관리 (리눅스)

컴순이·2023년 2월 23일
0

모든 내용은 AWS document에 있으나 한글로 빠르게 필요한 명령어만 습득할 사람을 위함

준비물: 이미 만들어진 S3의 버킷, 권한 있는 AWS 계정
리눅스 PC에서 어떻게 CLI로 이용하냐에 관한 글임

글 읽는 법:
$ 이건 명령어 치는 부분이고 >>는 출력
***은 내가 가린거
링크는 전부 공식 document

시작

getting started and install

설치환경 확인

$ uname -u
>> Linux *** 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Linux, x86 (64-bit)인 것을 확인할 수 있다.

unzip 없으면 설치

$ sudo apt install unzip

설치

설치

설치파일 다운로드

# x86 (64-bit) 프로세서인 경우
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# ARM 프로세서인 경우
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"

$ unzip awscliv2.zip
aws 폴더가 생긴다
$ sudo aws/install -i /usr/local/aws-cli -b /usr/local/bin

-i 에는 프로그램 다운로드 경로
-b에는 Path 변수 저장?

잘 설치 됐는지 버전 확인

$ aws --version
>> aws-cli/2.10.1 Python/3.9.11 어쩌구 저쩌구

로그인 정보

configure quick start

$ aws configure
AWS Access Key ID [None]: ******	# 사용자 이름
AWS Secret Access Key [None]: ******	# 비밀번호
Default region name [None]: ap-northeast-2	# 가까운 서버 (한국)
Default output format [None]: json	# yaml, text, …

S3에 접근 및 사용

REST Endpoint: API가 서버에서 자원(resource)에 접근할 수 있도록 하는 URL = S3에 접근할 수 있는 주소
버킷: 객체에 대한 컨테이너 = 폴더명

REST Endpoint의 주소 = S3:// 할 때 S3
파일 ⊂ 폴더 ⊂ 버킷 ⊂ S3

나는 endpoint를 지정을 안 해 주니까 자꼬 권한이 없다고 오류나서 매번 붙였다. 안 붙여도 되는 사람은 --endpoint-url 옵션을 안 넣어도 된다

user guide-command          document-command
온갖 명령어가 많지만 딱 3개만 쓰겠삼

파일 업로드 & 다운로드

s3 안의 파일과 로컬에서 linux cp 명령어 (copy) 쓰듯이 쓰면 된다 !!

$ aws s3 cp [올릴 파일] s3://[버킷] --endpoint-url [https://***.com]
>> upload: ./[올릴 파일] to s3://[버킷]/[올릴 파일]

예를 들어
내 컴퓨터에 있는 comsun.jpg를 ***.com이란 주소로 접속할 수 있는 S3 서버의 mybucket이라는 버킷으로 넣을란다
이 때는 아래와 같이 쓰면 된다

$ aws s3 cp comsun.jpg s://mybucket --endpoint-url http://***.com
또는
$ aws s3 cp comsun.jpg s://mybucket/comsun.jpg
>> upload: ./comsun.jpg to s3://my_bucket/comsun.jpg

다운로드도 비슷하다


$ aws s3 cp s3://[버킷]/[파일] [로컬위치]
>> download:[s3파일 경로] to [로컬파일 경로]

$ aws s3 cp s3://mybucket . --recursive
>> download: s3://[버킷]/[파일1] to [파일1]
>> download: s3://[버킷]/[파일2] to [파일2]

recursive 옵션을 쓰면 지정 디렉토리 밑의 모든 파일들이 다 가져와진다. mybucket에 있는 모든 파일이 .(로컬의 현재 디렉토리)로 다운로드가 됐다.

파일 확인

리눅스의 ls와 비슷
aws s3 ls —endpoint http://***.com [버킷]/
aws s3 ls —endpoint http://***.com [버킷]/[폴더]

파일 삭제

$ aws s3 rm comsun.jpg s://mybucket --endpoint-url http://***.com


아이고.. 너무 졸려서 이만 글을 마무리 하겠다

profile
음음

0개의 댓글