자습서: Amazon VPC에서 Amazon RDS에 액세스하도록 Lambda 함수 사용 - AWS Lambda

자습서: Amazon VPC에서 Amazon RDS에 액세스하도록 Lambda 함수 사용

이 자습서에서는 Lambda 함수를 사용하여 Amazon Relational Database Service(Amazon RDS) 데이터베이스에 데이터를 기록합니다. Lambda 함수는 메시지가 추가될 때마다 Amazon Simple Queue Service(Amazon SQS) 대기열에서 레코드를 읽고 데이터베이스의 테이블에 새 항목을 기록합니다. 이 예제에서는 AWS Management Console을 사용하여 대기열에 메시지를 수동으로 추가합니다. 다음 다이어그램은 자습서를 완료하는 데 사용하는 AWS 리소스를 보여줍니다.


      AWS Management Console 인스턴스는 Amazon SQS 표준 대기열에 연결되며, 이 대기열은 MySQL Amazon RDS 데이터베이스에 연결되는 Lambda 함수에 연결됩니다. Lambda 함수에는 권한 정책이 연결되어 있습니다.

Amazon RDS를 사용하면 Microsoft SQL Server, MySQL 및 PostgreSQL과 같은 일반적인 데이터베이스 제품을 사용하여 클라우드에서 관리되는 관계형 데이터베이스를 실행할 수 있습니다. Lambda를 사용하여 데이터베이스에 액세스하면 새 고객이 웹 사이트에 등록하는 것과 같은 이벤트에 응답하여 데이터를 읽고 쓸 수 있습니다. 또한 함수와 데이터베이스 인스턴스는 수요가 많은 기간에 맞춰 자동으로 확장됩니다.

이 자습서를 완료하려면 다음 작업을 수행하세요.

  1. AWS 계정의 기본 Amazon Virtual Private Cloud(VPC)에서 Amazon RDS MySQL 데이터베이스 인스턴스를 시작합니다.

  2. 데이터베이스에 새 테이블을 생성하고 여기에 데이터를 기록하는 Lambda 함수를 생성 및 테스트합니다.

  3. Amazon SQS 대기열을 생성하고 새 메시지가 추가될 때마다 Lambda 함수를 호출하도록 구성합니다.

  4. AWS Management Console을 사용하여 대기열에 메시지를 추가하고 CloudWatch Logs를 사용하여 결과를 모니터링하면서 전체 설정을 테스트합니다.

이 단계를 완료하면 다음을 학습하게 됩니다.

  • Lambda를 사용하여 Amazon RDS 데이터베이스 인스턴스에 연결하는 방법

  • Lambda를 사용하여 Amazon RDS 데이터베이스에서 생성 및 읽기 작업을 수행하는 방법

  • Amazon SQS를 사용하여 Lambda 함수를 호출하는 방법

AWS Management Console 또는 AWS Command Line Interface(AWS CLI)를 사용하여 이 자습서를 완료할 수 있습니다.

사전 조건

AWS 계정이 없는 경우 다음 절차에 따라 계정을 생성합니다.

AWS 계정에 가입
  1. https://portal.aws.amazon.com/billing/signup을 엽니다.

  2. 온라인 지시 사항을 따릅니다.

    등록 절차 중 전화를 받고 전화 키패드를 사용하여 확인 코드를 입력하는 과정이 있습니다.

    AWS 계정 루트 사용자에 가입하면 AWS 계정 루트 사용자가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스하는 권한이 있습니다. 보안 모범 사례는 관리 사용자에게 관리자 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 태스크를 수행하는 것입니다.

AWS에서는 가입 프로세스가 완료된 후 확인 이메일을 보냅니다. 언제든지 https://aws.amazon.com/으로 이동하고 내 계정(My Account)을 선택하여 현재 계정 활동을 보고 계정을 관리할 수 있습니다.

AWS 계정에 가입한 후 일상적인 태스크에 루트 사용자를 사용하지 않도록 관리 사용자를 생성합니다.

