# Репозиторий с выполненным заданием 1

## Задание 2.1 - Создание модуля

Выделим создание сервиса в отдельный модуль, который будем вызывать из корневого модуля. Это позволит создавать сервисы проще.

- Рядом с директорией проекта создайте директорию `module_service`. Переместите в нее файлы service.tf и outputs.tf — они касаются только сервиса

- Из файла locals.tf переместите переменные, касающиеся сервиса, в такой же файл в директории модуля. Не забудьте обернуть их в блок `locals{ }`.

- Из файла variables.tf переместите объявление переменных `service_*` в такой же файл в директории модуля. Переменную `aws_region` скопируйте — она должна быть и там, и там

- Создайте для модуля переменные `ecs_cluster_id`, `sg_lb`, `sg_outbound`, `vpc_id` типа `string` и переменную `subnets_ids` типа `list(string)`

- Теперь необходимо в файле service.tf заменить обращение к ресурсам корневого модуля на созданные переменные. Список ресурсов для замены соответственно: `aws_ecs_cluster.main.id`,`aws_security_group.lb.id`, `aws_security_group.outbound.id`, `aws_vpc.main.id`, `aws_subnet.public.*.id`.



## Задание 2.2 - Использование модуля

Теперь, в корневом модуле, можно создать новый файл services.tf, в котором объявить сервис из модуля:

```hcl
module "service" {
  source = "../module_service"
  aws_region = var.aws_region
  ...
}
```

Передайте в объявление переменные, которые были созданы в предыдущем модуле. Значения для них возьмите те, которые были использованы изначально (ведь в этом модуле эти ресурсы есть).

Помимо них передайте переменные `service_name = "nginx"` и `service_image = "nginx:1.19"`

Также сделайте новый файл outputs.tf и сделайте в нем output с выходным значением из модуля сервиса — service_dns_name.
