mysql9 Restoring from a GCP CloudSQL MySQL snapshot Restoring from a GCP CloudSQL MySQL snapshot https://cloud.google.com/sql/docs/postgres/backup-recovery/restoring?hl=ko # Check backup id curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://sqladmin.googleapis.com/v1/projects/my-project-a/instances/premisan-test/backupRuns" Output { "kind": "sql#backupRunsList", "items": [ { "kind": "sql#backupRun", "status": "S.. 2023. 5. 12. Setting up a GCP CloudSQL maintenance window Setting up a GCP CloudSQL maintenance window Maintenance information for Cloud SQL instances https://cloud.google.com/sql/docs/mysql/maintenance?hl=ko Check and set maintenance windows https://cloud.google.com/sql/docs/mysql/set-maintenance-window?hl=ko Self-service maintenance https://cloud.google.com/sql/docs/mysql/self-service-maintenance?hl=ko (memorystore redis) maintenance policy https://c.. 2023. 5. 12. GCP CloudSQL Proxy GCP CloudSQL Proxy Cloud SQL 인증 프록시 정보 https://cloud.google.com/sql/docs/mysql/sql-proxy?authuser=1 Cloud SQL 인증 프록시 다운로드 및 설치 https://cloud.google.com/sql/docs/mysql/sql-proxy?authuser=1#install 승인된 네트워크나 ssl 없이 cloud sdk 인증으로 cloudsql 로 연결되는 프록시 실행 -> 연결하려면 Cloud SQL 클라이언트 역할(roles/cloudsql.client) 필요 -> cloud-sql-proxy 를 사용하더라도 VPC 외부에서 접근하려면 cloudsql 인스턴스에 퍼블릭 아이피가 필요함 # 설치 curl -o cloud-sql.. 2023. 4. 30. GCP CloudSQL IAM 인증 GCP CloudSQL IAM 인증 IAM 인증으로 사용자 관리 https://cloud.google.com/sql/docs/mysql/add-manage-iam-users?hl=ko IAM 데이터베이스 인증을 사용하여 로그인 https://cloud.google.com/sql/docs/mysql/iam-logins?hl=ko # cloudsql 인스턴스 및 iam 계정 권한 확인 -> cloudsql 인스턴스에 cloudsql_iam_authentication 플래그 on 으로 설정(iam 인증 타입의 사용자 생성 시 자동으로 세팅됨) -> iam 계정에 roles/cloudsql.instanceUser 역할 필요 # cloudsql 사용자(iam 사용자 인증 타입) 생성 gcloud sql users.. 2023. 4. 30. ProxySQL 을 통한 MySQL 쿼리 라우팅 설정 지난 게시글에서는 MySQL connector for Java 의 Replication 커넥션 기능을 사용하여 쓰기/읽기 DB로 쿼리를 분산하는 내용으로 공유를 진행했습니다. 하지만 MySQL connector for Java 의 Replication 커넥션 기능을 사용하는 경우 쿼리를 쓰기/읽기 DB 중 어느 DB로 보낼지 소스상에서 일일이 지정해줘야하는 점이 단점이었는데요. 이번 게시글에서는 쿼리 라우팅 기능이 포함된 오픈 소스 MySQL 프록시인 ProxySQL을 이용하여 Query Rule을 설정하고 설정할 룰에 따라 자동으로 쿼리를 라우팅하는 설정 방법을 공유하도록 하겠습니다. 1. ProxySQL이란 ProxySQL은 쿼리 라우팅 기능을 제공하는 MySQL 및 MySQL 포크(Percona, .. 2023. 4. 2. JAVA MySQL Connector replication 을 통해 쓰기/읽기 쿼리 분산 얼마 전 MySQL 쓰기/읽기 DB가 분산 구성된 경우 커넥션 엔드포인트를 별도로 구성하는 방법 외에 사용할 수 있는 방법이 있는지 궁금증이 생겨 찾아보던 중, MySQL Connector 에서 제공하는 기능인 Replication 커넥션을 통한 쓰기/읽기 쿼리 분산 방법이 있어 공유하려고 합니다. 1. 간단 요약 먼저 MySQL Connector Replication 커넥션을 통해 쓰기/읽기 쿼리를 분산하는 방법은 conn.setReadOnly(); 메소드를 통해 쿼리를 마스터/슬레이브 중 어떤 DB로 보낼지 설정하는 것이기 때문에 소스 상의 수정이 필요하며, 쿼리의 성격에 따라 일일이 지정해줘야하는 점에서 쓰기/읽기 커넥션 엔드포인트를 별도로 지정하는 것과 크게 다르진 않습니다. 다만 다른 점이 있다.. 2023. 3. 25. MySQL MHA(Master High Availability) 설정 지난 DRBD를 이용한 MySQL HA 구성 관련 글과 AWS Aurora 스토리지 관련 글에서 MySQL 리플리케이션의 경우 비동기 복제 방식이기 때문에 데이터의 일관성을 보장하지는 않는다는 내용을 많이 언급했습니다. 하지만 MySQL 5.7 버전에 추가된 Loss-Less Semi-sync 리플리케이션과 HA 도구인 MHA(Master High Availability)를 함께 사용하는 경우 동기식 복제와 거의 유사한 데이터 일관성 보장이 가능합니다. MHA 구성 방법과 장애조치 테스트 내용 공유를 위해 글을 작성하였습니다. MySQL Semi-sync 리플리케이션 MHA를 구성하기 전에 먼저 MySQL Semi-sync 리플리케이션에 대해 알아야할 것 같습니다. 1) 기본 MySQL 리플리케이션 My.. 2023. 3. 23. DRBD(+keepalived)를 이용한 MySQL HA 구성 DRBD, keepalived를 이용한 MySQL HA 구성 관련 내용 공유합니다. DRBD란 DRBD는 Distributed Replicated Block Device 의 약자로 Linux 플랫폼을위한 분산 복제 스토리지 시스템을 의미합니다. DRBD 설정을 통해 로컬 호스트에 있는 디스크와 네트워크 상에 있는 다른 호스트의 디스크를 RAID1(미러링)으로 묶은 것과 동일한 효과를 낼 수 있습니다.(네트워크 지연시간에 따라 복제 지연은 발생할 수 있음) 이번 구성에서는 DRBD 구성 및 지난번 HAPROXY HA 구성에 사용했던 HA 도구인 keepalived를 이용하여 MySQL 서버 장애 발생 시 자동으로 장애조치 가능하도록 설정해보록 하겠습니다. 테스트 환경 테스트 환경 구성은 아래와 같습니다. .. 2023. 3. 23. 이미지를 DB에 BLOB 데이터타입으로 저장 웹페이지에 이미지를 넣기 위해서는 웹서버 혹은 별도의 이미지 서버에 파일 형식으로 업로드를 한 뒤, img src HTML 태그를 통해 웹페이지에 포함시키는 것이 일반적인 사용 방법이나, 이미지를 DB에 저장하고 저장된 이미지를 DB로부터 select하여 웹페이지를 통해 노출할 수 있는 방법이 있어 공유해드리고자 합니다. 테스트 환경 테스트 환경은 아래와 같습니다. DB - AWS RDS(Mariadb 10) 웹서버 - apache 2.4(php 7.4) 데이터베이스 생성 및 테이블 생성 바이너리 데이터인 이미지 파일을 DB에 저장하기 위해 blob 데이터 타입으로 설정하여 테이블을 생성합니다. BLOB 이란 Binary large object 로 바이너리 데이터를 DB에 저장하기 위한 데이터 타입으로 .. 2023. 3. 12. 이전 1 다음