Pierwsze kroki z Amazon ECS Anywhere – od teraz ogólnie dostępnym

30 czerwca 2021

Od kiedy Amazon Elastic Container Service (Amazon ECS) został wypuszczony w 2014 roku, AWS udostępnił inne opcje uruchamiania zadań Amazon ECS poza regionem, takie jak AWS Wavelenght, oferty dla mobilnych urządzeń brzegowych lub AWS Outposts, usługi, która obejmuje klientów środowisk korzystających ze sprzętu będącego własnością oraz w pełni zarządzanego przez AWS.

Jednakże niektórzy z klientów posiadają aplikacje, które muszą działać lokalnie ze względu na wymagania prawne, opóźnienia i miejsca przechowywania danych lub chęć wykorzystania istniejących inwestycji w infrastrukturę. W tych przypadkach klienci muszą zainstalować, obsługiwać i zarządzać oddzielnym oprogramowaniem do aranżacji kontenerów, a także muszą używać różnych narzędzi zarówno w swoich środowiskach AWS, jak i lokalnych. Klienci często pytali twórców o sposób zarządzania ich lokalnymi kontenerami bez dodatkowej złożoności i ponoszenia kosztów.

Podążając za zeszłorocznym ogłoszeniem, twórcy z radością ogłaszają powszechną dostępność Amazon ECS Anywhere, nowej funkcji w Amazon ECS, która umożliwia klientom łatwe uruchamianie i zarządzanie aplikacjami opartymi na kontenerach w sposób lokalny, w tym maszynami wirtualnymi (VM), serwerami typu bare metal oraz inną infrastrukturą zarządzaną przez klienta.

Wraz z ECS Anywhere możesz uruchamiać i zarządzać kontenerami w dowolnej infrastrukturze zarządzanej przez klienta, przy użyciu tej samej, w pełni zarządzanej i wysoce skalowalnej usługi aranżacji kontenerów opartej na chmurze, której obecnie używasz w AWS. Od tej pory nie potrzebujesz już przygotowywać, uruchamiać, aktualizować ani utrzymywać własnych koordynatorów klientów lokalnie, co ułatwia zarządzanie środowiskiem hybrydowym i wykorzystywanie chmury dla infrastruktury poprzez instalowanie prostych agentów.

ECS Anywhere zapewnia spójne narzędzia i interfejsy API dla wszystkich aplikacji opartych na kontenerach i to samo środowisko Amazon ECS do zarządzania klastrami, planowania obciążeń i monitorowania obu zarówno w chmurze, jak i w infrastrukturze zarządzanej przez klienta. Od teraz możesz korzystać z benefitów zmniejszenia kosztów i złożoności, uruchamiając obciążenia kontenerów, takie jak przetwarzanie danych w lokalizacjach brzegowych na własnym sprzęcie, zachowując zmniejszone opóźnienia oraz w chmurze przy użyciu jednego, spójnego koordynatora kontenerów.

Amazon ECS Anywhere – jak zacząć

Aby rozpocząć pracę z ECS Anywhere, zaloguj się na swoich lokalnych serwerach lub VM (określanych także jako zewnętrzne instancje) w klastrze ECS. AWS Systems Manager Agent, Amazon ECS container agent i Docker muszą zostać zainstalowane na zewnętrznych instancjach. Twoje zewnętrzne instancje wymagają roli IAM, która pozwala im na komunikowanie się z AWS API. Aby uzyskać więcej informacji, zobacz Required IAM permissions w ECS Developer Guide.

Aby utworzyć klaster dla ECS Anywhere, na stronie Utwórz Klaster w konsoli ECS wybierz szablon Networking Only. Ta opcja służy do użycia z AWS Fargate lub pojemnością instancji zewnętrznej. Twórcy zalecają korzystanie z regionu AWS, który jest geograficznie najbliższy serwerom lokalnym, które możesz zarejestrować.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Tworzy to pusty klaster do rejestrowania zewnętrznych instancji. Na karcie Instancje ECS wybierz opcję Zarejestruj instancje zewnętrzne, aby uzyskać kody aktywacyjne i skrypt instalacyjny.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Krok 1: Zewnętrzne instancje aktywacja szczegóły strony – w miejscu Okres aktywacji klucza wprowadź liczbę dni, w ciągu których klucz aktywacyjny powinien pozostać aktywny. Klucz aktywacyjny może zostać użyty nawet do 100 aktywacji. W polu Liczba instancji wprowadź liczbę zewnętrznych instancji, które chcesz zarejestrować w klastrze. W polu Rola instancji wpisz rolę uprawnień, aby powiązać ją z instancjami zewnętrznymi.

