Ubuntu 24.04, 22.04 또는 20.04에 PostgreSQL 16을 설치하는 방법

PostgreSQL 16은 데이터베이스 관리 시스템 분야에서 중요한 업데이트입니다. 2023년 9월 14일에 공식 출시된 PostgreSQL 16은 많은 새로운 기능과 향상된 기능을 도입하여 사용자, 관리자 및 개발자를 위한 강력하고 다재다능한 데이터베이스 솔루션으로서의 입지를 강화했습니다.

다음은 PostgreSQL 16의 주요 기능 하이라이트 중 일부입니다.

  • 병렬화 향상: PostgreSQL 16은 FULL 및 내부 Right OUTER 해시 조인의 병렬화를 허용하여 쿼리 성능을 크게 향상시킵니다.
  • 복제 개선: 대기 서버에서 논리적 복제 기능을 도입하고 가입자가 대규모 트랜잭션을 병렬로 적용할 수 있도록 합니다.
  • 모니터링 기능: pg_stat_io 뷰를 추가하면 I/O 통계를 더욱 심층적으로 모니터링할 수 있습니다.
  • SQL/JSON 지원: 이번 릴리스에는 SQL/JSON 생성자 및 ID 함수가 도입되어 데이터 처리 기능이 확장되었습니다.
  • 진공냉동 성능: PostgreSQL 16은 진공 동결 성능을 향상시켜 효율적인 데이터베이스 유지 관리에 도움을 줍니다.
  • 정규식 일치: pg_hba.conf의 사용자 및 데이터베이스 이름과 pg_ident.conf의 사용자 이름에 대한 정규식 일치는 보안과 유연성을 향상시킵니다.

이제 기술적인 방법을 살펴보고 PostgreSQL 16의 설치 프로세스를 자세히 살펴보겠습니다.

PostgreSQL 16 설치를 위한 전제 조건

Ubuntu에 PostgreSQL 16을 성공적으로 설치하려면 다음 요구 사항을 충족하는지 확인하세요.

권장 하드웨어 및 지원되는 Ubuntu 버전

요소요구 사항
프로세서1GHz(기가헤르츠) 이상 호환 프로세서
2GB 이상
디스크 공간512MB HDD(데이터 또는 지원 구성 요소에 필요한 추가 디스크 공간)
지원되는 버전우분투 24.04(노블), 우분투 22.04(제미), 우분투 20.04(포컬)

추가 요구 사항

요구 사항설명
인터넷 연결PostgreSQL 16 및 향후 업데이트를 다운로드하는 데 필요합니다.
터미널 규칙모든 터미널 명령은 일반 사용자로 실행되어야 합니다. sudo 특권.
CLI 명령설치 및 설정에는 명령줄 인터페이스(CLI)를 사용하십시오.

PostgreSQL APT 저장소 가져오기

PostgreSQL 16 설치 전에 Ubuntu 업데이트

Ubuntu 시스템이 최신인지 확인하는 것부터 시작하세요. 이 단계는 시스템 안정성과 호환성을 유지하는 데 중요합니다.

sudo apt update

다음으로, 오래된 패키지를 업그레이드하세요.

sudo apt upgrade

PostgreSQL 16용 초기 패키지 설치

데이터베이스 소프트웨어 설치를 지원하려면 다음 패키지를 설치하십시오.

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y

PostgreSQL 16 APT 리포지토리 추가

먼저 PostgreSQL GPG 키를 가져옵니다. 이는 설치하려는 패키지가 정품이고 변조되지 않았는지 확인하는 것입니다.

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null

올바른 PostgreSQL 16 리포지토리 선택

이제 귀하의 필요에 맞는 적절한 PostgreSQL 16 리포지토리를 선택할 차례입니다.

생산/일반 사용을 위한 안정적인 저장소