AWS 계정 루트 사용자 보호
  1. 루트 사용자(Root user)를 선택하고 AWS 계정 이메일 주소를 입력하여 AWS Management Console에 계정 소유자로 로그인합니다. 다음 페이지에서 암호를 입력합니다.

    루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 AWS 로그인 User Guide루트 사용자로 로그인을 참조하세요.

  2. 루트 사용자에 대해 다중 인증(MFA)을 활성화합니다.

    지침은 IAM 사용 설명서AWS 계정 루트 사용자용 가상 MFA 디바이스 활성화(콘솔)를 참조하세요.

관리 사용자 생성
  • 일상적인 관리 태스크의 경우 AWS IAM Identity Center (successor to AWS Single Sign-On)에서 관리 사용자에게 관리 액세스 권한을 부여합니다.

    지침을 보려면 AWS IAM Identity Center (successor to AWS Single Sign-On) 사용 설명서시작하기를 참조하세요.

관리자 사용자로 로그인
  • IAM Identity Center 사용자로 로그인하려면 IAM Identity Center 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.

    IAM Identity Center 사용자를 사용하여 로그인하는 데 도움이 필요한 경우 AWS 로그인 사용 설명서AWS 액세스 포털에 로그인을 참조하세요.

Amazon RDS 데이터베이스 인스턴스 생성


        데이터베이스 생성 단계를 보여주는 자습서 워크플로 다이어그램.

Amazon RDS 데이터베이스 인스턴스는 AWS 클라우드에서 실행되는 격리된 데이터베이스 환경입니다. 인스턴스에 사용자가 만든 데이터베이스가 하나 이상 포함될 수 있습니다. 별도로 지정하지 않는 한 Amazon RDS는 AWS 계정에 포함된 기본 Amazon VPC 새 데이터베이스 인스턴스를 생성합니다. Amazon VPC에 대한 자세한 내용은 Amazon Virtual Private Cloud 사용 설명서를 참조하세요.

이 자습서에서는 AWS 계정의 기본 VPC 새 인스턴스를 생성하고 해당 인스턴스에 이름이 ExampleDB인 데이터베이스를 생성합니다. AWS Management Console 또는 AWS CLI를 사용하여 Amazon RDS 인스턴스 및 데이터베이스를 생성할 수 있습니다.

AWS Management Console
데이터베이스 인스턴스 및 데이터베이스 생성(콘솔)
  1. Amazon RDS 콘솔의 데이터베이스 페이지를 열고 데이터베이스 생성을 선택합니다.

  2. 표준 생성 옵션을 선택한 상태로 두고 엔진 옵션에서 MySQL을 선택합니다.

  3. Templates(템플릿) 섹션에서 Free tier(프리 티어)를 선택합니다.

  4. Settings(설정)에서 DB instance identifier(DB 인스턴스 식별자)에 MySQLForLambda를 입력합니다.

  5. 다음을 따라 사용자 이름과 암호를 설정합니다.

    1. 자격 증명 설정에서 마스터 사용자 이름admin으로 둡니다.

    2. 마스터 암호의 경우 데이터베이스에 액세스하기 위한 암호를 입력하고 확인합니다.

  6. 다음을 수행하여 데이터베이스 이름을 지정합니다.

    1. 나머지 기본 옵션을 모두 선택한 상태로 두고 아래로 스크롤하여 추가 구성 창으로 이동합니다.

    2. 이 창을 확장하고 초기 데이터베이스 이름으로 ExampleDB를 입력합니다.

  7. 나머지 기본 옵션을 모두 선택한 상태로 두고 데이터베이스 생성을 선택합니다.

