AWS[S3, IAM]

sihwan_e·2020년 10월 3일
0

AWS

목록 보기
1/3

우선 AWS는 일반적으로 배포할때 사용한다고 알려져있다.
그 중에서도 이번에는 S3과 IAM 사용법에 대해 알아보겠다.

S3

아마존 S3(Amazon S3, Simple Storage Service)는 아마존 웹 서비스에서 제공하는 온라인 스토리지 웹 서비스이다. 아마존 S3는 웹 서비스 인터페이스를 통해 스토리지를 제공한다.
파일 서버라고 생각하면 편하다.
우선 s3는 트래픽 걱정이 없기 때문에, 한꺼번에 많은 사용자가 사용해도 문제가 없으며, 파일 수에도 제한이 없기 때문에 대용량이어도 문제가 없다.
하지만 서비스를 쓴만큼 비용이 청구되니 조심하자.

1. 버킷 생성하기

(Amazon S3에 데이터를 업로드하려면 먼저 AWS 리전 중 하나에 Amazon S3 버킷을 생성해야 합니다. )

버킷이름을 설정해주고, 이번엔 일단 옵션구성이나 권한설정에서 건들 것은 딱히 없다.
설정한 옵션을 확인한다음 버킷을 생성하면된다.

2.IAM 설정하기

그런 다음 IAM 설정해줘야한다..

AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어한다.

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/intro-structure.html
꼭 시간내서 읽어 숙지 하도록 하자!

s3 버킷을 이용하기 위한 작업의 연장선이다.
aws의 기능 하나하나에 권한을 줄수있는데, 그런 권한을 설정하고 관리하는 그러한 서비스이다.

일단 사용자를 추가하자.
사용자이름을 기입하고, 프로그래밍 방식 액세스를 선택하자.
이제 사용자에게 access를 부여하기 위해 그룹 생성을하자.

현재 s3 서비스를 이용할것이기 때문에 S3FullAccess를 체크.

액세스 키 id는 중요하고, 다시 확인할수 없기때문에 .csv파일 다운로드를 해두자.!!!!!!!!!!!!!!!!!!

여기까지 세팅을 완료하면 이제 s3 연동을 할수 있게 되었다.

3. S3 이용하기

우선 S3 연동을 위해서는 2가지의 모듈이 필요하다.
pip install boto3
pip install django-storages
(storages 는 settings.py의 installed app에 추가해놓을것)

Boto는 HTTP API 호출을 숨기는 편한 추상화 모델을 가지고 있고, Amazon EC2 인스턴스 및 S3 버켓과 같은 AWS 리소스와 동작하는 파이선 클래스를 제공합니다.
https://aws.amazon.com/ko/blogs/korea/now-available-aws-sdk-for-python-3-boto3/

그럼 settings.py 에 가서

아까 받은 csv파일을 이용해서 액세스 키아이디와 시크릿 엑세스 키를 적어주고,public-read해주고,
그 다음 현재 지역을 설정해주는데,
현재 설정 해둔 지역을 잘모르겠으면 주소를 눌러보면 알수있다.

다음으로는 urls.py로 가서,
from django.conf.urls.static import static
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

해당 부분을 주석 처리해줄텐데, 왜냐하면 이건 로컬에서 테스트를 위해 만든 임시 저장소 이기 때문에, 향후 s3를 이용할것이기 때문에 필요가 없다.


버킷 에서 퍼블릭 액세서 설정편집에 들어가 해당 체크를 해제시킨다.

그리고 이제 python manage.py runserver 해준다.

그리고 게시글을 한번 올려봅시다.

그런데...
기존의 올렸던 게시물들이 전부 엑박이 뜨는 문제가 발생한다.

이것은 permission에 문제가 있는것인데,

해당이 전부 체크가 되어있는지 확인하자.

profile
Sometimes you gotta run before you can walk.

0개의 댓글