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

2474 단어 terraformdevopssreaws
이 게시물에서는 스냅샷에서 AWS RDS Global 데이터베이스를 생성하는 방법을 살펴보겠습니다.


DR이 이미 있는 경우 스냅샷에서 데이터베이스를 생성하는 이유는 무엇입니까?



확실히 DR 시스템이 있는 경우 매일 스냅샷에서 글로벌 데이터베이스를 생성해야 할 수도 있습니다(그렇기를 바랍니다).

그러나 데이터베이스에 대규모 업데이트를 제공할 때 마지막 상태로 돌아가거나 데이터베이스에서 다른 데이터베이스로 데이터를 마이그레이션하는 경우 무언가를 원할 수 있습니다.


스냅샷에서 글로벌 데이터베이스를 생성하는 방법은 무엇입니까?



설명서를 확인했다면 aws_rds_cluster 정의에서 snapshot_identifier라는 파라미터를 본 적이 있을 것입니다.

여기에서 값을 정의하고 스크립트를 실행하면 모든 요소가 생성되지만 스냅샷이 있는 클러스터는 전역 데이터베이스에 연결되지 않습니다.

지난 게시물에 제시된 솔루션에서 우리는 다음을 수행했습니다.
1 - 글로벌 클러스터 생성
2 - 그런 다음 주 클러스터를 만듭니다.
3 - 그런 다음 다른 모든 클러스터를 만듭니다.

하지만 제대로 작동하려면 이 순서와 링크를 변경해야 합니다.

먼저 글로벌 데이터베이스에 대한 링크 없이 스냅샷에서 기본 클러스터를 생성해야 합니다.

이 하나

global_cluster_identifier = aws_rds_global_cluster.example.id


그런 다음 글로벌 클러스터를 만들어야 합니다. 하지만 이번에는 글로벌 클러스터에게 기본 클러스터를 기반으로 해야 한다고 말할 것입니다.

resource "aws_rds_global_cluster" "example" {
  global_cluster_identifier = "global-test"

  source_db_cluster_identifier = aws_rds_cluster.default.arn
  force_destroy = true
}


이 전역 클러스터 정의에서 우리는 많은 매개변수(예: 엔진, 데이터베이스 이름...)가 사라진 것을 볼 수 있으며 이는 전역 클러스터가 기본 클러스터의 구성을 사용하기 때문입니다!

Note : If you are creating a cluster from a snapshot, the master_username won't be override by the one you defined in your script, it will keep the one defined in the snapshot, but master_username yes.




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

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


시리즈 링크



  • 1 - 시작:

  • 2 - 정의:

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

  • 4 - HA 데이터베이스:

  • 5 - DR 데이터베이스:

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

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

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

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