코딩뚠뚠

[AWS] 카톡분석 프로젝트-2 / API Gateway 통해 S3에 파일업로드 본문

공부/AWS

[AWS] 카톡분석 프로젝트-2 / API Gateway 통해 S3에 파일업로드

로디네로 2022. 6. 4. 15:58
반응형

 

 

이전장 에서는 Lambda 함수를 만들고 API Gateway 트리거를 추가해줬다.

 

[AWS-lambda] Lambda 구축하기-1

웹서버 구축을 위해 EC2 를 사용하려다가 Lambda로 급선회했다. 먼저 Lambda를 포스팅한 후 다시 EC2를 포스팅 해보려 한다. EC2 -> Lambda 로 변경한 이유 우선 내가 구현해보려는 서비스는 많은 리소스

dbstndi6316.tistory.com

이번장에서는

 

1. AWS의 클라우드 스토리지인 S3 만들기

2. API Gateway를 통해 S3에 파일 올리기

 

를 해보려 한다.

 

아래 그림에서 왼쪽 Client file upload 부분에 해당된다.

 

 


 

S3 만들기

 

간단히 생성만하고 이후 과정에서 S3를 이용해보도록 하자

 

1. S3 탭으로 이동

 

2. 버킷만들기 클릭 - 이름 생성 후 만들기

 

 


 

 

API Gateway를 통해 S3에 파일 올리기

 

1. IAM Role 생성

 

1.1 IAM - 역할 - 역할 만들기


1.2 엔터티 선택 - 다른 AWS의 사용 사례 - API Gateway 선택


1.3 역할이름 지은 후 생성 완료


1.4 정책 탭으로 이동 - 정책 생성 - 서비스:S3 / 작업:putobject 선택


1.5 리소스 : 특정 - ARN 추가 선택 - 내 S3 버킷명 복사 - Bucket name에 붙이기 - Object name : 모두선택 체크 후 저장


1.6 태그 탭 건너뛰기 - 정책 생성 - 이름 짓기 - 정책 검토후 생성하기


1.6 정책을 Role 에 붙이기 - 만든 정책 클릭 - 작업 - 앞서 만든 Role에 정책을 연결


1.7 해당 Role을 눌러서 확인하면 정책이 붙었음을 볼 수 있다.

 

 

2. API Gateway 생성

 

2.1 API 탭 접근 - 생성 - REST API 구축 - 이름 짓기 - 생성


2.2 하위 리소스 생성하기 : '작업' 선택 - 리소스 생성

- 여기서 {} 중괄호를 사용하는 이유는 경로를 나타내기 위함이다.


2.3 생성한 리소스의 하위 리소스 생성

- bucket에서 put의 작업을 나타내 주기 위한 리소스를 따로 생성해주자.


2.4 filename 리소스 클릭 - 작업 -  메서드 생성 - PUT 선택


2.5 설정을 아래와 같이 해준다

- 실행 역할의 경우 IAM - Role 접근하여 위에서 만들어준 Role의 Role ARN을 복사해 붙여넣어준다.


2.5 생성후 빠져나온 페이지에서 통합요청 클릭 - URL 경로 파라미터 - 아래와 같이 추가 를 해준다.

- 리소스를 생성할때 중괄호를 써주지 않았다면 아래와 같이 경로 추가가 되지않는다.


2.6 설정으로 이동해 이진 미디어 형식을 추가해준다.

- image/png 와 같이 설정하면 이외의 것은 예외처리가 필요하지만 우선 */*로 모든 파일을 받아들이기로 해보자

 


2.7 API 배포하기 - 리소스 - 작업 - API 배포 - 스테이지명 적어주고 배포하기

 

3. API Gateway 통한 S3 업로드 테스트해보기

 

3.1 스테이지에서 URL을 복사해온다.


3.2 현재 프런트엔드가 없기때문에 postman 으로 테스트해보자

- 메서드를 PUT으로 바꿔주고 주소를 생성해준다

- URL/스테이지명/버킷명/올릴파일명


3.3 Body 탭에서 내가 올릴 파일을 선택하고 Send 해준다.

 

3.4 S3로 가서 확인해보자

 

API Gateway를 통해 파일이 S3로 올라온것이 확인된다.

 

다음장에서는 S3에 올라온것이 확인되면 Lambda 함수가 실행되도록 하는 작업을 포스팅하려한다.

 

"S3를 트리거로Lambda호출하기"

 

 

 

 

 

다음장 링크:

 

[AWS-lambda] Lambda 구축하기-3

이전장 에서는 S3 저장소를 만들고 API Gateway를 통해 S3에 파일을 업로드해봤다. [AWS-lambda] Lambda 구축하기-2 이전장 에서는 Lambda 함수를 만들고 API Gateway 트리거를 추가해줬다. Lambda 로 변경한 이유.

dbstndi6316.tistory.com

 

 

References : https://www.youtube.com/watch?v=Q_2CIivxVVs&t=89s 

 

 

반응형