AWS/실습

[AWS TechCamp] AWS 서버리스로 서버 고민없이 웹 애플리케이션 구축하기 ② - DynamoDB, Lambda 생성하고 연결하기

hye-ne 2024. 12. 2. 13:17

🔗 이전 포스팅 링크

실습 ① - 실습 구성도 아키텍처, 실습 전 IAM 사용자 생성

 

[AWS TechCamp] AWS 서버리스로 서버 고민없이 웹 애플리케이션 구축하기 ① - 실습 구성도 아키텍처,

온라인에서 3일 동안 진행되는 AWS TechCamp를 신청했다. 이때까지 공부해 온 AWS 서비스가 어떻게 설계되어서 사용되는지 직접 실습을 하면서 공부하기 좋은 기회가 될 것 같았다. 간단한 개념 정리

hye-ne.tistory.com

 

📍 DynamoDB 생성하기

서비스에 연결할 DynamoDB 테이블을 만들어준다. 테이블이 만들어지면 멤버의 이름과 성격 데이터를 저장할 수 있다.

 

1. DynamoDB 콘솔로 들어가서 Create table 버튼을 눌러 테이블을 생성한다. 

 

 2. table 명을 hello-member 으로, Partition key 는 name으로 작성 후, 테이블을 생성해준다.

 

3. status가 active가 되면 name이라는 기본키를 가진 hello-member 테이블이 생성된 것이다.

 

📍 Lambda로 앱서버 생성하기

1.  Lambda 콘솔에 접속하여 function을 만들어준다.

 

2. Author from scratch를 선택한다.

※ Author from scratch : Lambda.의 모든 설정을 처음부터 해서 만드는 것

 

3. Permissions 을 직접 생성한다. Execution role 의 Create a new role from AWS policy templates 를 선택하여 AWS에서 제공하는 권한을 사용한다.

Simple microservice permissions DynamoDB선택 : NoSQL 데이터베이스 서비스인 AWS DynamoDB와 연결할 예정인데, AWS 서비스끼리 서로 연결하거나 이용하거나 호출하거나 할 때에는 권한이 필요하기 때문

 

4. 위와 같이 설정한 후, Lambda 함수를 생성하고, Lambda 화면에서 Code Source 부분에 코드를 붙여 넣고 Deploy를 한다. Deploy를 누르면 Test 버튼이 활성화 된다. 

 

멤버의 이름과 기분 상태를 랜덤으로 매핑시켜주고, 이를 DynamoDB에 저장하는 코드

import json
import boto3
import random
import json

def lambda_handler(event, context):
    
    member_name = ['Ama','Jone','Zon','Penny','Jessie']
    member_status = ['Happy','Sad','Serious','Satisfied','Free']
    
    dynamodb = boto3.resource('dynamodb',endpoint_url='http://dynamodb.ap-northeast-2.amazonaws.com')
    member_table = dynamodb.Table('hello-member')
    
    name = member_name[random.randint(0,4)]
    status = member_status[random.randint(0, 4)]
    
    member_table.put_item(
       Item={
            'name': name,
            'status': status,
        }
    )
    
    documents = {'name':name,'status':status}
    
    print(documents)
    
    return {
        'statusCode': 200,
        'headers': {'Access-Control-Allow-Origin': '*'},
        'body': json.dumps(documents)
    }

 

5. Test를 하기 전에 Test event를 설정해준다. 

 

6. 그리고 Test를 눌러주면 테스트가 진행된다. 이전에 DynamoDB Table을 만들었기 때문에 DynamoDB에도 데이터가 잘 저장되었는지 확인한다.

 

7.  생성했던 테이블로 들어가서 Explore table items 버튼을 눌러 테이블에 입력된 Item들을 확일할 수 있다.