안정적인 저장소는 대부분의 사용자, 특히 프로덕션 환경에서 사용하는 것입니다. 안정적이고 안전한 버전으로 정기적으로 업데이트됩니다.

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list

개발자를 위한 스냅샷 또는 테스트 리포지토리

개발 또는 테스트 단계에 있는 경우 스냅샷 또는 테스트 리포지토리를 고려하세요. 그러나 안정성이 떨어지는 특성으로 인해 프로덕션 용도로 사용되지 않는다는 점을 기억하세요.

최첨단 테스트를 위한 스냅샷 저장소

여기에서 최신 스냅샷을 확인하세요.

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
최신 기능을 위한 테스트 저장소

최신 기능을 테스트하기 위해 이 명령은 다음을 설정합니다.

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list

터미널 명령을 통해 PostgreSQL 16 설치

APT 패키지 색인 소스 목록 새로 고침

안정적이거나 테스트 중인 PostgreSQL 저장소를 추가한 후에는 저장소 소스 목록을 업데이트하는 것이 중요합니다. 이 작업을 수행하면 시스템이 새로 추가된 PostgreSQL 저장소를 인식하게 됩니다.

sudo apt update

APT 명령을 통해 PostgreSQL 16 설치

이제 PostgreSQL 16 설치로 넘어갑니다. 이 명령은 PostgreSQL 클라이언트와 서버를 모두 설치합니다.

sudo apt install postgresql-client-16 postgresql-16

PostgreSQL 설치 확인

설치가 완료되면 PostgreSQL이 올바르게 설치되어 실행 중인지 확인하는 것이 중요합니다. 이 명령은 PostgreSQL 서비스의 상태를 확인합니다.

systemctl status postgresql

PostgreSQL 16 활성화

PostgreSQL이 활성화되지 않은 경우 이 명령을 사용하여 PostgreSQL 서비스를 시작합니다. 이는 또한 PostgreSQL이 시스템에서 자동으로 시작되도록 보장합니다.

sudo systemctl enable postgresql --now

PostgreSQL 16 서비스 관리

PostgreSQL 16 서버 중지

유지 관리 또는 구성 변경을 위해 PostgreSQL 서비스를 일시적으로 중지하려면 다음 명령을 사용합니다.

sudo systemctl stop postgresql

PostgreSQL 16 서버 시작

PostgreSQL 서비스를 시작할 준비가 되면, 특히 중지 또는 초기 설치 후에 다음 명령이 유용합니다.

sudo systemctl start postgresql

PostgreSQL 16 서버 다시 시작

구성이나 업데이트를 변경한 시나리오에서는 다시 시작해야 하는 경우가 많습니다. 이 명령은 새로운 변경 사항을 적용하여 PostgreSQL 서비스를 다시 시작합니다.

sudo systemctl restart postgresql

PostgreSQL 16 서버 다시 로드

작업을 중단하지 않고 PostgreSQL 서비스를 다시 로드하려면 이 명령을 사용합니다. 사소한 구성 변경을 적용해야 할 때 유용합니다.

sudo systemctl reload postgresql

PostgreSQL 16 상태 확인

활성 상태이고 문제 없이 실행되는지 여부를 포함하여 PostgreSQL 서비스의 작동 상태를 확인하려면 다음을 사용합니다.

systemctl status postgresql

시스템 부팅 시 PostgreSQL 16 활성화

PostgreSQL이 자동으로 시작되도록 설정되지 않은 경우 이 명령을 사용하면 PostgreSQL이 즉시 활성화되고 이후 시스템 부팅 시 활성화됩니다.

sudo systemctl enable postgresql --now

PostgreSQL 16을 사용한 기본 예제 명령

Postgres 사용자 계정에 액세스

PostgreSQL에서는 'postgres' 사용자가 기본 슈퍼유저 역할입니다. 이 계정은 관리 명령을 실행하는 데 중요합니다. 이 계정으로 전환하려면 다음을 사용하세요.

sudo -i -u postgres

