Hi everyone!

I'm using terraform for my project.
and I met critical problem with terraform.


First, I created redis using following terraform modules few monthes ago.
- aws_elasticache_parameter_group
- aws_elasticache_cluster


the redis has only master node. ( 0 shard , 1 node, no replica, cluster 
mode not enabled )


last week, I decided to make the redis master-replica for safe.
There are a lot of data in the redis. so, I must change the structure 
without data lost.
I want to make the redis as following( 1 shard, 2 node, multi AZ automatic 
fail over, cluster mode not enabled)


On the AWS console, I'm able to change the redis through following process.
- add replica
- add node ( different AZ with Master node )
- enable Muti AZ

Next, I tried to do same job using terraform but I met problems so, couldn't
following are the ways that I tried


1st. way

As I found, following modules are used for master-replica redis.
- aws_elasticache_parameter_group
- aws_elasticache_replication_group


I used same aws_elasticache_parameter_group.
And use aws_elasticache_replication_group instead of 
aws_elasticache_cluster.
then 'Terraform plan' says, existed redis will be deleted and new redis 
will be created.
I think terraform recreate redis because existing redis and new redis 
structure use different terraform moules.
I can't use this.


2nd. way
Next, I decided to change the redis on aws and modify terraform.tfstate 
manually.
I created a redis ( 0 shard , 1 node, no replica, cluster mode not enabled 
) for test.
and changed the redis structure to ( 1 shard, 2 node, multi AZ automatic 
fail over, cluster mode not enabled) on the aws console
then 'terraform plan' 
but it says nothing changed.
there are different points between terraform.tfstate and real aws component 
because I changed it.
but Terraform cant' recongnized it.

There are one more problem. 
in spite of ablove problem, I tried to proceed this way.
and I found 'terraform import' doesn't support 
'aws_elasticache_replication_group'
so, I can't import the modified redis.
I gave up this way.


3nd way

In terraform document, I found that there is 'replication_group_id' in 
aws_elasticache_cluster module
so, I tried to use all of 3 modules below

- aws_elasticache_parameter_group
- aws_elasticache_cluster
- aws_elasticache_replication_group

add replication_group_id in the aws_elasticache_cluster module and give 
"aws_elasticache_replication_group.EXAMPLE.replication_group_id" as the 
value
then 'terraform plan'
it says "Error: aws_elasticache_cluster.redis_petertest: 
"replication_group_id": this field cannot be set"
also fail. 
The parameter isn't able to use. I couldn't find the reason.


My questions are...

1. Is there any way to make existing redis ( 0 shard , 1 node, no replica, 
cluster mode not enabled ) 
to ( 1 shard, 2 node, multi AZ automatic fail over, cluster mode not 
enabled) without data lost using terraform?
2. Is 'replication_group_id' in 'aws_elasticache_cluster' module available? 
I can't find the way.
3. If there is a way for 2nd question, Could you give me the example script 
to created redis using all of three modules below?
aws_elasticache_parameter_group, aws_elasticache_cluster and 
aws_elasticache_replication_group.


If there is anyway to make redis master slave stucture without data lost, 
please help me.

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/packer/issues
IRC: #packer-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/2f2170fe-0897-4b45-8410-610e18b75c63%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to