0Pricing
Cloud & IT Cert Prep · Lekcja

Typ uruchomienia EC2 a Fargate

Porównać samodzielne zarządzanie instancjami kontenerów EC2 z użyciem Fargate do bezserwerowego uruchamiania kontenerów oraz poznać związane z tym kompromisy kosztowe.

Typ uruchomienia EC2 a Fargate to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Dwa sposoby uruchamiania zadań ECS

ECS oferuje dwa typy uruchamiania, które określają, gdzie działają kontenery: typ uruchamiania EC2 uruchamia kontenery na instancjach EC2, które Państwo udostępniają i którymi zarządzają w ramach klastra; typ uruchamiania Fargate to bezserwerowy mechanizm obliczeniowy, w którym AWS w całości zarządza serwerami bazowymi. Definicja zadania i konfiguracja usługi są w obu przypadkach niemal identyczne — kluczowa różnica dotyczy odpowiedzialności za zarządzanie infrastrukturą i modelu kosztów.

Typ uruchamiania EC2: pełna kontrola

W przypadku typu uruchamiania EC2 rejestrują Państwo instancje EC2 jako instancje kontenerowe w klastrze za pomocą ECS Container Agent (zainstalowanego w obrazach AMI zoptymalizowanych pod kątem ECS). Mogą Państwo wybrać typy instancji, kontrolować ustawienia na poziomie systemu operacyjnego, stosować niestandardowe zabezpieczenia bazowe i używać instancji Spot w celu obniżenia kosztów. ECS umieszcza zadania na zarejestrowanych instancjach zgodnie ze strategiami rozmieszczania typu bin-packing lub spread. Są Państwo odpowiedzialni za instalowanie poprawek, skalowanie i utrzymywanie bazowej floty instancji EC2.

# Launch an ECS-optimised EC2 instance that joins the cluster
# User data for ECS container agent
#!/bin/bash
echo ECS_CLUSTER=MyAppCluster >> /etc/ecs/ecs.config
echo ECS_ENABLE_CONTAINER_METADATA=true >> /etc/ecs/ecs.config

Fargate: kontenery bezserwerowe

W przypadku Fargate określa Pan/Pani ilość procesora i pamięci dla każdego zadania, a AWS niewidocznie dla użytkownika udostępnia bazowe zasoby obliczeniowe. Nie ma instancji EC2, które trzeba rejestrować, aktualizować ani skalować — AWS zarządza tym wszystkim. Zadania otrzymują własne izolowane jądro (za pośrednictwem mikroVM Firecracker), co zapewnia silniejszą izolację bezpieczeństwa niż instancje kontenerowe EC2, na których wiele zadań współdzieli ten sam host. Fargate wymaga trybu sieciowego awsvpc, co oznacza, że każde zadanie otrzymuje własny interfejs ENI i adres IP w VPC.

aws ecs run-task \
  --cluster 'MyAppCluster' \
  --task-definition 'myapp-task:5' \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-aaa111"],
      "securityGroups": ["sg-xyz"],
      "assignPublicIp": "ENABLED"
    }
  }'

Porównanie modeli kosztów

Modele kosztów różnią się zasadniczo. Typ uruchamiania EC2: płaci Pan/Pani za bazowe instancje EC2 (niezależnie od tego, czy zadania są uruchomione), ale można używać instancji zarezerwowanych lub Savings Plans, aby uzyskać rabat, a także instancji Spot, zapewniających oszczędności do 90% w przypadku obciążeń, które można przerwać. Fargate: płaci Pan/Pani wyłącznie za zużyty procesor wirtualny i pamięć dla każdego zadania, naliczane co sekundę — bez kosztów bezczynności między zadaniami. W przypadku obciążeń o zmiennym natężeniu lub wsadowych Fargate często jest tańszy; przy stale wysokim wykorzystaniu EC2 z instancjami zarezerwowanymi może być tańsze.

Fargate Spot — oszczędność kosztów

Fargate Spot udostępnia zasoby obliczeniowe Fargate po znacznie obniżonych cenach (do 70% taniej) w zamian za możliwość przerwania działania, gdy AWS będzie potrzebować tych zasobów. Fargate Spot idealnie nadaje się do przetwarzania wsadowego, potoków CI/CD oraz środowisk programistycznych i testowych. Należy skonfigurować strategię dostawcy pojemności, aby połączyć Fargate (na żądanie) i Fargate Spot: użyć base=1 dla Fargate, aby zagwarantować co najmniej jedno zadanie, oraz wartości weight, aby podzielić pozostałą pojemność między oba rozwiązania.

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'BatchService' \
  --task-definition 'batch-task:1' \
  --desired-count 10 \
  --capacity-provider-strategy \
    'capacityProvider=FARGATE,weight=1,base=1' \
    'capacityProvider=FARGATE_SPOT,weight=4'

Kiedy wybrać typ uruchamiania EC2

Typ uruchamiania EC2 należy wybrać, gdy potrzebne są: instancje GPU (Fargate ma ograniczoną obsługę GPU), określone typy instancji niedostępne w Fargate, niestandardowa konfiguracja systemu operacyjnego (dostrajanie jądra, niestandardowe sterowniki), wydajność sieci wymagająca grup rozmieszczenia lub rozszerzonej obsługi sieci, kontenery Windows (EC2 obsługuje kontenery Windows Server; Fargate obsługuje system Windows, ale z ograniczeniami), a także wtedy, gdy środowisko działa stale przy wysokim wykorzystaniu i instancje zarezerwowane EC2 zapewniają istotną przewagę kosztową nad rozliczaniem Fargate za każdą sekundę.

Kiedy wybrać Fargate

