
【Python×OpenAI】DynamoDB 설정 체크 AI 에이전트를 만들어 보았다! ~PITR·TTL·온디맨드 설정을 자동 진단~
요약
OpenAI API와 Python의 boto3 라이브러리를 활용하여 DynamoDB의 설정 상태를 자동으로 진단하는 AI 에이전트 제작 방법을 소개합니다. PITR, TTL, 온디맨드 설정 등 베스트 프랙티스 준수 여부를 AI가 판단하도록 구현하는 과정을 다룹니다.
핵심 포인트
- OpenAI API를 활용한 AI 에이전트의 기본 개념 및 구현
- boto3를 이용한 AWS DynamoDB 설정 정보 추출 방법
- 추출된 데이터를 OpenAI API에 전달하여 진단하는 워크플로우
- OpenAI API 키 발급 및 환경 변수 설정 가이드
최근에는 ChatGPT를 비롯한 생성형 AI뿐만 아니라, 스스로 판단하여 도구를 실행하는 **AI 에이전트 (AI Agent)**가 주목받고 있습니다.
저 자신도 AI 에이전트에 흥미를 느껴, "우선 무엇인가 만들어 보자"라는 생각으로 자기 학습으로서 DynamoDB 설정을 자동으로 진단하는 AI 에이전트를 제작해 보았습니다.
본 기사에서는,
- OpenAI API란 무엇인가
- OpenAI API 키 취득 방법
- boto3로 DynamoDB의 설정 정보를 취득하는 방법
- OpenAI API에 정보를 전달하여 진단받는 방법
이에 대해 소개합니다.
AI 에이전트를 이제부터 배우기 시작하는 분들에게 참고가 된다면 좋겠습니다.
※ 본 기사는 AI 에이전트 학습의 일환으로 작성한 샘플입니다. 실운용 목적이 아니라, 구조를 이해하는 것을 목적으로 합니다.
- AI 에이전트를 만들어 보고 싶은 분
- OpenAI API를 다뤄 보고 싶은 분
- Python으로 AI를 사용해 보고 싶은 분
- AWS를 학습 중인 분
- DynamoDB의 베스트 프랙티스 (Best Practice)를 배우고 싶은 분
예를 들어, 다음과 같은 설정의 DynamoDB 테이블이 있다고 가정합니다.
| 항목 | 설정 |
|---|---|
| PITR | 비활성화 |
| ... |
AI 에이전트에게
sample-table을 진단해 줘
라고 의뢰하면,
진단 결과
❌ PITR이 비활성화되어 있습니다
→ 잘못된 삭제 시 복구할 수 없습니다
...
와 같이 진단해 줍니다.
사용자
│
▼
...
흐름은 매우 심플합니다.
- boto3로 DynamoDB의 설정을 취득
- OpenAI API에 설정 정보를 전달
- AI가 베스트 프랙티스와 비교
- 진단 결과 반환
| 기술 | 용도 |
|---|---|
| Python | 백엔드 |
| ... |
OpenAI API란,
ChatGPT 등의 AI 모델을 자신의 프로그램에서 이용하기 위한 API입니다.
ChatGPT처럼 브라우저에서 이용하는 것이 아니라,
Python 등의 프로그램으로부터
- 질문하기
- 요약하기
- 코드 작성하기
- 데이터 분석하기
등을 할 수 있습니다.
이번에 제작하는 AI 에이전트도 이 OpenAI API를 이용합니다.
먼저 OpenAI API를 이용하기 위해 API 키를 취득합니다.
다음 사이트에 접속합니다.
ChatGPT와 동일한 계정으로 로그인할 수 있습니다.
왼쪽 메뉴의
API Keys
를 클릭합니다.
또는
에서 접속할 수 있습니다.
오른쪽 상단의
Create new secret key
를 클릭합니다.
예를 들어
dynamodb-agent
등 임의의 이름을 입력합니다.
다음과 같은 키가 발행됩니다.
sk-proj-xxxxxxxxxxxxxxxxxxxxxxxx
이 키는 한 번만 표시됩니다. 반드시 복사하여 보관해 주세요.
setx OPENAI_API_KEY "sk-proj-xxxxxxxxxxxxxxxx"
PowerShell을 재시작하면 반영됩니다.
확인할 때는
echo $env:OPENAI_API_KEY
export OPENAI_API_KEY="sk-proj-xxxxxxxxxxxxxxxx"
확인할 때는
echo $OPENAI_API_KEY
pip install openai boto3
먼저 AI에게 간단한 질문을 해 봅니다.
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
...
이것만으로 OpenAI API를 이용할 수 있습니다.
■ 막히는 포인트
저는 위 코드를 실행했을 때, **"openai.RateLimitError"**가 발생했습니다.
이 에러는 코드의 에러가 아니라, OpenAI API의 이용 한도 (Quota)가 없음을 의미합니다.
따라서 다음과 같은 대응 (신용카드 등록)을 시도해 보세요.
◎ Billing
을 열어서,
신용카드를 등록했는지
결제가 활성화되어 있는지
확인해 주세요.
먼저 DynamoDB의 정보를 취득합니다.
import boto3
dynamodb = boto3.client("dynamodb")
table = dynamodb.describe_table(
...
취득할 수 있는 정보에는,
- 테이블 이름 (Table Name)
- Billing Mode
- 인덱스 (Index)
등이 있습니다.
pitr = dynamodb.describe_continuous_backups(
TableName="sample-table"
)
...
활성화되어 있다면,
PointInTimeRecoveryStatus
ENABLED
가 됩니다.
ttl = dynamodb.describe_time_to_live(
TableName="sample-table"
)
...
활성화되어 있다면,
TimeToLiveStatus
ENABLED
가 됩니다.
취득한 정보를 AI에게 전달합니다.
from openai import OpenAI
client = OpenAI()
prompt = """
...
실제로는 취득한 설정을 그대로 AI에게 전달합니다.
import boto3
from openai import OpenAI
client = OpenAI()
...
이것만으로 실제 AWS 환경을 AI가 진단할 수 있게 됩니다.
예를 들어 다음과 같은 진단 결과가 반환됩니다.
진단 결과
❌ PITR이 비활성화되어 있습니다
→ 활성화하면 35일 이내라면 임의의 시점으로 복구할 수 있습니다.
...
AWS 공식 문서를 확인하지 않아도, 개선 포인트를 알기 쉽게 제안해 줍니다.
이번에는 Python 측에서
- describe_table()
- describe_time_to_live()
- describe_continuous_backups()
를 실행했습니다.
OpenAI API에는 Function Calling이라는 기능이 있습니다.
이를 이용하면,
AI 스스로가
"PITR을 확인하기 위해 AWS API를 호출하자"
라고 판단할 수 있습니다.
사용자
"sample-table을 진단해줘"
│
...
보다 AI 에이전트(AI Agent)다운 구현이 됩니다.
이번에 만들어 보면서, 다음과 같은 기능도 추가할 수 있을 것 같다고 느꼈습니다.
- CloudWatch 알람 확인
- DynamoDB Streams 확인
- GSI 확인
- SSE (암호화) 확인
- AWS CLI 생성
- 수정 방법까지 제안
- 여러 테이블을 한꺼번에 진단
앞으로는 Function Calling도 도입하여, 더욱 실전적인 AI 에이전트로 발전시켜 보고 싶습니다.
이번에는 자기 학습으로서, DynamoDB 설정 체크 AI 에이전트를 작성해 보았습니다.
OpenAI API와 boto3를 조합함으로써, AWS의 설정 정보를 취득하고 AI에게 진단을 맡길 수 있습니다.
- OpenAI API를 이용하려면 API 키 취득이 필요함
- Python에서 간단하게 ChatGPT 상당의 AI를 이용할 수 있음
- boto3로 AWS 정보를 취득할 수 있음
- AI가 베스트 프랙티스 (Best Practice)와 비교하여 진단할 수 있음
- Function Calling을 사용하면 더욱 AI 에이전트다워짐
AI 에이전트라고 하면 어렵게 느껴지지만, 우선은 "AWS에서 정보를 취득하여 그것을 AI에게 전달한다"라는 심플한 구성만으로도 충분한 학습이 됩니다.
앞으로는 Function Calling이나 RAG 등도 도입하면서, 더욱 실전적인 AI 에이전트 개발에도 도전해 보고 싶습니다.
OpenAI API Documentation
https://platform.openai.com/docs -
OpenAI Python SDK
https://github.com/openai/openai-python -
Boto3 Documentation
https://boto3.amazonaws.com/v1/documentation/api/latest/index.html -
Amazon DynamoDB Documentation
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기