관심분야/클라우드 11

AWS 개발환경구성

개발을 위해 외부에 Back-end 환경구성을 해보았다 기본적으로 EC2에 Tomcat, MariaDB, SSL인증서, Redis, RabbitMQ로 구성하고 도메인은 duck dns 가입 및 무료 도메인 신청하여 사용 1. AWS EC2 서버 구성 인스턴스 유형 : Ubuntu 22.04.1 LTS, t2.large, 200G 고정IP : AWS에서 고정IP 추가 SSH 접속시 ID/Password로 할수있게 설정 sudo vi /etc/ssh/sshd_config > PasswordAuthentication yes 주석풀기 sudo systemctl restart sshd locale : Asia/Seoul /LANG=ko_KR.UTF-8 Installed Program : - Apache Tomca..

#10 TTS 정보 조회 및 MP3 듣기, 다운로드 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

드디어 AWS Polly를 활용한 TTS 관련 내용도 마지막이 되었다. 이번에는 DynamoDB에 저장된 TTS 관련 정보 조회와 S3에 저장된 MP3를 다운로드를 하도록 하겠다. 이전 장에서 살펴봤던 DynamoDB 조회 함수 중에서 scan함수를 활용하여 DynamoDB를 조회하도록 하겠다. getNewInfo 함수는 아래와 같이 작성을 한다. import json import os import boto3 from boto3.dynamodb.conditions import Key, Attr def lambda_handler(event, context): # TODO implement client = boto3.client('dynamodb') # Table에 있는 전체 내역을 조회할 수 있음. res..

#9 번외편 : DynamoDB 조회 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

1편부터 8편까지 해서 TTS변환 mp3를 S3에 저장을 하였다. 또한 클라이언트(웹 브라우저)와 Lambda사이에 Cognito을 활용하여 연결하였다. 이제는 DynamoDB에 있는 TTS 정보를 조회하고 mp3 다운로드, 실시간 스트리밍을 지원하면 이번 프로젝트는 종료가 된다. Lambda를 통한 DynamoDB 조회를 진행하기 전에 번외 편으로 DynamoDB의 조회 함수를 정리할 필요성을 느꼈다. 따라서 이번에는 DynamoDB 조회 함수에 대해서 정리하겠다. DynamoDB에서 테이블의 데이터를 조회할 수 있는 방법은 대표적으로 4가지가 존재한다. get_item batch_get_item query scan 대표적인 4개의 조회 함수를 사용하기 전에 한가지 전제조건을 확인하자. REG_DT :..

#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]이라는 버튼을 클릭하게 되면 아래와 같은 화면이 나오게 된다. 나의 경우 [새로작성]을 선택한다. 그리..

#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값이다. 파티션키 밑에 정렬키 추가라고 있다. 정렬키가 왜 필..