키보드워리어

【AWS】S3의 기능을 활용해보자! 본문

개발 관련/AWS 정리

【AWS】S3의 기능을 활용해보자!

꽉 쥔 주먹속에 안경닦이 2022. 8. 11. 10:00
728x90

안녕하세요 【키보드 워리어】
블로그 방문자 여러분, 안경닦이입니다.


오늘은 AWS - S3 에 대해 포스팅해보겠습니다~


S3란?

 

:Amazon Simple Storage Service(Amazon S3)는

업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다.

 

 

S3에는 버킷이라는 개념이 있어요. 나의 파일들을 저장해놓은 곳이라고 생각하시면 됩니다.

버킷설정

 

그리고 버킷은 서비스에 따라 설정도 다양하게 할 수 있어요.

 

 

S3의 운영방식

 

S3에 파일 업로드를 진행하면 URL이 부여되는데요.

웹사이트와 프로그램을 연동해주는 것이 객체 URL입니다!

 

이 URL를 브라우저 주소창에 호출하면 업로드 한 파일을 볼 수 있죠?

 

S3는 이미지 등의 파일들을 전문적으로 저장하는 스토리지 서버입니다.

 

스토리지 서버에 파일들을 저장한 후 URL 주소를 통해 다운을 받는 방식이죠.

 

대표적으로 우리가 사용하는 웹을 예시로 살펴보면 이미지들을 많이 볼 수 있어요.

이미지의 경우 웹 서버, API 서버를 통해 URL 주소를 전달받습니다.(이미지 자체를 받기에는 용량이 커요.)

그러면 URL 주소를 통해 파일 스토리지에 접근해서 이미지를 다운로드하고 보여주는 거죠.

 

데이터베이스에도 파일을 저장할 수 있습니다. 이건 RDS 편에서 다루겠습니다.

 

 

참고로 파일에 Public 한 권한을 주지 않는다면 접근할 수 없습니다.

 

접근금지는 버킷의 설정을 바꿔주면 볼 수 있습니다.

 

 

본인이 운영하고 싶은 서비스의 정책에 맞게 설정해줍시다.

 

 

접근 관리 IAM

 

Amazon S3의 데이터를 보호하기 위해서,

기본적으로 사용자는 직접 생성한 S3 리소스에 대한 액세스 권한만 가집니다.

 

 

사용자를 생성하고 액세스를 관리하는 것에는  AWS Identity and Access Management(IAM)가 있습니다.

이 IAM을 사용해서 S3와 프로그램을 연동해서 사용해줍니다.

 

라이브러리 SDK

 

SDK는 Software Development Kit의 약자로 프로그래밍을 돕는 라이브러리라고 생각하시면 됩니다.

AWS SDK를 이용하시면 개발과 연동해서 AWS를 사용할 수 있게 됩니다. 

 

AWS 서비스의 모든 제품들은 SDK 라이브러리를 
거의 모든 언어에 제공하기 때문에 개발언어와 연동해서 사용합니다.

 

 

https://awscli.amazonaws.com/AWSCLIV2.msi Window 버전

https://awscli.amazonaws.com/AWSCLIV2.pkg MAC 버전

 

 

cmd, 터미널에서 아래와 같이 입력합니다.

aws -version
aws configure

 

 

그러면 아이디와 비밀번호, region 이름과 포맷을 입력해주어야 합니다.

 

 

여기서 주의할 점은 입력할 아이디와 비밀번호가 IAM을 생성시킬 때 발급받은 ID와 PW라는 점입니다~

※아이디와 비밀번호 입력 후 에러가 없을 때에는 별다른 언급이 없습니다.

 

라이브러리 SDK설정 후 S3에 파일 업로드해보기

 

터미널에서 한 번 아래와 같이 입력해볼까요?

 

Aws s3 cp {파일명} s3://{버킷 이름} —-acl public-read

 

이렇게 작성해주시면

나의 로컬 pc에서 aws s3저장소로 사진을 올리는 것이 가능합니다.

 

 

S3는 정적 호스팅을 이용해서 외부에 공개하는 것이 가능합니다.

 

깃허브의 pages 기능처럼,

aws의 정적 호스팅은 저장된 파일을 웹사이트처럼 만들어줍니다.

s3 서비스에서 > 속성 > 정적 호스팅 > 편집 > 활성화를 켜주면 외부에 공개됩니다.

 

※왜, 굳이 사용 할까요?

 

aws s3를 사용해보서 웹사이트 호스팅 기능을 이용해볼 때,

html, javascript, css 파일로 웹사이트를 만들기 위해

 

별도의 파일들 베포 될 서버, apahce, nginx와 같은 제품 설치가 필요합니다.

그리고 이런 부분들을 지속적으로 관리해줘야 하는데요.

 

s3 정적 웹사이트 기능을 이용한다면, 위에 부분들을 신경 쓰실 필요가 없습니다.

이렇게 우리가 관리해야 할 서버가 없고, 우리가 원하는 기능과 설정값들을 맞춰주기만 하면 됩니다.

 

아키텍처의 개선을 위해서 사용합니다.

 

비용 계산

 

AWS를 이용하는 것은 사실 유로 서비스이기 때문에, 비용 결제를 필요로 합니다 😂😂

처음 아이디를 만들 때 테스트 결제를 진행하고, 까먹고 있으시면 몇 달 후에 통장에서 금액이 갑자기 빠져나갈 수 있어요!

이는 S3뿐 아니라 다른 AWS의 모든 서비스들도 동일합니다!

 

 

내가 결제해야 하는 금액이 어느 정도인지를 아는 것도 중요하지요.

특히 회사 서비스를 이용하는 것이라면요 ㅎㅎ;;

 

오른쪽 위 나의 계정을 입력하여 결제 대시보드를 클릭해보면

내가 결제해야 하는 금액을 어느 정도 계산해서 알려주어 참고할 수 있습니다.

 

개인적으로 공부하는 것이라면 큰 금액이 나가진 않습니다.

 

 

하지만 내 통장에서 1원이라도 나가는 게 싫으시다면,

AWS의 서비스를 모두 제거해주세요!

728x90