Nowość – samoobsługowe udostępnianie konfiguracji Open-Source Terraform z katalogiem usług AWS

4 kwietnia 2023

Dzięki Katalogowi usług AWS możesz tworzyć, kierować i zarządzać katalogiem infrastruktury jako szablonami kodu (IaC), które są zatwierdzone do użytku w AWS.

Te szablony IaC mogą obejmować wszystko, od obrazów maszyn wirtualnych, serwerów, oprogramowania i baz danych po kompletne wielowarstwowe architektury aplikacji. Możesz kontrolować, które szablony i wersje IaC są dostępne, co jest konfigurowane przez każdą wersję i kto może uzyskiwać dostęp do każdego szablonu na podstawie osoby, grupy, działu lub centrum kosztów. Użytkownicy końcowi, tacy jak inżynierowie, administratorzy baz danych i analitycy danych, mogą następnie szybko odkrywać i samoobsługowo udostępniać zatwierdzone zasoby AWS, których potrzebują do wykonywania codziennych zadań.

Podczas korzystania z Katalogu usług pierwszym krokiem jest utworzenie produktów w oparciu o szablony IaC. Następnie możesz zebrać produkty wraz z informacjami o konfiguracji w portfolio.

Od dzisiaj możesz definiować produkty Service Catalog i ich zasoby za pomocą AWS CloudFormation lub Hashicorp Terraform i wybrać narzędzie, które lepiej pasuje do Twoich procesów i wiedzy. Możesz teraz zintegrować istniejące konfiguracje Terraform z katalogiem usług, aby stały się one częścią centralnie zatwierdzonego portfela produktów i udostępnić je kontom AWS używanym przez użytkowników końcowych. W ten sposób można zapobiegać niespójnościom i ograniczać ryzyko niezgodności.

Gdy zasoby są wdrażane przez wykaz usług, podczas aprowizacji można zachować dostęp z najniższymi uprawnieniami i zarządzać tagowaniem wdrożonych zasobów. Użytkownicy końcowi Katalogu usług wybierają to, czego potrzebują z listy produktów i wersji, do których mają dostęp. Następnie mogą udostępnić produkty w ramach jednej akcji, niezależnie od technologii (CloudFormation lub Terraform) użytej do wdrożenia.

Model hub-and-spoke katalogu usług, który umożliwia organizacjom zarządzanie na dużą skalę, można teraz rozszerzyć o konfiguracje Terraform. Dzięki modelowi hub and spoke katalogu usług można centralnie zarządzać wdrożeniami przy użyciu relacji zarządzanie/konto użytkownika:

  • Jedno konto zarządzania – używane do tworzenia produktów z katalogu usług, organizowania ich w portfoliach i udostępniania kontom użytkowników
  • Wiele kont użytkowników (do tysięcy) – Konto użytkownika to dowolne konto AWS, na którym użytkownicy końcowi Katalogu usług udostępniają zasoby.

Pora sprawdzić, jak to wygląda w praktyce.

Tworzenie produktu z katalogu usług AWS za pomocą Terraform

Aby rozpocząć, zaintaluj silnik referencyjny Terraform (dostarczany przez AWS w serwisie GitHub), który konfiguruje kod i infrastrukturę wymaganą do działania silnika open source Terraform z katalogiem usług AWS. Musisz to zrobić tylko raz, na koncie zarządzania dla Katalogu usług, a konfiguracja zajmuje tylko kilka minut. Skorzystaj ze skryptu automatycznej instalacji:

./deploy-tre.sh -r us-east-1

Aby uprościć ten post, utwórz produkt wdrażający pojedynczą instancję EC2 przy użyciu procesorów AWS Graviton i systemu operacyjnego Amazon Linux 2023. Oto zawartość Twojego pliku main.tf:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region  = "us-east-1"
}

resource "aws_instance" "app_server" {
  ami           = "ami-00c39f71452c08778"
  instance_type = "t4g.large"

  tags = {
    Name = "GravitonServerWithAmazonLinux2023"
  }
}

Zaloguj się do konsoli zarządzania AWS na koncie zarządzania dla katalogu usług. W konsoli Katalogu usług wybierz Lista produktów w sekcji Administracja okienka nawigacji. Tam wybierz Utwórz produkt.

W Szczegółach produktu wybierz Terraform open source jako Typ produktu. Podaj nazwę i opis produktu oraz nazwisko właściciela.

Creating an AWS Service Catalog Product Using Terraform

W szczegółach wersji wybierz Prześlij plik szablonu (używając archiwum tar.gz). Opcjonalnie możesz określić szablon za pomocą adresu URL S3 lub zewnętrznego repozytorium kodu (na GitHub, GitHub Enterprise Server lub Bitbucket) za pomocą dostawcy AWS CodeStar.

Creating an AWS Service Catalog Product Using Terraform

Wprowadź szczegóły wsparcia i niestandardowe tagi. Pamiętaj, że znaczniki mogą służyć do kategoryzowania zasobów, a także do sprawdzania uprawnień do tworzenia zasobu. Następnie zakończ tworzenie produktu.

Dodawanie AWS Service Catalog Product do portfolio używając Terraform