AWS CLI
데이터베이스 인스턴스 및 데이터베이스 생성(CLI)
  • AWS CLI를 사용하여 데이터베이스 인스턴스와 데이터베이스를 생성하려면 고유한 암호를 선택하고 다음 명령을 실행합니다. Lambda는 이 암호를 사용하여 데이터베이스에 액세스합니다.

    aws rds create-db-instance --db-name ExampleDB --engine MySQL \ --db-instance-identifier MySQLForLambda \ --db-instance-class db.t2.micro --allocated-storage 5 --no-publicly-accessible \ --master-username admin --master-user-password password

Lambda에서 데이터베이스에 연결하려면 호스트 주소(엔드포인트)와 VPC 구성을 알아야 합니다.

데이터베이스 호스트 주소 및 VPC 구성 찾기
  1. Amazon RDS 콘솔의 데이터베이스 페이지를 엽니다.

  2. 방금 생성한 데이터베이스 인스턴스(mysqlforlambda)를 선택하고 연결성 및 보안 창을 선택합니다.

  3. 엔드포인트, VPC 서브넷, VPC 보안 그룹의 값을 기록합니다.

참고

데이터베이스 인스턴스가 초기화를 완료하고 콘솔에 표시된 상태가 생성 중에서 백업 중으로 변경될 때까지 호스트 엔드포인트를 사용할 수 없습니다. 몇 분 정도 걸릴 수 있습니다.

함수 실행 역할 생성


        Lambda 함수 단계에서 실행 역할을 생성하고 있음을 보여주는 자습서 워크플로 다이어그램.

Lambda 함수를 생성하기 전에 함수에 필요한 권한을 부여하는 실행 역할을 생성해야 합니다. 이 자습서에서는 데이터베이스 인스턴스가 포함된 Amazon VPC에 대한 네트워크 연결을 관리하고 Amazon SQS 대기열에서 메시지를 폴링할 수 있는 권한이 Lambda에 필요합니다.

Lambda 함수에 필요한 권한을 부여하기 위해 이 자습서에서는 IAM 관리형 정책을 사용합니다. 이러한 정책은 여러 가지 일반적인 사용 사례에서 권한을 부여하고 AWS 계정에서 제공됩니다. 관리형 정책에 대한 자세한 내용은 정책 모범 사례의 내용을 참조하세요.

Lambda 실행 역할 생성
  1. IAM 콘솔의 역할 페이지를 열고 Create role(역할 생성)을 선택합니다.

  2. Trusted entity type(신뢰할 수 있는 엔터티 유형)으로 AWS 서비스를 선택한 다음 Use case(사용 사례)로 Lambda를 선택합니다.

  3. 다음(Next)을 선택합니다.

  4. 다음을 수행하여 IAM 관리형 정책을 추가합니다.

    1. 정책 검색 상자를 사용하여 AWSLambdaVPCAccessExecutionRole을 검색합니다.

    2. 결과 목록에서 역할 옆의 확인란을 선택한 다음 필터 지우기를 선택합니다.

    3. 정책 검색 상자를 사용하여 AWSLambdaSQSQueueExecutionRole을 검색합니다.

    4. 결과 목록에서 역할 옆의 확인란을 선택한 다음 Next(다음)를 선택합니다.

  5. Role name(역할 이름)에 lambda-vpc-sqs-role을 입력한 다음 Create role(역할 생성)을 선택합니다.

자습서 뒷부분에서는 방금 생성한 실행 역할의 Amazon 리소스 이름(ARN)이 필요합니다.

실행 역할 ARN 찾기
  1. IAM 콘솔의 역할 페이지를 열고 역할(lambda-vpc-sqs-role)을 선택합니다.

  2. 요약 섹션에 표시된 역할 ARN을 복사합니다.

Lambda 배포 패키지 생성


        Lambda 함수 단계에서 배포 패키지를 생성하고 있음을 보여주는 자습서 워크플로 다이어그램.

다음 예제 Python 코드는 PyMySQL 패키지를 사용하여 데이터베이스에 연결합니다. 함수를 처음 호출하면 Customer라는 새 테이블도 생성됩니다. 테이블은 다음 스키마를 사용하고, 여기서 CustID는 기본 키입니다.

