[파이썬] AWS Lambda와 Elasticsearch 연동을 통한 검색 기능 구현

AWS Lambda는 클라우드 기반의 이벤트 드리븐 컴퓨팅 서비스이며, Elasticsearch는 분산 검색 및 분석 엔진입니다. 이 블로그 게시물에서는 AWS Lambda와 Elasticsearch를 연동하여 간단한 검색 기능을 구현하는 방법을 다루겠습니다.

1. AWS Lambda 함수 생성

먼저, AWS Lambda 함수를 생성해야 합니다. AWS Management Console에 로그인하고, Lambda 콘솔을 엽니다. “함수 생성” 버튼을 클릭한 후, “기본 정보” 섹션에서 함수 이름을 입력하고 런타임으로 “Python”을 선택합니다.

2. Elasticsearch 클러스터 설정

Elasticsearch 클러스터를 설정해야 합니다. AWS Management Console에서 Elasticsearch 콘솔을 엽니다. “새 도메인 생성” 버튼을 클릭하여 도메인을 설정합니다. 도메인 이름, 버전, 인스턴스 유형 등을 선택한 다음, “생성”을 클릭합니다.

3. Lambda 함수 코드 작성

AWS Lambda 함수 코드를 작성해야 합니다. Python 언어를 사용하여 간단한 Elasticsearch 검색 기능을 구현할 수 있습니다. 아래는 예시 코드입니다.

import boto3
from elasticsearch import Elasticsearch

def lambda_handler(event, context):
    # AWS Lambda에서 Elasticsearch 도메인 접근을 위한 인증 정보 설정
    region = 'YOUR_REGION'
    access_key = 'YOUR_ACCESS_KEY'
    secret_key = 'YOUR_SECRET_KEY'
    
    # Elasticsearch 클러스터의 엔드포인트 설정
    es = Elasticsearch(
        hosts=[{'host': 'YOUR_ELASTICSEARCH_ENDPOINT', 'port': 443}],
        http_auth=(access_key, secret_key),
        use_ssl=True,
        verify_certs=True,
        connection_class=RequestsHttpConnection
    )
    
    # Elasticsearch에서 검색할 색인과 쿼리 설정
    index = 'YOUR_INDEX_NAME'
    query = {
        "query": {
            "match": {
                "field_name": "search_query"
            }
        }
    }
    
    # Elasticsearch에 검색 요청 보내기
    response = es.search(index=index, body=query)
    
    # 검색 결과 반환
    return response

위 코드에서 YOUR_REGION, YOUR_ACCESS_KEY, YOUR_SECRET_KEY, YOUR_ELASTICSEARCH_ENDPOINT, YOUR_INDEX_NAME, search_query를 실제로 사용하는 값으로 대체해야 합니다.

4. Lambda 함수 업로드 및 구성

AWS Lambda 함수 코드를 업로드해야 합니다. Lambda 콘솔에서 “코드 업로드” 섹션으로 이동하고, 작성한 Lambda 함수 코드를 업로드합니다. “함수 구성” 섹션에서 메모리와 실행 시간 등 함수의 구성을 설정합니다.

5. Lambda 함수 실행 및 테스트

Lambda 함수를 실행하여 검색 기능을 테스트할 수 있습니다. Lambda 콘솔에서 “테스트 이벤트 구성” 섹션으로 이동하고, 테스트 이벤트를 생성하여 Lambda 함수를 실행합니다. 실행 결과와 함수 로그를 확인하여 검색 결과를 확인할 수 있습니다.

이제 AWS Lambda와 Elasticsearch를 연동하여 검색 기능을 구현했습니다. 이를 활용하여 서비스나 애플리케이션에서 강력한 검색 기능을 구현할 수 있습니다. AWS Lambda와 Elasticsearch의 다양한 기능과 설정을 활용하여 더욱 효과적인 검색 솔루션을 구축해보세요!