본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

지원되는 Postgres 확장 (Supported Postgres Extensions)

원문 보기 위키 갱신

Fly.io Managed Postgres(MPG)는 Postgres 16과 17을 지원해요. 클러스터에는 실행 중인 Postgres 버전의 확장이 포함되며, pgcrypto, pg_stat_monitor, citext 같은 일반적으로 사용되는 도구와 유틸리티도 있습니다. PostgreSQL Extensions 페이지를 사용하면 관리형 데이터베이스 클러스터에서 신뢰할 수 있는 PostgreSQL 확장을 활성화하거나 비활성화할 수 있어요.

출처: 문서

본문

개요 (Overview)

Fly.io Managed Postgres(MPG)는 Postgres 16과 17을 지원합니다. 클러스터에는 실행 중인 Postgres 버전에 대한 확장이 포함되며, pgcrypto, pg_stat_monitor, citext 같은 일반적으로 사용되는 도구와 유틸리티가 포함됩니다. PostgreSQL Extensions 페이지를 통해 관리형 데이터베이스 클러스터의 신뢰할 수 있는 PostgreSQL 확장을 활성화하거나 비활성화할 수 있어요. 확장은 새 데이터 유형, 함수 또는 기능과 같은 추가 기능을 데이터베이스에 제공합니다.

기본적으로 plpgsql, pg_stat_monitor, pgaudit 확장은 활성화되어 있으며 비활성화할 수 없습니다.

Extensions 페이지 사용하기

확장 검색

  • 검색 바를 사용해 이름이나 설명으로 확장을 빠르게 찾으세요

데이터베이스 선택

  • 오른쪽의 드롭다운을 사용해 관리할 데이터베이스를 선택하세요
  • 확장은 클러스터 전체가 아니라 데이터베이스별로 활성화/비활성화됩니다

확장 활성화 또는 비활성화

  • 확장 옆의 토글 스위치를 클릭해 활성화하거나 비활성화하세요
  • 각 확장은 버전 번호(예: v1.3)를 표시하여, 활성화되었을 때 설치되는 버전 또는 활성화할 때 설치될 버전을 보여줍니다

추가 참고 사항

  • 클러스터가 아직 초기화 중이거나 어떤 식으로든 저하된 경우, 확장을 관리하기 전에 기다려야 합니다

지원되는 타사 확장

기본 Postgres 배포에 번들된 확장 외에도, 다른 일반적으로 사용되는 타사 확장을 지원하기 위해 노력하고 있어요.

현재는 Vector와 PostGIS만 지원되며, 둘 다 클러스터의 Extensions 페이지에서 활성화할 수 있습니다. PostGIS는 클러스터를 만들 때도 활성화할 수 있어요:

  • 대시보드를 통해 "Extensions" 섹션에서 "Enable PostGIS"를 체크하세요
  • flyctl로 클러스터를 만들 때 --enable-postgis-support 플래그를 전달하세요:
flyctl mpg create --enable-postgis-support

사용자 피드백에 따라 추가 타사 확장을 지원할 계획입니다. 의존하거나 자주 사용하는 확장이 있다면 알려주세요!

지원되는 확장

다음 표는 번들된 확장을 나열합니다. 가용성과 확장 버전은 클러스터의 Postgres 버전과 구성에 따라 달라집니다. 사용 가능한 확장은 클러스터의 Extensions 페이지를 확인하세요. 모든 번들 확장이 현재 활성화될 수 있는 것은 아니지만, 가능한 한 많은 확장에 대한 지원을 추가하기 위해 노력하고 있어요.