Customer(CustID, Name)

또한 함수는 PyMySQL을 사용하여 이 테이블에 레코드를 추가합니다. 이 함수는 Amazon SQS 대기열에 추가할 메시지에 지정된 고객 ID 및 이름을 사용하여 레코드를 추가합니다.

코드는 핸들러 함수 외부에서 데이터베이스에 대한 연결을 생성합니다. 초기화 코드에서 연결을 생성하면 이후에 함수를 호출할 때 연결을 다시 사용할 수 있어 성능이 향상됩니다. 프로덕션 애플리케이션에서는 프로비저닝된 동시성을 사용하여 요청된 수의 데이터베이스 연결을 초기화할 수도 있습니다. 이러한 연결은 함수가 호출되는 즉시 사용할 수 있습니다.

import sys import logging import pymysql import json # rds settings rds_host = "mysqlforlambda.cdipnbm2csku.us-west-2.rds.amazonaws.com" user_name = "admin" password = "password" db_name = "ExampleDB" logger = logging.getLogger() logger.setLevel(logging.INFO) # create the database connection outside of the handler to allow connections to be # re-used by subsequent function invocations. try: conn = pymysql.connect(host=rds_host, user=user_name, passwd=password, db=db_name, connect_timeout=5) except pymysql.MySQLError as e: logger.error("ERROR: Unexpected error: Could not connect to MySQL instance.") logger.error(e) sys.exit() logger.info("SUCCESS: Connection to RDS MySQL instance succeeded") def lambda_handler(event, context): """ This function creates a new RDS database table and writes records to it """ message = event['Records'][0]['body'] data = json.loads(message) CustID = data['CustID'] Name = data['Name'] item_count = 0 sql_string = f"insert into Customer (CustID, Name) values({CustID}, '{Name}')" with conn.cursor() as cur: cur.execute("create table if not exists Customer ( CustID int NOT NULL, Name varchar(255) NOT NULL, PRIMARY KEY (CustID))") cur.execute(sql_string) conn.commit() cur.execute("select * from Customer") logger.info("The following items have been added to the database:") for row in cur: item_count += 1 logger.info(row) conn.commit() return "Added %d items to RDS MySQL table" %(item_count)
참고

이 예제 코드에서는 데이터베이스 이름, 사용자 이름 및 암호가 함수에 하드 코딩됩니다. 프로덕션 애플리케이션에서는 이러한 파라미터를 하드 코딩하지 않아야 합니다. AWS Secrets Manager을 사용하여 데이터베이스 액세스 자격 증명을 안전하게 저장합니다.

함수 코드에 PyMySQL 종속성을 포함하려면.zip 배포 패키지를 생성하세요.

.zip 배포 패키지 생성
  1. 예제 코드를 lambda_function.py라는 파일로 저장합니다. 자체 Amazon RDS 호스트 엔드포인트를 사용하고 예제 코드의 암호를 데이터베이스 인스턴스를 만들 때 선택한 암호로 바꿉니다.

  2. lambda_function.py 파일을 생성한 디렉터리와 동일한 디렉터리에서 이름이 package인 새 디렉터리를 생성하고 PyMySQL 라이브러리를 설치합니다.

    mkdir package pip install --target package pymysql
  3. 애플리케이션 코드와 PyMySQL 라이브러리가 포함된 zip 파일을 생성합니다. Linux 또는 MacOS에서는 다음 CLI 명령을 실행합니다. Windows에서는 선호하는 zip 도구를 사용하여 lambda_function.zip 파일을 생성합니다.

    cd package zip -r ../lambda_function.zip . cd .. zip lambda_function.zip lambda_function.py

    Python 가상 환경을 사용하여 배포 패키지를 생성할 수도 있습니다. .zip 파일 아카이브를 사용하여 Python Lambda 함수 배포를 참조하세요.