Wybierz Następny krok, aby uzyskać polecenie rejestracji.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Krok 2: Zarejestruj instancje zewnętrzne i skopiuj polecenie rejestracji. Uruchom to polecenie na zewnętrznych instancjach, które chcesz zarejestrować w klastrze.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Wklej polecenie rejestracji na lokalnych serwerach lub VM-ach. Każda instancja zewnętrzna jest następnie rejestrowana jako instancja zarządzana AWS Systems Manager, która jest następnie rejestrowana w klastrach Amazon ECS.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Obie architektury CPU x86_64 i ARM64 są obsługiwane. Poniżej znajduje się lista obsługiwanych systemów operacyjnych:

  • CentOS 7, CentOS 8;
  • RHEL 7;
  • Fedora 32, Fedora 33;
  • openSUSE Tumbleweed;
  • Ubuntu 18, Ubuntu 20;
  • Debian 9, Debian 10;
  • SUSE Enterprise Server 15.

Gdy agent ECS rozpocznie i zakończy rejestrację, Twoja instancja zewnętrzna pojawi się na karcie Instancje ECS.

Możesz także dodać zewnętrzne instancje do istniejącego klastra. W takim przypadku można zobaczyć, że zarówno instancje Amazon EC2, jak i zewnętrzne instancje posiadają prefixy mi-*.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Teraz, gdy instancje zewnętrzne są zarejestrowane w Twoim klastrze, jesteś gotowy, aby utworzyć definicję zadania. Amazon ECS udostępnia parameter requiresCompatibilities do sprawdzenia, czy definicja jest zgodna z typem uruchamiania EXTERNAL podczas tworzenia usługi lub uruchamiania samodzielnego zadania. Poniżej znajduje się przykładowa definicja zadania:

JSON

{

           "requiresCompatibilities": [

                     "EXTERNAL"

            ],

            "containerDefinitions": [{

                    "name": "nginx",

                    "image": "public.ecr.aws/nginx/nginx:latest",

                     "memory": 256,

                     "cpu": 256,

                     "essential": true,

                     "portMappings": [{

                               "containerPort": 80,

                               "hostPort": 8080,

                                "protocol": "tcp"

                       }]

            }],

           "networkMode": "bridge",

           "family": "nginx"

}

Możesz utworzyć definicję zadania w konsoli ECS. W miejscu Definicja Zadania wybierz Utwórz nową definicję zadania. W polu typ uruchomienia wybierz ZEWNĘTRZNY, a następnie skonfiguruj definicje zadania i kontenera tak, aby korzystały z instancji zewnętrznych.

W zakładce Zadania wybierz Uruchom nowe zadanie. Na stronie Uruchom Zadanie dla Klaster wybierz klaster, aby uruchomić definicję zadania. W polu Liczba Zadań wprowadź liczbę kopii tego zadania do uruchomienia z typem uruchamiania EXTERNAL.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Lub w zakładce Usługi wybierz Utwórz. Opcja Konfiguracja usługi umożliwia określenie kopii definicji zadania do uruchomienia i utrzymania w klastrze. Aby uruchomić zadanie w zarejestrowanej instancji zewnętrznej jako Typ uruchomienia, wybierz EXTERNAL. Po wybraniu tego typu uruchamiania systemy równoważenia obciążenia, propagacja tagów i integracja wykrywania usług nie są obsługiwane.

Zadania, które uruchamiasz na swoich zewnętrznych instancjach, muszą wykorzystywać tryby sieciowe bridge, host lub none. Tryb sieciowy awsvpc nie jest obsługiwany. Aby uzyskać więcej informacji na temat trybów sieciowych, zobacz artykuł Choosing a network mode w przewodniku Amazon ECS Best Practices Guide.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Teraz możesz uruchamiać swoje zadania i kojarzyć różne typy dostawców pojemności EXTERNAL, FARGATE i EC2 z tą samą usługą ECS i określać, w jaki sposób zadania mają być dzielone między nimi.

