AWS 인스턴스 서버를 사용하고 있습니다. 운영체제 종류는 Amazon Linux 2023을 사용하고 있는데요.
기본적으로 파이썬 3.9 버전이 설치가 되어 있었습니다 :) 제 서버는 파이썬 3.12 버전을 사용하고 있기 때문에, 파이썬 3.12 버전을 별도로 설치를 진행을 하였는데요. 파이썬 버전 변경까지는 문제가 없었습니다. 3.12 버전도 잘 사용하고 있었구요.
하지만!! dnf를 사용하면서 문제가 발생을 하였습니다ㅠㅠ (Postgre SQL을 설치하고 있었습니다ㅎㅎㅎ)
dnf가 무엇이냐?
바로, 리눅스에서 패키지 관리 도구입니다. 프로그램 설치, 업데이트, 삭제를 도와주는 도구로써 YUM의 업그레이드 버전이겠습니다.
파이썬 3.12 버전으로 변경을 하고 dnf를 사용하니 해당 명령어를 사용할 수가 없다고 하더라구요... 문제는 지금에 Amazon Linux 2023 버전의 파이이썬 3.12버전은 dnf를 사용할 수가 없었습니다. 그럼 어떻게 할까 고민을 했습니다. 프로젝트의 버전을 낮추기는 싫고, 이번에는 도커가 아닌 직접 Postgres를 설치하고 싶고.. 그래서 dnf를 필요로 할 때는 파이썬 3.9버전으로 낮추기로 했습니다 ㅠㅠ 조금 번거로워도, 자주 쓰는 명령어도 아니고 프로젝트 버전을 낮추는거보다야는... 괜찮은 선택이지 않을까 해요 ㅎㅎㅎ
파이썬 버전 변경)
# 3.12 -> 3.9 버전으로 변경
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo alternatives --config python3
## python 3.0 버전 번호 선택
## 설명
# sudo alternatives --install <대상 심볼릭 링크 경로> <이름> <대체 경로> <우선순위>
# 3.9 -> 3.12 버전으로 변경
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
sudo alternatives --config python3
## python 3.12 버전 번호 선택
위에 명령어를 입력하고 python 3.9의 번호를 선택하시면 되겠습니다.
Postgre SQL 직접설치)
sudo dnf install postgresql15 postgresql15-server -y
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
# 서비스 구동 상태 확인
sudo systemctl status postgresql-15
명령어를 입력해주시면 데이터베이스를 문제 없이 설치를 하실 수 있겠습니다.
하지만 진행하다가 또 만난 문제, setup 파일의 이름과 경로가 달랐습니다. 내 환경에서 설치와 경로를 다시 한번 확인하겠습니다.
sudo dnf list installed | grep postgresql
postgresql15, postgresql15-server 등이 목록에 표시되어야 합니다.
위에 파일이 존재한다면, postgresql-setup 명령어 위치를 확인해주세요.
sudo find /usr -name "*postgresql-setup*"
명령어도 존재를 하고, 다음 명령어에 맞춰서 다시 한번 설치 시도를 하겠습니다.
sudo /usr/bin/postgresql-setup --initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
마지막 명령어를 끝으로 이상 없이 데이터베이스가 설치 되었습니다.
내친김에 postgres 데이터베이스 및 계정 생성까지 진행하도록 하겠습니다!!
데이터베이스 및 계정 생성)
# postgreSQL 접속
sudo -u postgres psql
# 데이터베이스 및 사용자 설정
CREATE DATABASE mydb;
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
\q -- PostgreSQL 쉘 종료
다른 애플리케이션에서 PostgreSQL에 연결할 때는:
- 호스트: localhost (외부 연결 시 EC2 IP 주소)
- 포트: 5432
- 데이터베이스 이름: mydb
- 사용자: myuser
- 비밀번호: mypassword
매번 도커로 데이터베이스를 사용하다가, 이번에는 직접 설치와 계정을 생성해보았습니다. 컨테이너가 너무 쉽게 뚝딱뚝딱 만들어 주었다는 것을 깨달으며, 직접 설치와 사용을 해보는 귀한 경험을 해보고 있습니다!!
직접 운영을 하면서 이후에는 데이터 백업과 복구에 대해서도 학습을 진행해야 될 것 같습니다.
감사합니다 :)
p.s)
Amazon Linux 2023에서 파이썬 3.12 버전 설치 방법
sudo dnf update -y
sudo dnf install -y python3.12
python3.12 --version
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
sudo alternatives --config python3
'개발 기록 > AWS' 카테고리의 다른 글
Github와 AWS CodeDeploy 연동 - CI/CD 구축 (0) | 2023.10.30 |
---|---|
[aws] amazon linux 2023 crontab 설치 (0) | 2023.10.28 |
[aws] Amazon Linux 2 / 2023, ec2에서 도커 설치(+ docker-compse) (0) | 2023.10.27 |
DNS_PROBE_FINISHED_NXDOMAIN 에러 with aws, route 53 (0) | 2023.04.10 |
[aws] Elastic Beanstalk을 활용하여 react 배포 시 에러 발생 (0) | 2022.09.05 |