계정에 들어가면 PostgreSQL 명령줄 인터페이스를 입력합니다.

psql

프롬프트 postgres=# PostgreSQL 환경에 대한 연결을 확인합니다. 종료하려면 간단히 입력하십시오. exit.

사용자 스위치 없이 PostgreSQL에 빠르게 액세스

사용자 계정을 변경하지 않고 신속한 작업을 수행하려면 PostgreSQL에 직접 액세스하세요.

sudo -u postgres psql

이 명령은 일상적인 작업의 시간을 절약해 줍니다. 이 인터페이스를 종료하려면 다음을 입력하십시오. exit.

새 PostgreSQL 사용자 역할 생성

PostgreSQL의 유연성 덕분에 슈퍼유저는 사용자 역할을 생성할 수 있습니다. 새 사용자 역할을 설정하려면 다음 명령을 실행하세요.

sudo su - postgres -c "createuser <username>"

바꾸다 <username> 원하는 사용자 이름으로.

새 PostgreSQL 데이터베이스 시작

사용자를 위한 새 데이터베이스를 설정하려면 다음 안내를 따르세요.

sudo su - postgres -c "createdb <database_name>"

바꾸다 <database_name> 데이터베이스의 의도된 이름으로.

데이터베이스에 사용자 권한 할당

데이터베이스 액세스를 안전하게 할당합니다.

sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;

대리자 <database_name> 그리고 <username> 필요에 따라. 입력하여 마무리 exit.

PostgreSQL 16용 UFW 방화벽 구성

UFW 방화벽 설치 및 활성화

시스템에 UFW(복잡하지 않은 방화벽)가 설치되어 활성화되어 있는지 확인하세요. UFW는 방화벽 관리를 단순화하며 네트워크 트래픽 보안에 필수적입니다.

sudo apt install ufw
sudo ufw enable

PostgreSQL 16용 UFW 규칙 설정

PostgreSQL은 기본적으로 포트 5432에서 통신합니다. 특히 원격 위치에서 연결할 때 이 포트의 트래픽을 허용하려면 UFW를 구성해야 합니다.

서브넷 액세스 허용

서브넷 내의 다양한 IP 주소에 대한 액세스를 허용하려면 다음 명령을 사용하십시오.

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

바꾸다 192.168.1.0/24 특정 서브넷 범위로.

개별 IP 접근 허용

단일 IP 주소에서 PostgreSQL에 대한 액세스 권한을 부여하려면 다음을 사용하세요.

sudo ufw allow proto tcp from 192.168.1.0 to any port 5432

수정하다 192.168.1.0 허용하려는 IP 주소로 이동합니다.

이는 단지 기본적인 예일 뿐입니다. 공용 데이터베이스를 가능한 한 장기적으로 잠그는 것을 고려해야 합니다.

PostgreSQL 16 구성

PostgreSQL 16에서 원격 액세스 활성화

원격 연결을 허용하도록 PostgreSQL을 구성하려면 기본 로컬 인터페이스에서 수신 주소를 조정해야 합니다.

원격 액세스 구성 수정

PostgreSQL 구성 파일에 액세스합니다.

sudo nano /etc/postgresql/16/main/postgresql.conf

"연결 설정" 섹션에서 다음을 변경하세요. listen_addresses = 'localhost' 귀하의 특정 요구 사항에 따라:

  • 'localhost'를 단일 IP에 대해 원하는 IP 주소로 바꾸십시오.
  • 모든 인터페이스에서 연결을 허용하려면 다음을 사용하십시오. listen_addresses = '*'.

변경 후 CTRL+O를 눌러 저장하고 CTRL+X를 눌러 종료하세요. 그런 다음 PostgreSQL을 다시 시작합니다.

sudo systemctl restart postgresql

다음을 사용하여 변경 사항을 확인합니다.

ss -nlt | grep 5432

