관심분야 29

#8 Client to Lambda - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

지난번까지 해서 DynamoDB로 들어오는 데이터를 Lambda Trigger로 수신받은 후 Polly로 mp3 변환을 하고 S3에는 mp3를 보관하였다. 그리고 DynamoDB에는 mp3가 보관된 경로를 저장하도록 하였다. 이번에는 사용자가 웹페이지를 통해서 mp3 파일을 다운로드 받고 mp3 내용을 실시간으로 들을 수 있도록 만들 예정이다. 이전과 다르게 아키텍처 구조를 변경하였다. 기존에는 S3와 Lambda사이에 API Gateway를 두고 사용을 하였다. 그러나 굳이 API Gateway가 필요 없어서 제거를 하였다. 그리고 Cognito를 넣었다. 위 아키텍처의 흐름은 다음과 같이 진행 한다. S3에는 사용자가 접근 가능한 웹페이지를 업로드시킨다. Lambda에서는 DynamoDB에 접속하여 ..

#7 Lambda를 활용한 Polly 호출 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

이제부터 이 프로젝트의 최종 목표인 Polly Service를 호출해서 TTS 변환을 하고 mp3파일을 S3에 적재하는 진행 하려고 한다. 빨간 네모칸 중 Lambda에서 Polly로 넘어가고 다시 Polly에서 Lambda로 돌아오는 구간을 진행하려고 한다. 먼저 Polly를 호출하기 전에 Lambda에 S3 접근 권한이 존재해야 한다. 우선 서비스 검색에서 S3라고 검색을 한다. 그리고는 아래의 화면이 나타나게 된다. 좌측 상단의 [버킷 만들기] 버튼을 클릭해서 Bucket를 새로 만든다. S3는 Simple Storage Service의 약자로서 Web Storage이다. S3에 파일을 업로드하면은 해당 파일에 접근할 수 있는 URL을 제공하게 된다. Public권한으로 Object가 S3에 업로드..

#6 Lambda Function 작성 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

이제까지 DynamoDB와 Lambda를 Trigger 연결하였다. 이제 Trigger 연결된 Lambda에 DyanamoDB Insert 데이터가 잘 들어오는지 확인을 하고 Polly로 원하는 데이터를 보낼 수 있도록 데이터 정제 작업을 진행하도록 하겠다. 빨간색 네모칸 영역 중 Lambda 영역이다. 처음에 Lambda를 생성해 보면 아래와 같이 기본적으로 함수가 생성된다. Lambda 소스 작성방법은 여러 가지가 있다. 로컬에서 작성 후 .zip파일로 올릴 수도 있고 S3에 적재해서 Trigger로 가지고 와도 된다. 나 같은 경우는 그냥 Web화면에서 바로 작업을 하였다. 참고로 Lambda도 로컬에 환경을 만들 수 있다고 한다. 나도 아직 해보지는 않다. import json def lambda..

#5 DynamoDB, Lambda Trigger 연결 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

저번까지는 Python으로 crawling 프로그램을 만들고 crawling 된 내용을 AWS Lambda에 Insert 시키는 것 까지 하였다. 이번에는 DynamoDB에 데이터가 Insert가 되면은 Lambda에서 Insert 된 데이터를 불러올 수 있도록 Trigger 연결을 하도록 하겠다. 위의 사진 중 빨간색으로 네모칸 처리한 부분을 진행 할 예정이다. 우선 AWS 콘솔창에 로그인을 한다. 그리고 Lambda를 검색 후 해당 섹션에 들어온다. 좌측에 보면은 [함수]라는 메시지가 존재한다. 함수 메뉴를 누르면 우측에 [Create Funtion]라는 버튼이 나온다. [Create Funtion]이라는 버튼을 클릭하게 되면 아래와 같은 화면이 나오게 된다. 나의 경우 [새로작성]을 선택한다. 그리..

CORS 해결하기(안드로메다 갔다옴)

