Прежде чем мы начнем, важно понять, что Terraform — это инструмент «инфраструктура как код», который позволяет создавать, управлять и обновлять ресурсы инфраструктуры, такие как серверы, сети и хранилища, в облачных провайдерах, таких как AWS.
Для начала вам потребуется учетная запись AWS и создать учетные данные для доступа, которые Terraform сможет использовать для доступа и изменения ваших ресурсов. Вы можете создать пару ключа доступа и секретного ключа, выполнив следующие действия:
- Войдите в свою учетную запись AWS и перейдите на панель инструментов IAM.
- Нажмите «Пользователи», а затем нажмите на свое имя пользователя.
- Перейдите на вкладку «Учетные данные безопасности», а затем нажмите «Создать ключ доступа».
- Сохраните ключ доступа и секретный ключ в надежном месте, так как позже вы не сможете получить секретный ключ.
Получив учетные данные для доступа, вы можете приступить к созданию файла Terraform для инициализации экземпляра EC2 на AWS. Вот пример файла, который вы можете изменить в соответствии с вашими потребностями:
provider "aws" { access_key = "YOUR_ACCESS_KEY" secret_key = "YOUR_SECRET_KEY" region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "my-ec2-instance" } }
В приведенном выше примере мы начинаем с определения поставщика aws
и передачи наших учетных данных для доступа и региона AWS, который мы хотим использовать. Затем мы определяем ресурс aws_instance
, который представляет экземпляр EC2, который мы хотим создать. Мы указываем образ машины Amazon (AMI) для использования и тип экземпляра. Наконец, мы добавляем к экземпляру тег, чтобы его было легче идентифицировать в консоли AWS.
Пояснение
provider "aws" { access_key = "YOUR_ACCESS_KEY" secret_key = "YOUR_SECRET_KEY" region = "us-west-2" }
В блоке provider
мы определяем поставщика AWS и передаем свои учетные данные для доступа и регион AWS, который мы хотим использовать. В переменных access_key
и secret_key
следует заменить YOUR_ACCESS_KEY
и YOUR_SECRET_KEY
ключом доступа и секретным ключом, которые вы создали для своей учетной записи AWS. В переменной region
вы должны заменить us-west-2
регионом, который хотите использовать.
resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "my-ec2-instance" } }
Ресурс aws_instance
— это место, где мы определяем экземпляр EC2, который хотим создать. В переменной ami
мы указываем образ машины Amazon (AMI) для использования. AMI — это предварительно настроенный образ виртуальной машины, который содержит необходимое программное обеспечение для запуска экземпляра EC2. Вы можете выбрать один из множества AMI, предоставляемых AWS, или создать свой собственный AMI.
В переменной instance_type
мы указываем тип экземпляра, который хотим использовать. Тип экземпляра определяет аппаратное обеспечение хост-компьютера, на котором работает экземпляр, а также сетевые ресурсы и ресурсы хранения, доступные экземпляру.
В переменную tags
мы добавляем тег к экземпляру, чтобы его было легче идентифицировать в консоли AWS. Теги — это пары «ключ-значение», которые можно назначать ресурсам в AWS, чтобы упростить организацию ресурсов и управление ими.
Чтобы запустить этот файл Terraform, вы можете выполнить следующие действия:
- Сохраните файл как
example.tf
. - Откройте терминал или командную строку и перейдите в каталог, в котором вы сохранили файл.
- Запустите
terraform init
, чтобы инициализировать Terraform и загрузить все необходимые плагины. - Запустите
terraform plan
, чтобы увидеть, какие изменения Terraform внесет в ваши ресурсы. - Если план выглядит хорошо, запустите
terraform apply
, чтобы создать экземпляр EC2. - Если экземпляр вам больше не нужен, вы можете запустить
terraform destroy
, чтобы удалить его.
terraform init terraform plan terraform apply terraform destroy
Это команды Terraform, которые мы используем для инициализации Terraform, создания плана изменений, которые Terraform внесет в наши ресурсы, применения этих изменений для создания экземпляра EC2 и уничтожения экземпляра, когда мы закончим с ним.
Команда terraform init
инициализирует Terraform и загружает все необходимые плагины. Команда terraform plan
показывает нам, какие изменения Terraform внесет в наши ресурсы, фактически не внося никаких изменений. Команда terraform apply
применяет изменения и создает экземпляр EC2. Команда terraform destroy
уничтожает экземпляр, когда мы с ним закончим.
Вот и все! Теперь вы знаете, как создать файл Terraform для инициализации экземпляра EC2 на AWS. Не забывайте хранить свои учетные данные для доступа в безопасном месте и никогда не передавайте их никому.
Примечание. В рабочей среде настоятельно рекомендуется использовать AWS Secret Manager или Hashicorp Vault для хранения и извлечения секретов, включая ключи доступа и секретные ключи. Это обеспечивает безопасный и централизованный способ управления секретами.