목록AWS (9)
운동하는 공대생

Intro AWS REST API 통신을 하면서 파일을 첨부하여 s3에 저장하는 상황에서 한 번에 보낼 수 있는 바이트 양의 제한이 있었다. 그래서 조금 더 많은 데이터를 보내는 통신을 하기 위해서 미리 s3의 URL을 선언을 해서 직접 s3에 파일을 저장하는 방식으로 문제를 해결했다. What is a Pre-signed URL s3 임시 URL 을 지정을 해주면 파일을 업로드하는 것을 직접 사용자가 계정에 들어가지 않고도 s3에 파일을 저장하는 게 가능하다. 사용되는 방식은 URL 임시로 생성하고 일정 시간 동안 접근을 가능하게 하여 이용자에게 s3를 접근하는 주소를 주는 것이다. Get Ready URL을 생성하는 방식을 설명하기 이전에 몇 가지 미리 설정을 해야 하는 것들이 있다. 1. s3에 접..

AWS API Gateway 통신을 하면서 통신 시간이 최대 29,000ms 즉 29초까지 설정이 되어있다. 기본으로 설정된 이 시간은 동기식으로 함수를 실행한다면 문제가 발생한다. 그래서 이 작업에서 문제를 해결하기 위해서 비동기 식을 함수를 처리하는 방식을 선택하여 문제를 해결했다. 동기식 동기식 통신 및 동기식 프로그래밍은 동시에 라는 뜩을 가지고 있으며 한번 요청을 보내면 응답이 돌아오는 형식으로 통신이 이루어진다. 이렇게 한다면 동기식 통신에서는 한 번의 요청 값마다 응답을 기다려야 하는 시간(Block)이 필연적으로 발생한다. 즉 요청을 기다리는 동안에는 아무것도 하지 않고 응답을 기다리는 상태이다. 비동기 비동기식 통신을 동기식과 반대로 동시에 통신하지 않는다는 이야기 이다. 한 번의 요청을..

Intro Docker container Image 기반으로 AWS Lambda 함수를 구현을 어떻게 하는지 설명을 하겠다. Process EC2 EC2 생성과 접속 EC2 환경에서 Docker 설치 및 Docker Image 생성 ECR 생성 및 이미지 푸시 AWS Lambda 에 적용 1 .EC2 아마존 일래스틱 컴퓨터 클라우드(Amazon Elastic Compute Cloud, EC2)아마존 클라우드 컴퓨팅 플랫폼에서 제공하는 가상 서버이다. Amazon Linux 환경으로 인스턴스를 생성하고 인스턴스 유형 그리고 각종 설정을 해서 인스턴스를 생성한다. 2 .EC2 생성과 접속 인스턴스를 환경에따라 접속하는 방식이 다른데 독립 실행형 ssh 클라이언트를 사용하였다. 윈도우의 경우 PuTTy 를 사..

Intro 프로젝트를 진행하면서 AWS에서 지원하지 않는 서비를 이용하기 위해서 다른 외부의 API를 호출해야 하는 일이 있었다. 이는 영수증 정보(이미지) 파일을 입력하면 파일에 있는 텍스트 정보를 추출하여 저장해주는 서비스이다. 이는 OCR이라는 기법이다. What is OCR Optical Character Recognition(OCR)[1] 보통 컴퓨터가 2진법(0/1) 데이터를 폰트를 통해 인간이 인식할 수 있는 형태로 글자를 보여 준다면, OCR은 그 반대로 인간이 종이 위에 써 놓은 글씨를 인지하여 텍스트 데이터로 치환한다. 보통은 스캐너로 읽어 들인 이미지 파일을 분석하여 텍스트나 워드 파일로 결과물을 내놓는다. 출처:https://namu.wiki/w/OCR Naver CLOVA OCR ..

최근에 AWS Lambda에서 기본적으로 제공하지 않는 라이브러리 르 사용하는 방법에 대하여 이전에 글을 작성을 하였었다. 하지만 생각보다 직접 성공을 하는 시간이 오래걸려서 성공하는 과정에서 있었던 일들을 조금 정리해 보려고 한다. 경로 문제 먼저 제일 처음 겪었던 문제는 함수를 파일들을 다운받아서 .zip 형식으로 저장하여 계층 생성을 완료하였는데 함수가 찾아지지 않는다는 에러였다. 처음 이 에러를 격었을 때는 다운하고 파일을 압축했을 때 그 파일을 인식하지 못했나라고 생각을 했지만 여러 번의 계층을 생성하고 지우기를 반복하여 이 방식에서의 문제가 아니라고 판단을 하였다. 이후에 계층을 만드는 방식에 대하여 찾아보다가 AWS에서 제공하는 공식 자습서에서 답을 찾았다. 위의 사진과 같이 계층을 생성하기..

1. Intro AWS Lambda를 사용하다 보면 python에서 제공하거나 외부 라이브러리를 사용하지 못하는 경우가 발생한다. 이를 해결하기 위해서는 Layer(계층)을 Lambda에 추가를 해줘서 외부 라이브러리를 사용이 가능하다. 먼저 Lambda에서 함수를 호출하였을 때 그 함수가 Lambda에서 제공하지 않는 함수라면 사진과 같이 에러가 발생한다. 2. How to make layer Lambda에서 제공하지 않는 함수를 추가를 하려면 먼저. zip 파일 형식으로 함수를 압축한 파일을 만들어야 한다. 먼저 기본적으로 맥북에서 제공하는 터미널을 이용하여 python 이라는 폴더를 생성하고 그 폴더 안에 Lambda 런타임 파이썬 버전에 맞는 외부 함수 모델을 설치를 해준다. 이때 중요한 부분은 ..

1.Intro s3 버킷은 아마존 웹 서비스에서 제공하는 온라인 클라우드 스토리지 웹 서비스로 Simple Storage Service를 줄여서 s3 라고 부른다. s3는 일반 저장 폴더처럼 데이터를 저장도 가능하고 API에서 호출을 하여 데이터를 저장, 불러오기 등이 가능하다. 아마존에서는 스토리지 서비스를 매달 1GB 당으로 계산하여 비용을 지불한다. 2. AWS S3 AWS S3 서비스는 AWS 서비스 안에서는 권한을 적용하면 호출과 접근이 자유롭지만 외부에서 접근을 하려면 버킷에서 제공하는 key값을 입력하고 버킷을 public으로 전환하여 접근을 해야한다. 3. S3 호출 이번 프로젝트를 진행하면서 S3에 값을 저장하거나 호출하는 방식을 굉장히 많이 이용하였다. 호출은 Lambda에서 호출하는 ..

1.Intro 이번에는 AWS에서 요청값을 라우팅받는 Lambda에 대하여 설명을 하겠다. Lambda에서는 요청값을 전달 받아서 값을 처리하거나 외부 API를 호출하는등 여러가지 작업이 가능하다. 프로젝트 작업을 하면서 이번 Lambda에서는 Python 언어를 사용하였다. 2.AWS Lambda AWS Lambda는 API 서비스와 연결하여 API를 호출하는 요청과 요청값을 라우팅 받는다. 이번에 주로 사용했던 Lambda에서의 기능은 endpoint, layer, 권한, 외부 라이브러리 사용 등을 주로 사용하였다. 2.1 Lambda Layer 런타임을 파이썬으로 설정하고 AWS Lambda 를 이용하다 파이썬에서 기본으로 제공하는 라이브러리 함수를 사용하지 못하는 경우가 발생하였다. 그래서 이를 ..