Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



21.02.2019

Wdrażanie projektów AI

Infrastruktura OVH
21.02.2019

Certyfikacja kluczy

HEUTHES-CAK
21.02.2019

Kopie zapasowe

Veeam Availability for AWS
21.02.2019

Dysk SSD Samsung 970 EVO Plus

Dysk SSD Samsung 970 EVO Plus
21.02.2019

Szyfrowane USB

Kingston IronKey D300 Serialized
21.02.2019

Bezpieczeństwo sieci

Check Point Maestro i seria 6000
21.02.2019

Ochrona danych

Commvault IntelliSnap i ScaleProtect
21.02.2019

Ułatwienie telekonferencji

Plantronics Calisto 3200 i 5200
21.02.2019

Transformacja centrów danych

Fujitsu PRIMEFLEX for VMware vSAN

Automatyzacja tworzenia infrastruktury w AWS

Data publikacji: 20-12-2018 Autor: Grzegorz Adamowicz

Największym błędem popełnianym przez organizacje migrujące do chmur publicznych jest używanie tych serwisów jak zwykłego centrum danych, co skutkuje podwyższonymi kosztami obsługi i awariami. Amazon Web Services, jako pierwsza i największa chmura publiczna, zachęca nas do uruchamiania i konfigurowania serwerów ręcznie – przy użyciu ich konsoli WWW. To również nie pomaga uświadomić użytkownikom, w jaki sposób najefektywniej zarządzać swoją wirtualną infrastrukturą w chmurze.

 

Administratorzy systemów, przyzwyczajeni do wykonywania wielu operacji manualnie, próbują wprowadzać dokładnie te same procedury w chmurze. To z kolei powoduje spowolnienie pracy, którą przecież użycie chmury miało usprawnić. Ale skoro nie powinniśmy tworzyć serwerów przez konsolę WWW ani wykonywać prac serwisowych na maszynach manualnie, to jak możemy zapewnić sobie ciągłość działania z tymi restrykcjami?

> NARZĘDZIA AWS

W AWS istnieje serwis CloudFormation służący właśnie do automatyzowania tworzenia infrastruktury, zarządzania zmianami, udzielaniem dostępów i innymi zadaniami, które również da się wykonać ręcznie. Jednak dzięki poprawnie napisanym manifestom w CloudFormation cała infrastruktura może utworzyć się automatycznie, a proces jest powtarzalny. Dzięki temu będziemy w stanie odtwarzać dokładnie taką samą konfigurację na innym koncie lub w innej strefie w obrębie AWS.

To samo zadanie spełnia Terraform firmy HashiCorp. Dostajemy w nim możliwość zarządzania również innymi serwisami (IaaS, PaaS i SaaS) czy chmurami publicznymi Google Cloud Platform lub Azure.

Fundament działania narzędzia Terraform różni się od CloudFormation tym, że ten pierwszy ma plik stanu, w którym znajduje się informacja o zapisanej konfiguracji naszej chmury podczas ostatniego uruchomienia. Jeśli ktoś dokona manualnych zmian konfiguracji, Terraform natychmiast je zidentyfikuje i spróbuje zmienić na te, które wymuszamy w naszym kodzie. Porównywanie stanu aktualnego chmury z plikiem stanu powoduje również podwyższoną liczbę zapytań API, co z czasem może skutkować długim wykonywaniem się kodu.

Kod CloudFormation w formie JSON oraz YAML jest bardzo obszerny i może zawierać wiele linii. Kod Terraforma jest czytelniejszy i będzie miał taki sam efekt:

resource "aws_security_group" "allow_ssh" {
name = "allow_ssh"
description = "Allow inbound SSH and all outbound traffic"
vpc_id = "ID_VPC"
ingress {
from_port = 22  to_port = 22  protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_instance" "ssh_host" {
ami = "ami-0bdf93799014acdc4"
instance_type = "t2.micro"
key_name = "ssh_key"
subnet_id = "SUBNET_ID"
vpc_security_group_ids = [
"${aws_security_group.allow_ssh.id}", ] }

Inne narzędzia, których da się użyć do zarządzania infrastrukturą, możemy wybrać z bibliotek języków programowania, np. libcloud (Python) czy lono (Ruby). Popularne narzędzia do zarządzania konfiguracją również doczekały się bibliotek obsługujących chmurę publiczną, zatem możemy też użyć Ansible, Puppet lub Chef, w zależności od tego, które rozwiązanie bardziej nam odpowiada.

W dalszej części skupimy się jednak na omówieniu tylko oprogramowania firmy HashiCorp – Terraform.

> JAK ZACZĄĆ?

Zamiast starać się zrozumieć całość wszechstronnych możliwości Terraforma skupmy się na jego małym wycinku. Używając HCL, czyli języka opisu infrastruktury, utworzymy w AWS prostą architekturę złożoną z jednej maszyny wirtualnej z publicznym IP i dostępem przez SSH.

 

[...]

 

Doświadczony inżynier systemów. Specjalizuje się w automatyzacji procesów i monitoringu aplikacji rozproszonych. Propagator ruchu open source. Organizator wydarzeń związanych z IT. Freelancer. W wolnych chwilach twórca fantastyki i fantastyki naukowej. 

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"