すべての状態を失うことなく、Terraformによって管理されるRedisクラスターにシャードを追加する方法は?


7

TerraformでRedisクラスターをセットアップしました。セットアップは次のようになります。

resource "aws_elasticache_replication_group" "instance" {
  replication_group_id = "test"

  node_type                     = "cache.t2.micro"
  port                          = 6379
  parameter_group_name          = "default.redis3.2.cluster.on"
  subnet_group_name             = "${aws_elasticache_subnet_group.instance.name}"
  security_group_ids            = ["${aws_security_group.instance.id}"]

  cluster_mode {
    replicas_per_node_group = 0
    num_node_groups         = "${var.cluster_size}"
  }

  automatic_failover_enabled = true
  apply_immediately = true
}

var.cluster_size2から3 に変更すると、Terraformが更新を適切に実行することを期待していました。ただし、そうではありません。

-/+ module.groupsign_redis.aws_elasticache_replication_group.instance (new resource required)
  id:                                              "test" => <computed> (forces new resource)
  apply_immediately:                               "true" => "true"
  at_rest_encryption_enabled:                      "false" => "false"
  auto_minor_version_upgrade:                      "true" => "true"
  automatic_failover_enabled:                      "true" => "true"
  cluster_mode.#:                                  "1" => "1"
  cluster_mode.3760271746.num_node_groups:         "" => "3" (forces new resource)
  cluster_mode.3760271746.replicas_per_node_group: "" => "0" (forces new resource)
  cluster_mode.3784625311.num_node_groups:         "2" => "0" (forces new resource)
  cluster_mode.3784625311.replicas_per_node_group: "0" => "0"

これはドキュメントでも確認されています

num_node_groups-(必須)このRedisレプリケーショングループのノードグループ(シャード)の数を指定します。この数を変更すると、新しいリソースが強制されます。

現在、最初のデプロイにTerraformを使用してから、AWS UIを使用してシャードを追加または削除するオプションのみが表示されます。これにより、更新が適切に実行されます。

Terraformを使用してインプレース更新を実行する方法を知っていますか?それとも、現時点ではTerraformではデータベースの状態を失うことなくシャードを追加することは不可能ですか?

(AWS UIを介して)シャードを手動で追加/削除し、新しい状態をTerraformにインポートして戻すことができる場合があります。を実行しようとしましたがterraform refresh、状態を完全に同期することに成功しました。terraform applyまだリソースを変更する必要があると考えています。

更新: 機能するのは、変更を単に無視することです。他のTerraformリソースの更新は引き続き機能します。ただし、Terraformファイルで指定されているクラスターサイズが、デプロイされている実際のサイズと一致しないため、少し混乱します。次に、Terraformセットアップを確認して、現在デプロイされているものを正確に確認する機能を失います。

現在、それは私が気づいている最良のオプションです。

回答:



1

幸い、状況は改善され、問題はもう存在しません。

Terraformは、シャードの数のインプレース更新をサポートしています。更新されたドキュメントから引用するには:

num_node_groupsこのRedisレプリケーショングループのノードグループ(シャード)の数を指定します。この数を変更すると、他の設定を変更する前にオンラインのサイズ変更操作がトリガーされます。

(以前は、この数値変更すると、新しいリソースが強制されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.