Fargate należy wybrać, gdy chce Pan/Pani: wyeliminować narzut związany z zarządzaniem EC2 (bez aktualizowania systemu operacyjnego i skalowania klastra), płacić tylko za rzeczywiste zużycie w rozliczeniu sekundowym, uruchamiać obciążenia o zmiennym natężeniu lub wsadowe, które nie uzasadniają utrzymywania bezczynnej pojemności EC2, uzyskać silniejszą izolację zadań dzięki mikroVM Firecracker lub przyspieszyć programowanie, koncentrując się wyłącznie na kodzie aplikacji. Fargate jest domyślnie zalecanym rozwiązaniem dla nowych obciążeń ECS na egzaminie SAA-C03, chyba że wskazano konkretne wymaganie dotyczące EC2.

Dostawcy pojemności ECS

Dostawcy pojemności abstrahują warstwę obliczeniową od usług ECS. W przypadku EC2 dostawca pojemności jest powiązany z grupą Auto Scaling — ECS automatycznie skaluje grupę ASG, gdy nie można umieścić zadań z powodu niewystarczającej pojemności. W przypadku Fargate wbudowanymi dostawcami pojemności są FARGATE i FARGATE_SPOT. Zdefiniowanie strategii dostawcy pojemności dla usługi umożliwia połączenie zasobów na żądanie i Spot/Fargate Spot, zapewniając szczegółową kontrolę nad kompromisem między kosztami a dostępnością dla każdego obciążenia.

Porównanie narzutu operacyjnego

Narzut operacyjny znacznie różni się w zależności od typu uruchamiania. Typ uruchamiania EC2 wymaga: wyboru i aktualizowania AMI, konfiguracji EC2 Auto Scaling, aktualizowania systemu operacyjnego za pomocą SSM lub niestandardowych skryptów, zarządzania pojemnością instancji kontenerowych oraz wzmacniania zabezpieczeń na poziomie instancji. Fargate eliminuje wszystkie te obowiązki — AWS obsługuje aktualizowanie platformy Fargate, nie ma instancji do zarządzania ani potrzeby planowania pojemności klastra. Fargate zapewnia jednak mniejszą elastyczność w zakresie dostosowywania systemu operacyjnego i dostrajania wydajności sieci.

Dobór procesora i pamięci zadania Fargate

Definicje zadań Fargate muszą określać procesor i pamięć z ustalonego zestawu kombinacji. Dostępne wartości procesora to: 256, 512, 1024, 2048, 4096, 8192, 16384 (w jednostkach vCPU, gdzie 1024 = 1 vCPU). Pamięć musi mieścić się w dozwolonym zakresie dla danej wartości procesora — na przykład 256 jednostek procesora pozwala użyć od 512 do 2048 MB pamięci. Kontenery w ramach zadania współdzielą limit procesora i pamięci tego zadania. Właściwy dobór zasobów jest ważny: Fargate rozlicza dokładnie określoną konfigurację, dlatego nadmiarowe zasoby generują koszty bez rzeczywistej korzyści wydajnościowej, jeśli obciążenie jest ograniczone przez procesor.

# Valid Fargate combinations
# 256 CPU (.25 vCPU): 512, 1024, or 2048 MB
# 512 CPU (.5 vCPU): 1024 to 4096 MB
# 1024 CPU (1 vCPU): 2048 to 8192 MB
# 2048 CPU (2 vCPU): 4096 to 16384 MB
# 4096 CPU (4 vCPU): 8192 to 30720 MB

ECS Exec do debugowania

ECS Exec umożliwia otwarcie interaktywnej sesji powłoki bezpośrednio w działającym kontenerze (zarówno EC2, jak i Fargate), bez używania SSH ani hostów bastionowych. Mechanizm ten korzysta wewnętrznie z AWS Systems Manager Session Manager. Należy włączyć go dla usługi i użyć interfejsu CLI execute-command, aby uruchomić sesję bash. Jest to niezwykle przydatne podczas debugowania problemów produkcyjnych w kontenerach. Rola zadania musi mieć uprawnienie ssmmessages:CreateControlChannel oraz powiązane uprawnienia SSM.

aws ecs execute-command \
  --cluster 'MyAppCluster' \
  --task 'abc123def456' \
  --container 'myapp' \
  --interactive \
  --command '/bin/bash'

Szybkie sprawdzenie

Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznano: typ uruchamiania EC2, który zapewnia pełną kontrolę nad typami instancji i konfiguracją systemu operacyjnego kosztem zarządzania bazową flotą — jest idealny w przypadku GPU, wyspecjalizowanego sprzętu lub stale wysokiego wykorzystania; Fargate, który eliminuje zarządzanie infrastrukturą, rozlicza zadania za każdą sekundę i zapewnia silną izolację dzięki Firecracker — jest idealny dla większości obciążeń internetowych i API oraz zadań wsadowych; a także Fargate Spot, który obniża koszty nawet o 70% w przypadku obciążeń odpornych na przerwania. Następnie omówimy Amazon ECR do przechowywania i pobierania obrazów kontenerów.

Często zadawane pytania

Czy lekcja „Typ uruchomienia EC2 a Fargate” jest bezpłatna?

Tak — pełny tekst „Typ uruchomienia EC2 a Fargate” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Typ uruchomienia EC2 a Fargate”?

Porównać samodzielne zarządzanie instancjami kontenerów EC2 z użyciem Fargate do bezserwerowego uruchamiania kontenerów oraz poznać związane z tym kompromisy kosztowe. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Typ uruchomienia EC2 a Fargate”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Klastry ECS, definicje zadań i usługi
  2. Typ uruchomienia EC2 a Fargate
  3. ECR: przechowywanie i pobieranie obrazów kontenerów
  4. Automatyczne skalowanie usług ECS i równoważenie obciążenia
← Powrót do Cloud & IT Cert Prep