AWS에서 HA/DR 데이터베이스를 설정하는 방법은 무엇입니까? [5 - DR 데이터베이스]

3877 단어 terraformdevopssreaws
시리즈의 이 부분에서는 재해 복구 시스템을 사용하여 데이터베이스를 (마지막으로) 만드는 방법을 살펴보겠습니다.


글로벌 데이터베이스 생성



이제 데이터베이스 클러스터가 있으므로 여러 지역에서 여러 데이터베이스를 쉽게 생성하고 글로벌 데이터베이스에 연결할 수 있습니다.

따라서 최소한 2개의 리전에서 2개의 클러스터를 생성해야 하며 aws_rds_global_cluster를 생성합니다.

aws_rds_global_cluster의 정의




resource "aws_rds_global_cluster" "example" {
  global_cluster_identifier = "global-test"
  engine                    = "aurora"
  engine_version            = "5.6.mysql_aurora.1.22.2"
  database_name             = "example_db"
}


이 예제에서는 모든 데이터베이스 간에 균일성을 유지하기 위해 몇 가지 공통 매개변수가 엔진, 해당 버전 또는 db 이름으로 정의되어 있음을 볼 수 있습니다.


클러스터 정의 업데이트



글로벌 데이터베이스를 사용할 것이기 때문에 클러스터를 글로벌 데이터베이스에 연결해야 합니다.

global_cluster_identifier = aws_rds_global_cluster.example.id


그런 다음 모든 보조 클러스터에서 depends_on을 추가하여 글로벌 클러스터와 기본 클러스터 다음에 생성되도록 할 수 있습니다.

depends_on = [
    aws_rds_global_cluster.example,
    aws_rds_cluster.default
  ]


또한 다음과 같이 일부 매개변수는 더 이상 필요하지 않습니다(이제 글로벌 데이터베이스에서 정의되기 때문).
  • master_username
  • master_password
  • 데이터베이스 이름

  • 그런 다음 단일 Terraform 스크립트에서 모든 요소를 ​​생성하려는 경우 클러스터를 생성하려는 각 지역에 대해 여러 공급자를 선언해야 합니다. (완전한 포인트는 다음 게시물에서 설명하겠습니다)


    글로벌 클러스터 사용



    데이터베이스에 대한 액세스



    전역 클러스터에는 읽기/쓰기 권한이 있는 데이터베이스와 모든 읽기 전용 데이터베이스에 대한 다른 엔드포인트를 노출하는 특정 엔드포인트가 없습니다.

    각 클러스터는 자체 엔드포인트를 생성합니다.

    기본 클러스터의 경우 두 끝점 모두 잘 작동합니다.

    다른 클러스터의 경우 읽기 전용 엔드포인트만 작동합니다.

    기본 진입점을 하나만 갖고 다른 모든 데이터베이스에 업데이트를 복제하는 것이 정상입니다.

    그러나 지역에 더 이상 액세스할 수 없거나 주 지역을 변경하기 위해 수동으로 장애 조치를 수행하는 경우 첫 번째 지역의 읽기/쓰기 엔드포인트가 비활성화되고 새 주 지역 중 하나가 활성화됩니다.

    장애 조치를 수동으로 수행하는 방법은 무엇입니까?



    AWS 웹 콘솔에서 전역 데이터베이스를 선택하고 작업에서 전역 데이터베이스 장애 조치를 수행합니다. 그것을 클릭하면 스위치가 켜집니다!

    연결


  • Terraform 설명서: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/rds_global_cluster
  • AWS 장애 조치 글로벌 데이터베이스 설명서: https://aws.amazon.com/blogs/database/managed-planned-failovers-with-amazon-aurora-global-database/



  • 그것이 당신을 도울 수 있기를 바랍니다! 🍺

    그리고 이 시리즈의 다음 부분에서 곧 뵙겠습니다. 😀


    시리즈 링크



  • 1 - 시작:

  • 2 - 정의:

  • 3 - 간단한 데이터베이스:

  • 4 - HA 데이터베이스:

  • 5 - DR 데이터베이스:

  • 6 - 스냅샷에서 만들기:

  • 7 - 동적 Terraform 백엔드 정의:

  • 8 - 여러 지역의 여러 인스턴스:

  • 9 - 임의 값 생성:
  • 좋은 웹페이지 즐겨찾기