Pierwsze_kroki_z_Amazon_ECS_Anywhere

Warto wiedzieć

Poniżej znajduje się kilka informacji, o których warto pamiętać:

Zdolność przyłączeniowa: W sytuacji, gdy łączność sieciowa między agentem ECS działającym na serwerach lokalnych a płaszczyzną sterowania ECS w regionie zostanie utracona, istniejące zadania ECS w dalszym ciągu będą działać normalnie. Jeśli zadania nadal mają łączność z innymi usługami AWS, będą się z nimi komunikować tak długo, jak aktywne będą poświadczenia roli zadania. Jeśli zadanie uruchomione jako część usługi ulegnie awarii albo zostanie samoczynnie zakończone, ECS nie będzie w stanie go zastąpić, dopóki łączność nie zostanie przywrócona.

Monitorowanie: Wraz z ECS Anywhere możesz zdobyć metryki Amazon CloudWatch dla swoich klastrów i usług, używać sterownika CloudWatch Logs (awslogs), aby uzyskać logi swoich kontenerów i uzyskać dostęp do strumienia zdarzeń ECS CloudWatch w celu monitorowania zdarzeń w klastrach.

Tworzenie sieci: Zewnętrzne instancje ECS są zoptymalizowane pod kątem uruchamiania aplikacji, które generują ruch wychodzący lub przetwarzają dane. Jeśli Twoja aplikacja wymaga ruchu przychodzącego, takiego jak usługa sieci Web, będziesz musiał zastosować obejście, aby umieścić te obciążenia za modułem równoważenia obciążenia, dopóki funkcja nie będzie obsługiwana natywnie. Aby uzyskać więcej informacji, zobacz: Networking with ECS Anywhere.

Bezpieczeństwo danych: Aby pomóc klientom w utrzymaniu bezpieczeństwa danych, ECS Anywhere wysyła z powrotem do regionu AWS tylko metadane związane ze stanem zadań lub stanem kontenerów (czy są uruchomione czy nie, liczniki wydajności, itd.) Komunikacja jest uwierzytelniana i szyfrowana podczas przesyłania przez Transport Layer Security (TLS).

Partnerzy ECS Anywhere

ECS Anywhere integruje się z różnymi partnerami ECS Anywhere, aby pomóc klientom w korzystaniu z tej funkcji i zapewnić dla niej dodatkowe opcje. Poniżej znajduje się kilka artykułów blogowych, stworzonych przez partnerów ECS, w celu podzielenia się doświadczeniami i ofertami:

Dostępne już teraz

Amazon ECS Anywhere dostępny jest we wszystkich komercyjnych regionach AWS z wyłączeniem regionów AWS China, w których obsługiwany jest ECS. Wraz z ECS Anywhere nie ma opłat minimalnych ani zobowiązań z góry. Płacisz za godzinę za każde zarządzane zadanie ECS Anywhere. Warstwa bezpłatna ECS Anywhere zawiera 2200 godzin wystąpień miesięcznie przez 6 miesięcy na konto we wszystkich regionach. Aby uzyskać więcej informacji na ten temat, zapoznaj się z cennikiem.

Aby dowiedzieć się więcej, zobacz ECS Anywhere w przewodniku programisty Amazon ECS Developer Guide.

Case Studies
Referencje

Z przyjemnością polecamy firmę Hostersi, z którą mieliśmy przyjemność współpracować przy okazji wdrożenia skalowalnej infrastruktury w Amazon Web Services, opartej o technologię Kubernetes i metodykę DevOps.  Hostersi okazali się niezwykle proaktywnym partnerem, który nie tylko wdrażał wskazane rozwiązania, ale proponował optymalne narzędzia i technologie, które sprawiły, że efekt wdrożenia jest dla nas w pełni satysfakcjonujący. Polecamy!

Grzegorz Lentzy
IT Director LINK Mobility
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.