Teraz, gdy produkt Terraform jest gotowy, dodaj go do swojego portfolio. Portfolio może obejmować zarówno produkty Terraform, jak i CloudFormation. Wybierz Portfolio z sekcji Administrator w okienku nawigacji. Tam wyszukaj swoje portfolio według nazwy i otwórz je. Wybierz Dodaj produkt do portfolio. Wyszukaj produkt Terraform według nazwy i wybierz go.

Adding an AWS Service Catalog Product Using Terraform to a Portfolio

Produkty Terraform wymagają ograniczenia uruchamiania. Ograniczenie uruchamiania określa nazwę roli AWS Identity and Access Management (IAM), która jest używana do wdrażania produktu. Musisz osobno upewnić się, że ta rola jest utworzona na każdym koncie, któremu udostępniany jest produkt.

Rola uruchamiania jest przejmowana przez mechanizm open source Terraform na koncie zarządzania, gdy użytkownik końcowy uruchamia, aktualizuje lub zakańcza działanie produktu. Rola uruchamiania zawiera również uprawnienia do opisywania, tworzenia i aktualizowania grupy zasobów dla udostępnianego produktu oraz oznaczania zasobów produktu. W ten sposób Katalog usług zapewnia aktualność grupy zasobów i oznacza zasoby powiązane z produktem.

Rola uruchamiania umożliwia użytkownikom końcowym dostęp z najniższymi uprawnieniami. Dzięki tej funkcji użytkownicy końcowi nie potrzebują uprawnień do bezpośredniego udostępniania podstawowych zasobów produktu, ponieważ silnik typu open source Terraform przejmuje rolę uruchamiania w celu udostępniania tych zasobów, takich jak zatwierdzona konfiguracja instancji Amazon Elastic Compute Cloud (Amazon EC2).

W sekcji Ograniczenie uruchamiania wybierz Wprowadź nazwę roli, aby użyć roli utworzonej wcześniej dla tego produktu:

  • Relacja zaufania roli określa podmioty, które mogą przyjąć rolę. W przypadku tej roli relacja zaufania obejmuje katalog usług i konto zarządzania zawierające silnik referencyjny Terraform.
  • Jeśli chodzi o uprawnienia, rola umożliwia udostępnianie, aktualizowanie i kończenie zasobów wymaganych przez Twój produkt oraz zarządzanie grupami zasobów i tagami tych zasobów.

Adding an AWS Service Catalog Product Using Terraform to a Portfolio

Zakończ dodanie produktu do swojego portfolio. Teraz produkt jest dostępny dla użytkowników końcowych, którzy mają dostęp do tego portfolio.

Uruchamianie AWS Service Catalog Product używając Terraform

Użytkownicy końcowi widzą listę produktów i wersji, do których mają dostęp, i mogą je wdrożyć w jednej akcji. Jeśli korzystasz już z Katalogu usług, doświadczenie jest takie samo jak w przypadku produktów CloudFormation.

Zaloguj się do konsoli AWS na koncie użytkownika Katalogu usług. Portfolio, którego używałem wcześniej, zostało udostępnione przez konto zarządzania temu kontu użytkownika. W konsoli Katalog usług wybierz Produkty z grupy Udostępnianie w okienku nawigacji. Wyszukaj produkt według nazwy i wybierz Uruchom produkt.

Launching an AWS Service Catalog Product Using Terraform

Pozwól Katalogowi usług na wygenerowanie unikatowej nazwy dla udostępnionego produktu i wybranie wersji produktu do wdrożenia. Następnie uruchom produkt.

Launching an AWS Service Catalog Product Using Terraform

Po kilku minutach produkt został wdrożony i jest dostępny. Wdrożenie było zarządzane przez Terraform Reference Engine.

Launching an AWS Service Catalog Product Using Terraform

W zakładce Powiązane tagi możesz zauważyć, że Katalog usług automatycznie dodał informacje o portfolio i produkcie.

Launching an AWS Service Catalog Product Using Terraform

Na karcie Zasoby widoczne są zasoby utworzone przez udostępniony produkt. Zgodnie z oczekiwaniami jest to instancja EC2 i możesz skorzystać z łącza, aby otworzyć konsolę Amazon EC2 i uzyskać więcej informacji.

Launching an AWS Service Catalog Product Using Terraform

Użytkownicy końcowi, tacy jak inżynierowie, administratorzy baz danych i analitycy danych, mogą nadal korzystać z usługi Service Catalog i uruchamiać potrzebne produkty bez konieczności zastanawiania się, czy są one obsługiwane za pomocą Terraform czy CloudFormation.

Dostępność i ceny

Katalogu usług AWS dla konfiguracji Open Source Terraform jest obecnie dostępna we wszystkich regionach AWS, w których jest oferowana. Nie zaszły żadne zmiany w cenach podczas korzystania z Terraform. Dzięki Katalogowi usług płacisz za wywołania interfejsu API, które wykonujesz w usłudze i możesz zacząć od poziomu bezpłatnego. Płacisz również za zasoby używane i tworzone przez Terraform Reference Engine. Aby uzyskać więcej informacji, zobacz Cennik katalogu usług.

źródło: AWS




Case Studies
Referencje

Jesteśmy ogromnie zadowoleni ze współpracy z firmą Hostersi. Ich specjaliści doradzili nam rozwiązanie, które dało nam stabilną, skalowalną infrastrukturę, która umożliwia obsłużenie ciągle rosnącego ruchu związanego z COVID-19

Jakub Sperczyński
Prezes Zarządu EduNect
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.