Lambda 함수 생성


      Lambda 함수 단계에서 함수를 생성하고 있음을 보여주는 자습서 워크플로 다이어그램.

방금 생성한 .zip 패키지를 사용하면서 AWS CLI 또는 Lambda 콘솔을 사용하여 Lambda 함수를 생성합니다.

AWS Management Console
Lambda 함수 생성(콘솔)
  1. Lambda 콘솔의 함수 페이지를 열고 Create function(함수 생성)을 선택합니다.

  2. 처음부터 작성을 선택한 상태로 두고, 기본 정보에서 함수 이름으로 LambdaFunctionWithRDS를 입력합니다.

  3. Python3.9를 런타임으로 선택합니다.

  4. 함수 생성(Create function)을 선택합니다.

  5. Code(코드) 창에서 Upload from(업로드 원본)을 선택한 다음 .zip file(.zip 파일)을 선택합니다.

  6. 이전 단계에서 생성한 lambda_function.zip 파일을 선택하고 저장을 선택합니다.

이제 앞서 생성한 실행 역할과 VPC 설정으로 함수를 구성합니다. 이렇게 하면 함수에 데이터베이스 인스턴스에 액세스하고 Amazon SQS 대기열을 폴링하는 데 필요한 권한이 부여됩니다.

함수를 구성하려면
  1. Lambda 콘솔의 함수 페이지에서 구성 탭을 선택한 다음 권한을 선택합니다.

  2. 실행 역할 창에서 편집을 선택합니다.

  3. Existing role(기존 역할)의 드롭다운 목록에서 실행 역할(lambda-vpc-sqs-role)을 선택합니다.

  4. Save를 선택합니다.

  5. 다음을 수행하여 VPC 설정을 구성합니다.

    1. 구성 탭에서 VPC를 선택한 다음 편집을 선택합니다.

    2. VPC에 있는 드롭다운 목록에서 AWS 계정의 기본 VPC를 선택합니다.

    3. 서브넷에서 앞서 언급한 VPC 서브넷의 확인란을 선택합니다.

    4. 보안 그룹에서 앞서 언급한 VPC 보안 그룹의 확인란을 선택한 다음 저장을 선택합니다.

AWS CLI
함수 생성(CLI)
  • 고유한 역할 ARN, VPC 서브넷 ID 및 VPC 보안 그룹 값을 사용하여 다음 명령을 실행합니다.

    aws lambda create-function --function-name LambdaFunctionWithRDS --runtime python3.9 \ --zip-file fileb://lambda_function.zip --handler lambda_function.lambda_handler \ --role arn:aws:iam::111122223333:role/lambda-vpc-sqs-role \ --vpc-config SubnetIds=subnet-1234567890abcdef0,subnet-abcdef01234567890,\ subnet-021345abcdef6789,subnet-1234abcdef567890,SecurityGroupIds=sg-1234567890abcdef0

콘솔에서 Lambda 함수 테스트


        Lambda 함수 단계에서 함수를 테스트하고 있음을 보여주는 자습서 워크플로 다이어그램.

이제 Lambda 콘솔을 사용하여 함수를 테스트할 수 있습니다. 자습서의 마지막 단계에서 Amazon SQS를 사용하여 함수를 호출할 때 함수가 수신할 데이터를 모방하는 테스트 이벤트를 생성합니다. 테스트 이벤트에는 함수가 생성하는 Customer 테이블에 추가할 고객 ID와 고객 이름을 지정하는 JSON 객체가 포함됩니다.

Lambda 함수를 테스트하려면
  1. Lambda 콘솔의 함수 페이지를 열고 함수를 선택합니다.

  2. Code(코드) 탭을 선택합니다.

  3. 코드 소스 창에서 테스트를 선택하고 이벤트 이름으로 myTestEvent를 입력합니다.

  4. 다음 코드를 이벤트 JSON에 복사하고 저장을 선택합니다.

    { "Records": [ { "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d", "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", "body": "{\n \"CustID\": 1021,\n \"Name\": \"Martha Rivera\"\n}", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1545082649183", "SenderId": "AIDAIENQZJOLO23YVJ4VO", "ApproximateFirstReceiveTimestamp": "1545082649185" }, "messageAttributes": {}, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-west-2:123456789012:my-queue", "awsRegion": "us-west-2" } ] }
  5. 테스트(Test)를 선택합니다.

