Terraform: инфраструктура на уровне кода | страница 40
Каждый тип провайдеров поддерживает создание разного вида ресурсов, таких как серверы, базы данных и балансировщики нагрузки. Обобщенный синтаксис создания ресурса в Terraform выглядит так:
resource "
[CONFIG ...]
}
PROVIDER — имя провайдера (предположим, aws), TYPE — тип ресурса, создаваемого в этом провайдере (вроде instance), NAME — идентификатор, с помощью которого вы хотите ссылаться на ресурс в коде Terraform (скажем, my_instance), а CONFIG содержит один или несколько аргументов, предусмотренных специально для этого ресурса.
Например, чтобы развернуть в AWS один (виртуальный) сервер (экземпляр EC2), укажите в файле main.tf ресурс aws_instance:
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}
Ресурс aws_instance поддерживает много разных аргументов, но пока что вам нужны только два из них, которые являются обязательными.
•ami. Образ Amazon Machine Image (AMI), который будет запущен на сервере EC2. В AWS Marketplace (https://aws.amazon.com/marketplace/) можно найти платные и бесплатные образы. Вы также можете создать собственный экземпляр AMI, применяя такие инструменты, как Packer (обсуждение образов и шаблонизации серверов ищите в подразделе «Средства шаблонизации серверов» на с. 31). Код, представленный выше, назначает параметру ami идентификатор AMI Ubuntu 18.04 в us-east-2. Этот образ можно использовать бесплатно.
• instance_type. Тип сервера EC2, который нужно запустить. У каждого типа есть свой объем ресурсов процессора, памяти, дискового пространства и сети. Все доступные варианты перечислены на соответствующей странице по адресу https://amzn.to/2H49EOH. В приведенном выше примере используется тип t2.micro, который имеет один виртуальный процессор с 1 Гбайт памяти и входит в бесплатный тариф AWS.
Используйте документацию!
Terraform поддерживает десятки провайдеров, у каждого из которых есть десятки ресурсов, и для каждого ресурса предусмотрены десятки аргументов. Запомнить все это невозможно. При написании кода Terraform следует регулярно сверяться с документацией, чтобы посмотреть, какие ресурсы вам доступны и как их использовать. Например, вот документация для ресурса aws_instance по адресу