이름 사용 가능 설명
adminpack pgAdmin이 서버 로그 파일의 원격 관리 같은 추가 기능을 제공할 수 있도록 하는 지원 도구팩.
amcheck B-트리 같은 인덱스 구조의 논리적 일관성을 검증하는 함수를 제공합니다. 시스템 카탈로그 손상과 인덱스 손상 감지에 유용해요.
auth_delay 인증 실패를 보고하기 전에 서버가 잠시 일시 중지하도록 하여 데이터베이스 비밀번호에 대한 무차별 대입 공격을 더 어렵게 만듭니다.
auto_explain 느린 SQL 문의 실행 계획을 자동으로 기록합니다. 지정된 시간 임계값을 초과하는 대형 애플리케이션의 최적화되지 않은 쿼리를 추적해 성능 분석에 도움을 줍니다.
basebackup_to_shell shell이라는 사용자 지정 basebackup 대상을 추가합니다. 관리자가 실행 중인 PostgreSQL 서버의 기본 백업을 셸 아카이브로 만들 수 있게 합니다.
basic-archive 완료된 WAL 세그먼트 파일을 지정된 디렉터리에 복사하는 아카이브 모듈입니다. 자체 아카이브 모듈 개발의 시작점으로 사용할 수 있어요.
bloom Bloom 필터 기반 인덱스 접근 메서드를 제공합니다.
Bloom 필터는 요소가 집합의 구성원인지 테스트하는 데 사용되는 공간 효율적인 데이터 구조입니다.
btree_gin ✓ B-트리 같은 동작을 하는 GIN 인덱스 연산자 클래스를 제공합니다. 이렇게 하면 일반적으로 전문 검색에 사용되는 GIN 인덱스를 정수나 텍스트 데이터 같은 B-트리 인덱스를 사용할 상황에서 사용할 수 있어요.
btree_gist ✓ B-트리 같은 동작을 구현하는 GiST(Generalized Search Tree) 인덱스 연산자 클래스를 제공합니다. 이렇게 하면 일반적으로 다차원 및 비스칼라 데이터에 사용되는 GiST 인덱스를 정수나 텍스트 데이터 같은 B-트리 인덱스를 사용할 상황에서 사용할 수 있습니다.
citext ✓ 대소문자를 구분하지 않는 문자열 유형 citext를 제공합니다. 본질적으로 값을 비교할 때 내부적으로 lower를 호출합니다. 그 외에는 text와 거의 동일하게 동작해요.
cube ✓ 다차원 큐브를 나타내는 데이터 유형 cube를 구현합니다.
dblink 데이터베이스 세션 내에서 다른 PostgreSQL 데이터베이스에 연결하는 함수를 제공합니다. 이렇게 하면 여러 데이터베이스에서 마치 같은 서버에 있는 것처럼 쿼리를 실행할 수 있어요.
dict_int ✓ 전문 검색용 추가 사전 템플릿의 예시입니다. PostgreSQL에서 사용자 지정 사전을 만드는 방법을 보여주는 데 사용됩니다.
dict_xsyn 동의어 전문 검색 사전의 예시입니다. 이 사전 유형은 단어를 동의어 그룹으로 대체하므로 단어의 어떤 동의어를 사용해서도 검색할 수 있게 해 줍니다.
earthdistance 지구 표면에서 대원(大圓) 거리를 계산하는 두 가지 접근 방식을 제공합니다. 첫 번째는 cube 모듈에 의존하고, 두 번째는 경도와 위도를 좌표로 사용하는 내장 point 데이터 유형을 기반으로 합니다.
fuzzystrmatch ✓ 문자열 간의 유사성과 거리를 결정합니다.
hstore ✓ 단일 PostgreSQL 값 안에 키/값 쌍 집합을 저장하기 위한 hstore 데이터 유형을 구현합니다.
intagg 정수 집계기와 열거기.
intarray ✓ null이 없는 정수 배열을 조작하는 여러 유용한 함수와 연산자를 제공합니다.
isn ✓ 다음 국제 제품 번호 표준에 대한 데이터 유형을 제공합니다: EAN13, UPC, ISBN(도서), ISMN(음악), ISSN(정기 간행물).
jsonb_plperl jsonb와 plperl 간 변환
lo ✓ Large Objects(LO 또는 BLOB라고도 함) 관리 지원을 제공합니다. 여기에는 lo 데이터 유형과 lo_manage 트리거가 포함됩니다.
ltree ✓ 계층적 트리형 구조에 저장된 데이터의 레이블을 나타내는 ltree 데이터 유형을 구현합니다. 레이블 트리를 검색하는 광범위한 기능이 제공됩니다.
oldsnapshot old_snapshot_threshold를 구현하는 데 사용되는 서버 상태를 검사할 수 있게 해 줍니다.
pageinspect 데이터베이스 페이지의 내용을 낮은 수준에서 검사할 수 있는 함수를 제공하며, 디버깅 목적에 유용합니다.
passwordcheck CREATE ROLE 또는 ALTER ROLE로 비밀번호를 설정할 때마다 사용자 비밀번호를 검사합니다. 비밀번호가 너무 약하다고 간주되면 거부되고 명령은 오류로 종료됩니다.
pg_buffercache 공유 버퍼 캐시에서 일어나고 있는 일을 실시간으로 검사하는 함수 집합을 제공합니다.
pg_freespacemap PostgreSQL이 테이블과 인덱스에서 사용 가능한 공간의 위치를 추적하는 데 사용하는 여유 공간 맵(FSM)을 검사하는 수단을 제공합니다. 공간 사용량을 이해하고 유지 관리 작업을 계획하는 데 유용할 수 있어요.
pg_prewarm 릴레이션 데이터를 운영 체제 버퍼 캐시 또는 PostgreSQL 버퍼 캐시에 로드하는 편리한 방법을 제공합니다. 자주 접근하는 데이터를 미리 로드해 새로 시작한 데이터베이스가 최대 성능 잠재력에 도달하는 데 걸리는 시간을 줄이는 데 유용할 수 있습니다.
pg_stat_monitor ✓ 서버가 실행한 모든 SQL 문의 계획 및 실행 통계를 추적하는 pg_stat_statements의 더 고급 버전입니다. pg_stat_statements에서 사용 가능한 모든 열을 포함하며 추가 열도 제공합니다.
pg_stat_statements 서버가 실행한 모든 SQL 문의 계획 및 실행 통계를 추적하는 모듈입니다. pg_stat_statements의 고급 버전 pg_stat_monitor 사용을 고려해 보세요.
pg_surgery 손상된 릴레이션에 수술을 수행하는 다양한 함수를 제공합니다. 이 함수들은 의도적으로 안전하지 않으며, 사용하면 데이터베이스가 손상되거나(더 손상될 수 있음) 손상될 수 있습니다. 주의해서 최후의 수단으로만 사용하세요.
pg_trgm ✓ 트라이그램 일치에 기반한 영숫자 텍스트의 유사성을 결정하는 함수와 연산자를 제공합니다. 트라이그램은 세 문자로 구성된 연속된 시퀀스입니다. 이 확장은 텍스트 검색 및 패턴 일치 작업에 사용할 수 있어요.
pg_visibility 테이블의 가시성 맵(VM)과 페이지 수준 가시성 정보를 검사하는 방법을 제공합니다. 또한 가시성 맵의 무결성을 확인하고 재구축하도록 강제하는 함수도 제공합니다.
pg_walinspect 실행 중인 PostgreSQL 데이터베이스 클러스터의 write-ahead 로그 내용을 낮은 수준에서 검사할 수 있는 SQL 함수를 제공하며, 디버깅, 분석, 보고 또는 교육 목적에 유용합니다.
pgcrypto ✓ PostgreSQL용 암호화 함수를 제공합니다.
pgrowlocks 지정된 테이블에 대한 행 잠금 정보를 표시하는 함수를 제공합니다.
pgstattuple 튜플 수준 통계를 얻는 다양한 함수를 제공합니다. 테이블과 인덱스에 대한 여유 공간 양, 살아있는 튜플과 죽은 튜플 수 같은 상세 정보를 제공해요.
plpgsql ✓ PL/pgSQL 프로시저 언어
PostGIS ✓ PostgreSQL용 지리 정보 시스템 확장
postgis_raster ✓ PostGIS용 래스터 데이터 지원
postgis_sfcgal ✓ PostGIS용 SFCGAL 지원
postgis_topology ✓ PostGIS용 토폴로지 데이터 지원
postgres_fdw 원격 PostgreSQL 서버의 데이터에 접근하기 위한 Foreign Data Wrapper(FDW)를 제공합니다. PostgreSQL 데이터베이스가 원격 테이블과 마치 로컬인 것처럼 상호 작용할 수 있게 합니다.
seg ✓ 선분 또는 부동 소수점 구간을 나타내는 seg 데이터 유형을 구현합니다. seg는 구간 끝점의 불확실성을 나타낼 수 있어 특히 실험실 측정값을 나타내는 데 유용합니다.
segpgsql SELinux 기반 레이블 기반 강제 접근 제어(MAC) 보안 모듈. SELinux가 활성화된 Linux 2.6.28 이상에서만 사용할 수 있어요.
spi Server Programming Interface(SPI)와 트리거를 사용하는 몇 가지 실용적인 예제를 제공합니다.
sslinfo PostgreSQL에 연결할 때 현재 클라이언트가 제공한 SSL 인증서에 대한 정보를 제공합니다.
tablefunc ✓ 테이블(즉, 여러 행)을 반환하는 다양한 함수를 포함합니다. 이 함수들은 그 자체로도 유용하고, 여러 행을 반환하는 C 함수를 작성하는 방법의 예시로도 유용합니다.
tcn ✓ 부착된 테이블의 변경 사항을 리스너에게 알리는 트리거 함수를 제공합니다.
test_decoding WAL 논리 디코딩용 SQL 기반 테스트/예제 모듈
tsm_system_rows ✓ SELECT 명령의 TABLESAMPLE 절에서 사용할 수 있는 SYSTEM_ROWS 테이블 샘플링 메서드를 제공합니다.
tsm_system_time ✓ SELECT 명령의 TABLESAMPLE 절에서 사용할 수 있는 SYSTEM_TIME 테이블 샘플링 메서드를 제공합니다.
unaccent ✓ 어휘소(lexeme)에서 액센트(발음 구별 부호)를 제거하는 텍스트 검색 사전입니다. 필터링 사전이므로 출력은 항상 다음 사전(있는 경우)으로 전달됩니다. 이렇게 하면 전문 검색에서 액센트에 민감하지 않은 처리가 가능해요.
uuid-ossp ✓ 여러 표준 알고리즘 중 하나를 사용해 범용 고유 식별자(UUID)를 생성하는 함수를 제공합니다.
vector ✓ vector 데이터 유형과 ivfflat 및 hnsw 접근 메서드

더 알아보기 (Learn more)