출력에는 포트 5432가 활성화된 것으로 표시되어야 합니다.

보안 강화를 위해 pg_hba.conf 구성

편집하다 pg_hba.conf 미세 조정된 액세스 제어를 위한 파일:

sudo nano /etc/postgresql/16/main/pg_hba.conf

사용자 및 데이터베이스 액세스 사용자 정의

~ 안에 pg_hba.conf를 사용하면 연결할 수 있는 사용자와 데이터베이스 및 주소를 지정할 수 있습니다. 다음은 몇 가지 일반적인 구성입니다.

  • 사용자별 액세스: 해당 사용자에게만 액세스를 제한하려면 'all'을 특정 사용자 이름으로 바꾸세요.
  • 데이터베이스별 액세스: 모든 데이터베이스에 대한 접근을 허용하는 대신 특정 데이터베이스를 지정합니다.
  • 주소 제한: 특정 IP 주소 또는 범위를 정의합니다(예: 192.168.1.0/24) 연결이 시작될 수 있는 위치를 제한합니다.

인증 방법 선택

PostgreSQL은 다양한 인증 방법을 지원합니다.

  • MD5: 비밀번호가 필요하며 MD5로 암호화합니다.
  • 비밀번호: 일반 텍스트 비밀번호를 사용합니다(보안 수준이 낮으므로 프로덕션에는 권장되지 않음).
  • 또래: OS 수준 사용자 ID에 의존합니다(로컬 연결에 공통).
  • 아이덴티티: 일반적으로 네트워크 연결에 사용되는 '피어'와 유사합니다.
  • SCRAM-SHA-256: MD5나 비밀번호보다 더 안전한 방법을 권장합니다.

성능 튜닝 postgresql.conf

성능 최적화를 위해 다음 설정을 고려하십시오. postgresql.conf:

  • 공유_버퍼: PostgreSQL이 공유 메모리 버퍼에 사용하는 메모리 양을 조정합니다.
  • work_mem: 내부 정렬 및 해싱 작업에 사용되는 메모리를 설정합니다.
  • 최대_연결: 데이터베이스에 대한 최대 동시 연결 수를 제어합니다.

모니터링 및 진단

데이터베이스 성능 및 문제에 대한 통찰력을 얻기 위해 자세한 로깅을 활성화합니다.

  • log_statement: 실행된 모든 SQL 문을 기록하려면 'all'로 설정합니다.
  • log_duration: 활성화되면 완료된 각 SQL 문의 기간을 기록합니다.

결론

방금 Ubuntu에서 PostgreSQL 16을 설정하는 방법에 대한 포괄적인 가이드를 살펴보았습니다. 설치 및 원격 액세스 구성부터 방화벽 규칙을 통한 보안 강화에 이르기까지 모든 내용을 다루고 있습니다. PostgreSQL을 시작하고 실행하는 것이 좋지만 실제 핵심은 정기적인 유지 관리 및 보안 검사에 있다는 점을 기억하십시오.

유용한 링크

다음은 Ubuntu Linux에 PostgreSQL 16 설치와 관련된 몇 가지 유용한 링크입니다.

  • PostgreSQL 16 릴리스 노트: 새로운 기능, 개선 사항 및 버그 수정에 대해 알아보려면 PostgreSQL 16 릴리스 노트를 읽어보세요.
  • PostgreSQL GitHub 리포지토리: 공식 PostgreSQL GitHub 저장소를 방문하여 소스 코드에 액세스하고, 문제를 보고하고, 개발에 기여하세요.
  • PostgreSQL 문서: 자세한 설치, 구성 및 사용 가이드를 보려면 포괄적인 PostgreSQL 설명서에 액세스하세요.
  • PostgreSQL 커뮤니티: PostgreSQL 커뮤니티에 가입하여 다른 사용자와 소통하고, 토론에 참여하고, 지원을 받으세요.
Joshua James

코멘트를 남겨주세요