У меня есть стандартное двухуровневое приложение, которое я развертываю в AWS. В рамках этого развертывания мне нужно записать файл конфигурации в экземпляр EC2. Этот файл конфигурации содержит настройки базы данных (RDS). Прямо сейчас у меня есть этот файл, определенный как поставщик в экземпляре EC2. Итак, что делает terraform, так это то, что он даже не начнет создавать экземпляр EC2, пока RDS не будет на 100% запущен и запущен (что занимает около 5 минут). Это делает вещи очень медленными.
Есть ли способ сделать файловый ресурс вне контекста экземпляра EC2, чтобы экземпляр RDS и экземпляр EC2 создавались параллельно? Или здесь есть другой шаблон, который я должен использовать?
Вот некоторые биты кода:
resource "aws_instance" "foo" {
ami = "${lookup(var.AMIS, var.AWS_REGION)}"
instance_type = "t2.micro"
//setup the config file
provisioner "file" {
destination = "foo/config.json"
content = "${data.template_file.config_file.rendered}"
...
}
data "template_file" "config_file" {
template = "${file("config.json.tmpl")}"
vars {
mysql_pass = "${var.MYSQL_PASSWORD}"
mysql_addr = "${aws_db_instance.mysql.endpoint}"
}
}
resource "aws_db_instance" "mysql" {
allocated_storage = 20
...
}