지원 플랫폼
| 플랫폼 | 지원 |
|---|---|
| 자체 호스팅 PostgreSQL | 12.x, 13.x, 14.x, 15.x, 16.x |
| AWS RDS PostgreSQL | 전체 버전 |
| AWS Aurora PostgreSQL | 전체 버전 |
| Google Cloud SQL | 전체 PostgreSQL 버전 |
| Azure Database for PostgreSQL | Flexible Server, Single Server |
사전 요구사항
- 네트워크를 통해 CloudThinker에서 접근 가능한 PostgreSQL 인스턴스.
- 전용 사용자를 생성하고 권한을 부여할 관리자 접근.
- 쿼리 수준 분석(느린 쿼리 데이터에 필요)을 원한다면
pg_stat_statements익스텐션 설치.
설정
네트워크 접근 설정
CloudThinker가 데이터베이스에 접근할 수 있는지 확인하세요:
- CloudThinker IP를 보안 그룹 또는 방화벽에 추가
- RDS의 경우: 공개 접근 활성화 또는 VPC 피어링 사용
연결 세부 정보
| 필드 | 설명 | 기본값 |
|---|---|---|
| Host | 데이터베이스 호스트명 또는 IP | — |
| Port | PostgreSQL 포트 | 5432 |
| Database | 데이터베이스 이름 | — |
| Username | 전용 사용자, 예: cloudthinker_readonly | — |
| Password | 사용자 비밀번호 | — |
| SSL mode | disable, allow, prefer, require, verify-ca, verify-full | require |
| Connection timeout | 연결 대기 시간 (초) | 10 |
| Statement timeout | 최대 쿼리 실행 시간 (ms) | 30000 |
필요 권한
최소
권장 (전체 분석)
에이전트 기능
연결이 완료되면 Tony가 할 수 있는 작업:| 기능 | 설명 |
|---|---|
| 쿼리 분석 | 느린 쿼리 식별, 실행 계획 분석 |
| 인덱스 권고 | 누락된 인덱스 찾기, 미사용 인덱스 식별 |
| 성능 메트릭 | 연결, I/O, 캐시 히트율 모니터링 |
| 테이블 통계 | 테이블 부풀림, 데드 튜플, 배큠 상태 분석 |
| 복제 모니터링 | 복제본의 지연 및 스트리밍 상태 확인 |
연결 확인
예시 프롬프트
문제 해결
연결 거부됨
연결 거부됨
- 호스트와 포트가 올바른지 확인하세요
- 보안 그룹 또는 방화벽이 CloudThinker IP를 허용하는지 확인하세요
- RDS의 경우: “공개적으로 접근 가능”이 활성화되어 있는지 또는 VPC 피어링을 사용하는지 확인하세요
- PostgreSQL이 올바른 인터페이스에서 수신 대기 중인지 확인하세요
인증 실패
인증 실패
- 사용자 이름과 비밀번호가 올바른지 확인하세요
pg_hba.conf가 연결 방법을 허용하는지 확인하세요- 사용자에게 데이터베이스에 대한
CONNECT권한이 있는지 확인하세요
pg_stat_statements 누락
pg_stat_statements 누락
- 익스텐션 설치 확인:
SELECT * FROM pg_extension WHERE extname = 'pg_stat_statements'; shared_preload_libraries에pg_stat_statements가 포함되어 있는지 확인하세요shared_preload_libraries변경 후 PostgreSQL을 재시작하세요- RDS의 경우: 파라미터 그룹을 수정하고 인스턴스를 재부팅하세요
권한 거부됨
권한 거부됨
- 사용자에게 필요한 테이블에 대한
SELECT권한이 있는지 확인하세요 - PostgreSQL 14+에서는
pg_read_all_stats역할을 부여하세요 - psql에서
\dn+으로 스키마 권한을 확인하세요
보안
- 최소 권한 — 에이전트가 사용 사례에 필요한 권한만 부여하세요. 읽기 전용으로 시작한 후 필요에 따라 확장하세요.
- 기본 읽기 전용 — 에이전트가 이 연결을 통해 변경 작업을 수행하게 할 것이 아니라면 읽기 전용 자격증명을 사용하세요.
- 자격증명 교체 — 정기 일정에 따라 키와 토큰을 교체하세요. 연결을 업데이트하면 CloudThinker가 새 값을 자동으로 반영합니다.
- 오프보딩 시 취소 — 연결을 삭제하거나 팀원이 퇴사할 때 프로바이더에서 자격증명을 제거하세요.
- SSL 필수 — 전송 중 데이터를 암호화하려면 항상 SSL 모드
require이상을 사용하세요. - 최소 권한 — CloudThinker 사용자에게
SELECT만 부여하고 쓰기 접근은 절대 부여하지 마세요.
관련 항목
Tony 에이전트
데이터베이스 중심 최적화 에이전트
MySQL 연결
MySQL 데이터베이스의 유사한 설정