EC2 구성 √ GW 서버 : nginx(Https)만 허용 uri/port 기반으로 시스템별 분배 √ 지식관리시스템: Xwiki √ 프로젝트관리시스템: redMine √ 인증서버: open id 기반 sso 통신을 위한 keycloak Xwiki 시스템을 http->https 로 적용하면서 Mix conent, Cross Domain 문제가 발생됐다. 오픈소스 내부에서 extension 설치 및 데이터 impor시 문제가 발생되었다. 처음은 분배하는 proxy 서버에서 CORS 문제를 해결하면 될거라 생각했다. 구글링 하다보면 다양한 방법의 CORS 해결 방법이 존재한다. 기본적인 Xwiki는 tomca기반으로 기본설치시 아파치 웹서버가 설치되지 않는다.(추후에 확인된사항) 구글링과 지인에게 문의하여 ..

#4 Python 크롤링 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

저번까지 로컬 환경에서 DynamoDB로 접근할 수 있도록 IAM 권한 설정을 하였다. 이번에는 로컬 환경에서 DynamoDB로 Insert 할 수 있는 Python 예제 프로그램을 작성하도록 하겠다. 위 사진으로 본다면 EC2에서 DynamoDB로 접근하는 프로세스이다. 참고로 본인의 로컬 환경은 Window7 OS 환경에서 개발을 진행한다. 그리고 개발 툴(IDE)은 python 기본 IDE인 IDLE을 사용한다. 개발 툴(IDE)은 본인이 원하는 다른 툴을 사용해도 된다. 난 그냥 IDLE를 사용한다. 왜냐면 개인적으로 멋있다. 약간 C 프로그래밍 할 때 vi 같은 느낌이라 할까? anyway... Python을 설치를 하고 아래의 라이브러리들을 설치한다. Window cmd창을 열고 아래의 명령을..

#3 AWS IAM 설정 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

앞에서 이야기한 거와 같이 python으로 crawling을 하여서 DynamoDB에 적재를 하려고 하였다. 그러나 먼저 DynamoDB에 접근을 하기 위해서는 IAM 설정이 필요하였다. IAM이란 무엇인가? IAM이란 Identity and Access Management의 약자이다. AWS에서 IAM에 관하여 설명하는 부분을 발췌해보면 AWS Identity and Access Management(IAM)를 사용하면 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있습니다. 또한, AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있습니다. 라고 설명하고 있다. 쉽게 이야기해서 특정 사용자가 AWS의 서비스를 접근할 때 사용해야 하는 접근통제 시스템..

#2 AWS DynamoDB설정 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

앞에서 설명한 아키텍처를 기준으로 음성지원 서비스를 작업 할 예정이다. 우선 DynamoDB 부터 생성 작업한다. 왜냐면? 그냥 DynamoDB 만드는게 제일 안 귀찮다. 아래에 빨간색 동그라미 표시가 되어 있는 부분 작업이다. 자 그럼 먼저 AWS Console에서 DynamoDB를 검색을 한다. 검색 후 좌측 메뉴에 대시보드를 클릭하면 아래와 같은 화면이 나온다. 그냥 [테이블 만들기] 버튼을 클릭한다. 클릭하면 아래와 같은 화면이 나온다. 테이블 이름을 원하는 이름으로 설정을 한다. 나의 경우 [TTSREADSNEWSTABLE] 이름으로 설정을 할 것이다. 파티션 키로 설정을 한다. 파티션키는 관계형 데이터베이스 기준으로 설명을 하면 PK값이다. 파티션키 밑에 정렬키 추가라고 있다. 정렬키가 왜 필..

#1 AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

AWS Service 탐방을 하고 있던 중에 "이 서비스 하나로 무언가 어플리케이션을 만들 수 있겠는데?" 라고 생각이든 서비스를 찾았다. 서비스 이름 Polly라고 하는 음성인식 서비스 이다. Polly에 대해서 간략하게 설명을 하자면, 텍스트로 되어있는 내용을 음성으로 읽어주는 시스템이다. 우리가 흔히 알고 있는 TTS 역할을 하는 서비스이다. Polly는 영어, 브라질식 포르투칼어, 덴마크어, 프랑스어, 일본어, 한국어, 중국어, 북경어, 스페인어를 지원해 준다. 한국어의 경우 서연이라는 이름의 한국말 음성만 된다. 생각보다 로봇 같은 느낌이 없었다. 여기서 Polly에 대한 설명은 마무리를 하고 내가 이제부터 하고자 하는 음성지원 서비스 프로젝트를 아키텍처를 설명하도록 하겠다. 작업은 상당히 간단..