실행 결과 탭에는 함수 로그에 표시된 것과 비슷한 결과가 표시되어야 합니다.

[INFO] 2023-02-14T19:31:35.149Z bdd06682-00c7-4d6f-9abb-89f4bbb4a27f The following items have been added to the database: [INFO] 2023-02-14T19:31:35.149Z bdd06682-00c7-4d6f-9abb-89f4bbb4a27f (1021, 'Martha Rivera')

Amazon SQS 대기열 생성


        메시지 대기열 단계에서 대기열을 생성 중임을 보여주는 자습서 워크플로 다이어그램.

Lambda 함수와 Amazon RDS 데이터베이스 인스턴스의 통합을 성공적으로 테스트했습니다. 이제 자습서의 마지막 단계에서 Lambda 함수를 호출하는 데 사용할 Amazon SQS 대기열을 생성합니다.

AWS Management Console
Amazon SQS 대기열 생성(콘솔)
  1. Amazon SQS 콘솔의 대기열 페이지를 열고 대기열 생성을 선택합니다.

  2. 유형표준으로 두고 대기열 이름으로 LambdaRDSQueue를 입력합니다.

  3. 기본 옵션을 모두 선택한 상태로 두고 Create queue(대기열 생성)를 선택합니다.

AWS CLI
Amazon SQS 대기열 생성(CLI)
  • 다음 명령을 실행하고 AWS CLI에서 반환하는 URL을 기록합니다.

    aws sqs create-queue --queue-name LambdaRDSQueue

자습서의 다음 부분에서는 방금 생성한 대기열의 Amazon 리소스 이름(ARN)이 필요합니다.

대기열 ARN 찾기
  • 이전 단계에서 기록한 URL을 사용하여 다음 명령을 실행하고 AWS CLI에서 반환하는 ARN을 기록합니다.

    aws sqs get-queue-attributes \ --queue-url https://sqs.us-west-2.amazonaws.com/111122223333/LambdaRDSQueue \ --attribute-names QueueArn

이벤트 소스 매핑을 생성하여 Lambda 함수 호출


        메시지 대기열 단계에서 이벤트 소스 매핑을 생성 중임을 보여주는 자습서 워크플로 다이어그램.

이벤트 소스 매핑은 스트림 또는 대기열에서 항목을 읽고 Lambda 함수를 호출하는 Lambda 리소스입니다. 이벤트 소스 매핑을 구성할 때 스트림 또는 대기열의 레코드가 단일 페이로드로 일괄 처리되도록 배치 크기를 지정할 수 있습니다. 이 예제에서는 대기열에 메시지를 보낼 때마다 Lambda 함수가 호출되도록 배치 크기를 1로 설정합니다. AWS CLI 또는 Lambda 콘솔을 사용하여 이벤트 소스 매핑을 구성할 수 있습니다.

AWS Management Console
이벤트 소스 매핑 생성(콘솔)
  1. Lambda 콘솔의 함수 페이지를 열고 함수(LambdaFunctionWithRDS)를 선택합니다.

  2. 함수 개요 창에서 트리거 추가를 선택합니다.

  3. 소스로 Amazon SQS를 선택한 다음 대기열의 이름(LambdaRDSQueue)을 선택합니다.

  4. 배치 크기1을 입력합니다.

  5. 다른 모든 옵션은 기본값으로 두고 추가를 선택합니다.

