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


20.12.2018

Większa moc

QNAP Mustang-200
20.12.2018

Nowa era Wi-Fi

NETGEAR Nighthawk AX8
20.12.2018

Szybkie skanowanie

Brother ADS-1700W i ADS-1200
06.12.2018

Niższe moce

UPS Eaton 9SX
03.12.2018

Monitory dla MŚP

AOC E1
29.11.2018

Wykrycie szkodliwego...

Sophos Intercept X Advanced
27.11.2018

Automatyzacja zabezpieczeń

Red Hat Ansible Automation
23.11.2018

Nieograniczona skalowalność

SUSE Enterprise Storage 5.5
20.11.2018

Dwa procesory Threadripper

AMD Ryzen Threadripper 2970WX i 2920X

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. 

Artykuł pochodzi z miesięcznika: IT Professional

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

.

Transmisje online zapewnia: StreamOnline

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