Update Let’s Encrypt SSL Certificate in manual by pem key

bitnami

인증서가 저장된 폴더는 주로 관리자 접근 이므로

입력하여 관리자 모드로 바꿔준다.
관리자 패스워드 설정이 안되어있다면

를 입력하여 설정해준다.
그리고 다음 명령어를 입력하여 기존 인증서 키인 server.crt와 server.key 를 백업한다.

mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.backup
mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.backup

생성된 인증서 파일을 기존 인증키 폴더에 동일한 파일명으로 복사한다.

cp /etc/letsencrypt/live/your_domain/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
cp /etc/letsencrypt/live/your_domain/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key

파일 접근 권한을 설정하여 Apache가 접근할 수 있도록 한다.

chown root:root /opt/bitnami/apache2/conf/bitnami/certs/server.crt
chown root:root /opt/bitnami/apache2/conf/bitnami/certs/server.key

chmod 600 /opt/bitnami/apache2/conf/bitnami/certs/server.crt
chmod 600 /opt/bitnami/apache2/conf/bitnami/certs/server.key

다음 명령으로 서버를 재시작하여 새로운 인증서가 적용되도록 하면 끝이다.

/opt/bitnami/ctlscript.sh restart apache

nginx

cat /etc/nginx/sites-available/default

명령을 실행하여 server 443 ssl 포트에 ssl_certificate 가 어느 폴더를 가리키고 있는지 확인 후 해당 폴더에 fullchain.pem과 privkey.pem 파일이 정상적으로 복사가 되어있다면 다음의 명령줄을 입력하여 서버를 재시작 하면 인증서가 적용된다.

sudo systemctl restart nginx

Which is good for my web app, PostgreSQL vs MySQL

Question ) postgresql 과 mysql 각 장점과 단점을 알려줘, 현재 threejs 웹앱과 연동할 데이터베이스를 구축하려하는데 둘중 어떤것을 사용한게 좋을지 추천해줘, 혹시 그밖의 데이터베이스가 있다면 알려줘

Three.js 웹앱과 연동할 데이터베이스를 구축하려는 상황에서 PostgreSQL과 MySQL의 장단점을 고려해보는 것이 중요합니다. 이 두 가지 데이터베이스는 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 시스템(RDBMS) 중 하나이며, 각각의 특성과 기능이 프로젝트의 요구 사항에 따라 적합할 수 있습니다.

PostgreSQL의 장점과 단점

장점:

  1. 고급 SQL 기능 지원: PostgreSQL은 표준 SQL과 더불어 창 함수, CTE(Common Table Expressions), 서브쿼리, 트리거 등 다양한 고급 SQL 기능을 지원합니다. 복잡한 쿼리와 데이터 조작에 적합합니다.
  2. 확장성 및 커스터마이징: PostgreSQL은 확장 모듈과 사용자 정의 함수를 통해 기능을 확장할 수 있습니다. 다양한 타입의 데이터(예: JSON, XML, 배열)를 지원하며, NoSQL 기능도 제공합니다.
  3. ACID 준수 및 데이터 무결성: PostgreSQL은 트랜잭션의 ACID(Atomicity, Consistency, Isolation, Durability) 특성을 철저히 준수하며, 데이터 무결성 보장에 강점을 가지고 있습니다.
  4. 복잡한 데이터 모델링 지원: 다중 테이블 관계나 제약 조건을 포함하는 복잡한 데이터 모델을 효율적으로 관리할 수 있습니다.
  5. 대규모 데이터 처리: 빅데이터를 다루는 데 있어 뛰어난 성능을 보입니다. 대용량 데이터 분석과 고급 통계 기능을 필요로 하는 경우 적합합니다.

단점:

  1. 학습 곡선: 고급 기능과 다양한 설정 옵션으로 인해 처음 사용하는 경우 학습 곡선이 있을 수 있습니다.
  2. 성능 튜닝의 필요성: 성능을 최적화하기 위해서는 여러 가지 설정을 조정해야 할 수 있으며, 초기 설정보다는 추가적인 튜닝이 필요할 수 있습니다.