AWS CLI
이벤트 소스 매핑 생성(CLI)
  • AWS CLI를 사용하여 이벤트 소스 매핑을 생성하려면 자체 Amazon SQS 대기열의 ARN을 사용하여 다음 명령을 실행합니다.

    aws lambda create-event-source-mapping --function-name LambdaFunctionWithRDS --batch-size 1 \ --event-source-arn arn:aws:sqs:us-west-2:111122223333:LambdaRDSQueue

이제 Amazon SQS 대기열에 메시지를 추가하여 전체 설정을 테스트할 준비가 되었습니다.

설정 테스트 및 모니터링


        테스트 및 모니터링 단계에 있음을 보여주는 자습서 워크플로 다이어그램.

전체 설정을 테스트하려면 콘솔을 사용하여 Amazon SQS 대기열에 메시지를 추가합니다. 이후 CloudWatch Logs를 사용하여 Lambda 함수가 예상대로 데이터베이스에 레코드를 작성하고 있는지 확인합니다.

설정 테스트 및 모니터링
  1. Amazon SQS 콘솔의 대기열 페이지를 열고 대기열(LambdaRDSQueue)을 선택합니다.

  2. 메시지 보내기 및 받기를 선택하고 다음 JSON을 메시지 보내기 창의 메시지 본문에 붙여넣습니다.

    { "CustID": 1054, "Name": "Richard Roe" }
  3. 메시지 전송을 선택합니다.

    메시지를 대기열로 보내면 Lambda가 이벤트 소스 매핑을 통해 함수를 호출합니다. Lambda에서 예상대로 함수를 호출했는지 확인하려면 CloudWatch Logs를 사용하여 함수가 고객 이름과 ID를 데이터베이스 테이블에 기록했는지 확인합니다.

  4. CloudWatch 콘솔의 로그 그룹 페이지를 열고 함수(aws/lambda/LambdaFunctionWithRDS)의 로그 그룹을 선택합니다.

  5. 로그 스트림 창에서 가장 최근의 로그 스트림을 선택합니다.

    테이블에는 함수를 호출할 때마다 하나씩, 총 두 개의 고객 레코드가 포함되어야 합니다. 로그 스트림에 다음과 유사한 메시지가 표시됩니다.

    [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 The following items have been added to the database: [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 (1021, 'Martha Rivera') [INFO] 2023-02-14T19:06:43.873Z 45368126-3eee-47f7-88ca-3086ae6d3a77 (1054, 'Richard Roe')

리소스 정리

이 자습서 용도로 생성한 리소스를 보관하고 싶지 않다면 지금 삭제할 수 있습니다. 더 이상 사용하지 않는 AWS 리소스를 삭제하면 AWS 계정에 불필요한 요금이 발생하는 것을 방지할 수 있습니다.

Lambda 함수를 삭제하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 생성한 함수를 선택합니다.

  3. 작업(Actions), 삭제(Delete)를 선택합니다.

  4. 텍스트 입력 필드에 delete를 입력하고 Delete(삭제)를 선택합니다.

실행 역할 삭제
  1. IAM 콘솔에서 역할 페이지를 엽니다.

  2. 생성한 실행 역할을 선택합니다.

  3. 삭제를 선택합니다.

  4. 텍스트 입력 필드에 역할의 이름을 입력하고 Delete(삭제)를 선택합니다.

MySQL DB 인스턴스를 삭제하려면
  1. Amazon RDS 콘솔의 데이터베이스 페이지를 엽니다.

  2. 생성한 데이터베이스를 선택합니다.

  3. 작업(Actions), 삭제(Delete)를 선택합니다.

  4. 최종 스냅샷 생성 확인란을 선택 해제합니다.

  5. 텍스트 상자에 delete me를 입력합니다.

  6. 삭제를 선택합니다.

Amazon SQS 대기열을 삭제하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/sqs/에서 Amazon SQS 콘솔을 엽니다.

  2. 생성한 대기열을 선택합니다.

  3. 삭제를 선택합니다.

  4. 텍스트 입력 필드에 delete을 입력합니다.

  5. 삭제를 선택합니다.