Поиск по сайту:

Создание корзины S3 на AWS с помощью Terraform


На этой странице

  1. Предварительные требования
  2. Что мы будем делать
  3. Запись файлов конфигурации Terraform для корзины S3.
  4. Создайте корзину S3 с помощью файлов конфигурации Terraform.

В этой статье я покажу вам, как использовать Terraform для создания корзины S3 на AWS. Прежде чем продолжить, я предполагаю, что вы знакомы с корзиной S3, если нет, то вы можете щелкнуть здесь, чтобы просмотреть шаги по созданию корзины S3 из консоли AWS.

Предпосылки

  1. Основное понимание Terraform.
  2. Terraform установлен в вашей системе.
  3. Аккаунт AWS (создайте, если у вас его нет).
  4. access_key и secret_key пользователя AWS IAM. (Нажмите здесь, чтобы узнать, как создать пользователя IAM с ключом доступа и секретным ключом в AWS, )

Что мы будем делать

  1. Запись файлов конфигурации Terraform для корзины S3.
  2. Создайте сегмент S3, используя файлы конфигурации Terraform.
  3. Удалите созданный сегмент S3 с помощью Terraform.

Запись файлов конфигурации Terraform для корзины S3

Создайте специальный каталог, в котором вы сможете создавать файлы конфигурации terraform.

Используйте следующую команду, чтобы создать каталог и изменить на него текущий рабочий каталог.

mkdir terraform
cd terraform/

Я использую \vim\ в качестве редактора для записи в файлы, вы можете использовать редактор по вашему выбору и скопировать и вставить следующие конфигурации для создания переменных.tf, terraform.tfvars и main.tf

Создайте main.tf, который отвечает за создание корзины S3 на AWS. Этот файл main.tf будет считывать значения переменных из переменных.tf и terraform.tfvars.

vim main.tf
provider "aws" {
      region     = "${var.region}"
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
}

resource "aws_s3_bucket" "this" {
  bucket                               = "${var.bucket_name}"
  force_destroy                        = "${var.force_destroy}"
  region                               = "${var.region}"
  tags                                 = "${merge(var.tags, map("Name", format("%s", var.bucket_name)))}"
}

Здесь

  • bucket:  название сегмента. Если его не указать, Terraform присвоит случайное уникальное имя.
  • force_destroy: логическое значение, указывающее, что все объекты должны быть удалены из корзины, чтобы корзина могла быть уничтожена без ошибок.
  • region – регион AWS, в котором должен находиться этот сегмент.
  • теги – карта тегов, которые нужно назначить корзине.

Измените значение \region\, если вы хотите создать сегмент в другом регионе, отличном от указанного.

Создайте файл variable.tf, содержащий объявление и определение переменных.

vim variables.tf
variable "access_key" {
     description = "Access key to AWS console"
}
variable "secret_key" {
     description = "Secret key to AWS console"
}
variable "region" {
     description = "Region of AWS VPC"
}

variable "bucket_name" {
  description = "(Required) Creates a unique bucket name"
  type        = "string"
  default     = "test-bucket-rahul-delete"
}

variable "force_destroy" {
  description = "(Optional) A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error"
  type        = "string"
  default     = true
}

variable "tags" {
  description = "(Optional) A mapping of tags to assign to the bucket"
  type        = "map"
  default     = {"env": "test"}
}

После того, как вы создали variable.tf, не забудьте изменить значения, присвоенные переменной. Вы должны изменить выделенные значения, поскольку они относятся к моей среде. Вы можете оставить остальные переменные как есть.

Создайте terraform.tfvars, который содержит определение переменных access_key и secret_key, определенных в вышеуказанном файле вместе с переменной \region\.

Следующие ключи необходимо изменить на ключи вашего пользователя IAM.

vim terraform.tfvars
region = "eu-west-3"
access_key = "AKIAQ6GAIA5XFLXF6HOV"
secret_key = "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"

Теперь у вас должно быть 3 файла, а именно, variable.tf, terraform.tfvars и main.tf.

Создайте корзину S3, используя файлы конфигурации Terraform.

Прежде чем выполнять следующие команды, убедитесь, что вы настроили действительный ключ доступа и секретный ключ.

Первая используемая команда — terraform init. Эта команда загружает и устанавливает плагины для провайдеров, используемых в конфигурации. В нашем случае это AWS.

 terraform init

Вторая используемая команда — terraform plan. Эта команда используется для просмотра изменений, которые произойдут в инфраструктуре.

 terraform plan

Команда terraform apply создаст ресурсы на AWS, упомянутые в файле main.tf. Вам будет предложено внести свой вклад для создания ресурсов.

terraform apply

Когда вы выполните указанную выше команду, после успешного завершения вы увидите, что 1 новый ресурс был добавлен, а 0 был уничтожен.

Вы можете перейти в консоль AWS S3, чтобы проверить, создан ли сегмент S3 Bucket.

Удалить корзину S3 с помощью Terraform

Если вам больше не нужен ресурс, который вы создали, используя конфигурацию, указанную в файле main.tf, вы можете использовать команду \terraform destroy\, чтобы удалить все эти ресурсы. Здесь ведро S3 будет удалено после выполнения следующей команды.

terraform destroy

На скриншоте выше видно, что ресурс уничтожен.

Заключение

В этой статье мы рассмотрели шаги по созданию корзины S3 с помощью Terraform. Мы также увидели, как созданный нами Bucket можно удалить всего одной командой.