코딩공부/Python Django

python django heroku + aws s3 이용하기 (버킷 생성 및 key 발급)

integerJI 2020. 1. 2. 12:13

<!--문제점-->

 

저번 시간에는 heroku에 만든 프로젝트를 배포하여 보았습니다.

 

하지만 시간이 지나니 문제가 나타났습니다.

 

바로 heroku가 media(동적) 파일 저장을 지원 안 하기 때문에 이러한 현상이 일어나고 있습니다.

 

그래서 이 문제를 해결하기 위하여 aws사의 s3 버킷을 이용해

 

서버에 올라오는 동적, 정적 파일들을 s3 버킷에 따로 저장을 하기로 하였습니다.

 

<!--aws 버킷 생성하기-->

 

https://aws.amazon.com/ko/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

예측 분석 Formula One Group에서 Amazon SageMaker를 사용하여 레이스를 최적화 Formula 1에서 어떻게 Amazon SageMaker와 다른 AWS 서비스를 사용하여 레이스 의사 결정을 최적화하고 팬 경험을 개선하는지 알아보십시오. 자세히 알아보기  변혁 시작 Formula One Group은 인프라 대부분을 온프레미스 데이터 센터에서 AWS로 이전하고 Amazon SageMaker를 비롯한 AWS 기계 학습 서비스에서 이를

aws.amazon.com

aws에 가입하여 콘솔에 로그인을 한 뒤 s3버킷을 검색하여 들어가 줍니다.

 

s3버킷에 들어왔다면 버킷 생성을 눌러 사용할 버킷을 만들어 줍시다.

 

만들 때에는 이름만 설정하고 모두  다음을 눌러 버킷을 생성하여 줍니다.

 

이제 사용할 버킷은 완료가 되었습니다.

 

이 버킷을 사용하기 위해서 저희는 계정의 AWS_SECRET_ACCESS_KEY와 AWS_ACCESS_KEY_ID를 알아야 합니다.

 

s3 버킷 설정

 

이제 s3 버킷에 들어와 해당 버킷의 빈 공간을 눌러 권한에서 퍼블릭 액세스 차단을 비활성화해주어야 합니다.

 

버킷 이름의 빈 공간을 누르면 좌측처럼 팝업창이 뜨는데 여기서 권한을 눌러줍시다.

 

눌렀다면 여러분들은 모든 퍼블릭 액세스 차단이 활성화되어있을 것입니다.

 

이제 편집을 눌러

 

체크박스를 비워두고 저장을 눌러주면 끝!

 

이 부분은 생성할 때 권한을 풀어도 되는데 까먹어서 추가하였습니다. 사진 순서대로 진행하여도 무방!

 

*주의*

이후 진행하는 부분에 대해서는 매우 중요하니(과금과도 연결되는 부분) 무조건 보안에 신경 써서 진행해 주시기 바랍니다.

 

<!--key 발급하기-->

 

aws 홈으로 돌아와 이번엔 iam를 검색하여 이동해 줍니다.

 

 

iam에 들어와 사용자를 눌러 사용자를 추가하여 줍시다. (저는 이미 한번 만들어서 목록에 사용자가 있어 화면은 다를 수 있습니다.

 

사용자 이름과 체크박스를 선택 후 다음으로 넘어갑니다.

 

이곳에서 이제 새로운 그룹을 생성하여 줍니다.

 

그룹 이름을 정하고 제일 첫 번째인 admin을 선택 후 그룹 생성

 

이제 그룹을 설정 후 모두 아무것도 안 하고 다음을 눌러줍니다.

 

짠 이제 .csv를 다운로드하여본다면

 

엑셀로 열어보면 저희가 사용에 필요한 access key와 secret key를 발급받은걸 확인할 수 있습니다.

(파일이 안 열린다면 엑셀에 파일을 끌어 다시 한번 열어보세요! 저는 그랬답니다.)

 

이 키는 매우 중요한 키입니다. 노출에 많이 신경 써야 합니다. 

 

S3 사용자 권한 추가하기

 

저번 강의 때 만들었던 사용자에게 S3버킷 권한을 추가해 주어야 합니다.

 

먼저 기존 정책 직접 연결을 눌러줍니다.

 

정책 필터에 s3를 입력하여

 

AmazonS3FullAccess를 선택해 준 뒤에 다음을 눌러 권한을 추가해 줍시다.

 

권한이 추가되었습니다.

 

Q. 사용자를 생성할때 넣어주면 안 되나요?

A. 가능합니다. 단지 저번 강의에서 까먹었을 뿐..