MySQL의 장점과 단점

장점:

  1. 사용의 용이성: MySQL은 설치와 설정이 비교적 간단하며, 직관적인 인터페이스로 인해 배우기 쉽습니다.
  2. 높은 읽기 성능: 읽기 작업(SELECT 쿼리)에 대해 매우 뛰어난 성능을 보입니다. 웹 애플리케이션의 경우 읽기 작업이 많은 경우에 유리합니다.
  3. 광범위한 지원 및 커뮤니티: MySQL은 매우 큰 사용자 커뮤니티를 가지고 있어, 문제 해결에 대한 다양한 자료와 지원을 받을 수 있습니다.
  4. 다양한 엔진 지원: MySQL은 여러 스토리지 엔진(InnoDB, MyISAM 등)을 지원하여 상황에 맞는 데이터베이스 환경을 구성할 수 있습니다.
  5. PHP와의 친화성: PHP와의 연동이 쉽고, LAMP 스택(Linux, Apache, MySQL, PHP/Perl/Python)의 일부로 널리 사용됩니다.

단점:

  1. 제한된 고급 기능: PostgreSQL에 비해 일부 고급 SQL 기능이 부족할 수 있으며, 복잡한 쿼리 처리에 있어 제한이 있을 수 있습니다.
  2. ACID 준수의 한계: 기본적으로 InnoDB 엔진을 사용하는 경우 ACID를 준수하지만, MyISAM과 같은 엔진은 트랜잭션을 지원하지 않으며 데이터 무결성 측면에서 취약할 수 있습니다.
  3. 확장성의 한계: 매우 큰 규모의 데이터베이스 또는 복잡한 데이터 모델링의 경우 PostgreSQL에 비해 확장성이 떨어질 수 있습니다.

추천 및 고려사항

Three.js와 같은 웹앱에서 사용할 데이터베이스를 선택할 때 고려해야 할 몇 가지 요소는 다음과 같습니다:

  1. 데이터 복잡성: Three.js 웹앱이 단순한 CRUD(생성, 읽기, 업데이트, 삭제) 작업 위주라면 MySQL이 적합할 수 있습니다. 하지만 복잡한 데이터 모델이나 고급 SQL 기능이 필요하다면 PostgreSQL이 더 나은 선택이 될 것입니다.
  2. 성능 요구사항: 읽기 작업이 주로 이루어지는 경우 MySQL이 적합할 수 있지만, 데이터 무결성이나 트랜잭션 안정성이 중요한 경우 PostgreSQL이 더 나은 성능을 제공합니다.
  3. 확장성 및 미래 요구사항: 프로젝트가 확장 가능성을 고려해야 한다면 PostgreSQL이 더 나은 선택이 될 수 있습니다.

그 밖의 데이터베이스

  • SQLite: 경량 데이터베이스로, 파일 기반 데이터베이스를 원하는 소규모 프로젝트에 적합합니다. 설치가 필요 없고 매우 가벼운 점이 장점입니다.
  • MongoDB: 비관계형(NoSQL) 데이터베이스로, 복잡한 관계를 다루지 않거나 JSON과 같은 문서 기반 데이터를 효율적으로 관리해야 하는 경우에 유리합니다.
  • MariaDB: MySQL의 포크로, MySQL과 호환되면서도 몇 가지 추가 기능과 성능 개선을 제공합니다.

결론

Three.js 웹앱에 어떤 데이터베이스가 적합한지 결정하는 것은 프로젝트의 구체적인 요구 사항에 따라 달라집니다. 단순하고 읽기 위주이며 확장성이 필요 없는 경우 MySQL이 적합할 수 있지만, 복잡한 데이터 처리와 고급 기능이 필요하거나 미래의 확장성을 고려한다면 PostgreSQL이 더 나은 선택일 것입니다. NoSQL의 유연성이 필요하다면 MongoDB도 고려해볼 수 있습니다.