Jak zarządzać instancjami AWS EC2 za pomocą interfejsu wiersza poleceń AWS
AWS udostępnia wygodny interfejs internetowy o nazwie AWS Management Console. Za pomocą tej konsoli można wykonywać wszystkie niezbędne operacje w chmurze AWS. Jednak wykonywanie wielu identycznych operacji w interfejsie internetowym może być monotonne i czasochłonne. W takim przypadku można skorzystać z AWS CLI, aby zautomatyzować zadania związane z zarządzaniem usługami AWS i wykonywać operacje zbiorcze. Niniejszy wpis na blogu dotyczy instalacji AWS CLI oraz podstaw korzystania z tego narzędzia. Wpis skupia się również na poleceniach AWS CLI dotyczących usługi EC2, zilustrowanych przykładami.
Czym jest AWS CLI
Interfejs wiersza poleceń Amazon Web Services (AWS CLI) to narzędzie typu open source służące do zarządzania środowiskami w chmurze Amazon. Narzędzie to działa poprzez integrację z powłoką wiersza poleceń systemu operacyjnego, na którym zainstalowano AWS CLI. Za pomocą poleceń AWS EC2 można zarządzać instancjami AWS EC2, a także woluminami EBS, zasobnikami S3 i innymi usługami Amazon.
AWS CLI działa w powłoce wiersza poleceń systemu Linux, terminalu macOS, wierszu poleceń systemu Windows (CMD) oraz w PowerShell. Ten interfejs CLI umożliwia tworzenie skryptów i automatyzację zadań.
Istnieją dwie główne wersje AWS CLI:
- AWS CLI wersja 1 to starsza wersja dostępna w celu zapewnienia kompatybilności wstecznej. Ta wersja jest obsługiwana, ale nowe funkcje mogą być niedostępne.
- AWS CLI wersja 2 to najnowsza wersja, która obsługuje wszystkie dostępne funkcje AWS. Zaleca się zainstalowanie najnowszej wersji.
Obie wersje używają tego samego aws polecenia do uruchomienia AWS CLI. Wprowadzono jednak zmiany, które mogą uniemożliwić korzystanie ze skryptów stworzonych dla AWS CLI v1 w AWS CLI v2.
Wymagania
Przyjrzyjmy się teraz wymaganiom, które należy spełnić, aby korzystać z AWS CLI.
Wymagania ogólne
- Konieczne jest posiadanie konta AWS oraz Klucze dostępu do AWS (identyfikatora klucza dostępu AWS i tajnego klucza dostępu AWS).
- Należy zainstalować Python 2 w wersji 2.6.5+ lub Python 3 w wersji 3.3+. AWS CLI v2 zawiera wbudowaną kopię języka Python, więc nie trzeba ręcznie instalować Pythona, aby zainstalować AWS CLI v2.
Linux
- Należy zainstalować narzędzie do rozpakowywania archiwów ZIP
glibc,grofforazless
Windows
- System Windows XP lub nowszy
- Uprawnienia administratora na komputerze z systemem Windows
macOS
- 64-bitowa wersja systemu macOS obsługiwana przez firmę Apple
Instalacja
Aby móc uruchamiać polecenia do zarządzania instancjami AWS EC2 i innymi usługami Amazon, należy zainstalować AWS CLI. Przyjrzyjmy się, jak zainstalować AWS CLI w wersji 2 w różnych systemach operacyjnych.
Instalacja AWS CLI w systemie Linux
Istnieją trzy metody instalacji AWS CLI w systemie Linux:
- Korzystanie z instalatora pakietowego (metoda oficjalna)
- Korzystanie z repozytorium oprogramowania systemu Linux
- Instalacja AWS CLI jako modułu języka Python
Firma Amazon zaleca korzystanie z metody oficjalnej do instalacji AWS CLI. W tym przypadku zawsze otrzymujesz najnowszą wersję oprogramowania. W tym procedurze korzystam z systemu Ubuntu 20.
Korzystanie z oficjalnego archiwum instalatora
Jest to zalecana metoda instalacji AWS CLI. Postępuj zgodnie z poniższymi instrukcjami:
- Zainstaluj curl:
apt-get install curl
- Pobierz archiwum instalatora AWS CLI:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- Rozpakuj zawarte w archiwium pliki instalatora:
unzip awscliv2.zip
- Uruchom instalator z uprawnieniami administratora:
sudo ./aws/install
- Po zakończeniu instalacji sprawdź wersję zainstalowanego narzędzia AWS CLI, aby upewnić się, że zostało ono pomyślnie zainstalowane:
aws --version
Korzystanie z repozytoriów oprogramowania systemu Linux
AWS CLI jest dostępne w oficjalnych repozytoriach oprogramowania dla systemu Ubuntu. Postępuj zgodnie z poniższymi instrukcjami:
1. Zaktualizuj drzewo repozytorium:
sudo apt-get update
2. Zainstaluj AWS CLI za pomocą menedżera pakietów z repozytoriów oprogramowania systemu Linux:
sudo apt-get install awscli
3. Sprawdź, czy AWS CLI zostało pomyślnie zainstalowane:
aws --version
Instalacja za pomocą PIP dla języka Python
Możesz zainstalować AWS CLI jako moduł języka Python, korzystając z menedżera pakietów PIP dla języka Python. Pamiętaj, że PIP dla języka Python nie jest domyślnie zainstalowany w systemie Ubuntu. Aby zainstalować moduł jako moduł języka Python, postępuj zgodnie z poniższymi instrukcjami:
1. Najpierw musisz zainstalować PIP dla języka Python.
- Dla języka Python 2.x:
sudo apt-get install python-pip
- Dla języka Python 3.x:
sudo apt-get install python3-pip
2. Zainstaluj AWS CLI za pomocą PIP dla języka Python.
- Korzystanie z PIP dla języka Python 2.x:
pip install awscli --upgrade --user
- Korzystanie z PIP dla Pythona 3.x:
pip3 install awscli --upgrade --user
3. Sprawdź zainstalowaną wersję.
- W Pythonie 2.x:
python -m awscli --version
- W Pythonie 3.x:
python3 -m awscli --version
Uwaga: Jeśli korzystasz z AWS CLI zainstalowanego za pomocą PIP dla Pythona, polecenia, których należy używać, różnią się od standardowego polecenia głównego aws używanego w przypadku spakowanej wersji AWS CLI:
- Wersja spakowana:
aws
- Moduł dla Pythona 2:
python -m awscli
- Moduł dla Pythona 3:
python3 -m awscli
Instalacja AWS CLI w systemie Windows
Aby zainstalować AWS CLI w systemie Windows, należy pobrać instalator, zainstalować AWS CLI oraz przeprowadzić konfigurację poinstalacyjną w systemie Windows.
Pobierz instalator
Pobierz 64-bitowy instalator AWS CLI, korzystając z jednego z poniższych linków, i zapisz plik w wybranej lokalizacji, na przykład: C:temp
- 64-bitowy instalator jest dostępny w AWS: https://awscli.amazonaws.com/AWSCLIV2.msi
- Instalator 32-bitowy jest dostępny pod tym linkiem: https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- Plik instalatora uniwersalnego jest dostępny tutaj: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
W tym przykładzie korzystam z systemu Windows Server 2016 i pobieram plik AWSCLIV2.msi .
Plik instalatora można pobrać w PowerShellu za pomocą polecenia:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Uruchom instalator
Uruchom pobrany plik AWSCLIV2.msi
Jeśli korzystasz z PowerShellu, zapisz lokalizację pliku .msi (w moim przypadku C:temp ) i uruchom polecenie:
C:tempAWSCLIV2.msi
Postępuj zgodnie z instrukcjami kreatora instalacji. Do instalacji możesz użyć ustawień domyślnych. Proces instalacji jest prosty, więc nie będę omawiać każdego kroku kreatora.
Jeśli spróbujesz uruchomić polecenie aws --version w celu sprawdzenia, czy AWS CLI zostało pomyślnie zainstalowane, może pojawić się błąd. Wynika to z braku wpisu dotyczącego narzędzia AWS CLI w zmiennej środowiskowej PATH. Teraz możesz przejść do katalogu, w którym zainstalowano AWS CLI ( C:Program FilesAmazonAWSCLIV2 domyślnie) i uruchomić AWS CLI ręcznie.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
Skonfiguruj zmienną PATH
Dodaj wpis do zmiennej PATH , ponieważ ręczna zmiana katalogu w wierszu poleceń za każdym razem, gdy trzeba uruchomić polecenia AWS CLI, jest niewygodna.
Korzystanie z interfejsu graficznego systemu Windows
1. Otwórz Control Panel > System > Advanced system settings, a następnie w zakładce Advanced okna Właściwości systemu kliknij Environment Variables.
2. W oknie Zmienne środowiskowe wybierz zmienną PATH i kliknij Edit. Należy pamiętać, że dostępne są opcje edycji zmiennych użytkownika dla administratora oraz zmiennych systemowych .
3. W oknie Edytuj zmienną środowiskową kliknij New.
4. Określ ścieżkę do katalogu, w którym zainstalowano AWS CLI, i naciśnij Enter. W moim przypadku jest to katalog „C:Program FilesAmazonAWSCLIV2”.
5. Kliknij OK , aby zapisać ustawienia i zamknąć okna.
Uwaga: może być konieczne ponowne otwarcie okna konsoli (PowerShell lub CMD), aby zmiany zaczęły obowiązywać.
Korzystanie z PowerShell
Można również edytować zmienne środowiskowe w PowerShell. Wykonaj poniższe kroki, aby dodać wartość do zmiennej PATH w PowerShell.
1. Zapisz pierwotną wartość PATH , którą chcesz zmodyfikować:
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. Zdefiniuj nową wartość PATH , dodając wymaganą wartość. W moim przypadku wartością, którą muszę dodać, jest ścieżka do katalogu AWS CLI. Jako separator między wartościami ścieżek w zmiennej PATH stosowany jest znak średnika (;).
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Zastosuj tę wartość w rejestrze systemu Windows, aby zmiany były trwałe:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. Sprawdź, czy nowa konfiguracja PATH jest poprawna:
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
lub
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Korzystanie z Chocolatey
Alternatywą dla pobrania i uruchomienia pliku instalacyjnego MSI jest instalacja AWS CLI za pomocą Chocolatey — narzędzia do zarządzania oprogramowaniem w systemie Windows działającego w środowisku PowerShell. Chocolatey obsługuje instalację aplikacji z internetowych repozytoriów systemu Windows. Uruchom to polecenie, aby zainstalować AWS CLI:
choco install awscli
Sprawdź wyniki instalacji
Teraz możesz uruchomić polecenie aws (oraz powiązane polecenia AWS EC2) z dowolnego katalogu w PowerShell.
aws --version
Uwaga: Jeśli w systemie operacyjnym masz zainstalowane zarówno AWS CLI w wersji 1, jak i AWS CLI w wersji 2, system operacyjny uruchomi tę wersję, która jest pierwsza w zmiennej PATH .
Instalacja AWS CLI w systemie macOS
Wykonaj poniższe kroki, aby zainstalować AWS CLI w systemie macOS.
Przejdź do katalogu /tmp/ , który będzie służył do przechowywania pobranych plików:
cd /tmp
Metoda 1
- Pobierz plik instalatora:
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - Rozpakuj zawartość pobranego archiwum zip:
unzip awscli.zip - Zainstaluj AWS CLI:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Metoda 2
- Pobierz pakiet instalatora:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - Uruchom instalator:
sudo installer -pkg AWSCLIV2.pkg -target / - Możesz uruchomić następujące polecenie, aby upewnić się, że AWS CLI zostało pomyślnie zainstalowane:
aws --version
Wstępna konfiguracja AWS CLI
Teraz należy podać poświadczenia AWS oraz skonfigurować region i parametry wyjściowe. Uruchom poniższe polecenie, aby skonfigurować AWS CLI. Składnia poleceń AWS CLI jest taka sama w systemach Linux, Windows i macOS. W moim przykładzie używam systemu Ubuntu Linux.
aws configure
Podaj cztery parametry (pierwsze dwa są obowiązkowe):
- Identyfikator klucza dostępu AWS , który jest 20-znakowym ciągiem alfanumerycznym. Litery są wielkie.
- Tajny klucz dostępu AWS , który jest 40-znakowym ciągiem alfanumerycznym przypominającym znak hash.
- Nazwa regionu domyślnego . Wybierz ten parametr, jeśli nie chcesz za każdym razem wyraźnie określać regionu podczas uruchamiania poleceń w AWS CLI. Jeśli chcesz skorzystać z regionu innego niż domyślny, możesz ręcznie określić żądany region w poleceniu. W tym celu użyj
--region. - Domyślny format wyjściowy . Dostępne są trzy opcje:
json, text, table, yaml, yaml-stream. Domyślnie używany jest format JSON (JavaScript Object Notation). Możesz wybrać żądany format podczas uruchamiania konkretnego polecenia, korzystając z--output.
Pliki konfiguracyjne AWS CLI są zapisywane w katalogu domowym. Możesz sprawdzić te pliki za pomocą polecenia:
ls -l ~/.aws
Ustawienia regionu i wyjścia są przechowywane w pliku ` ` `config` ` `. Dane uwierzytelniające (identyfikator klucza dostępu AWS i tajny klucz dostępu AWS) są przechowywane w pliku ` ` `credentials` ` `.
Ogólne wskazówki dotyczące użytkowania
Przed przejściem do praktycznych przykładów korzystania z AWS CLI dla EC2 zapoznajmy się z ogólnymi zaleceniami i wskazówkami dotyczącymi użytkowania AWS CLI.
Struktura poleceń AWS CLI
Polecenie AWS CLI można skomponować na dwa sposoby: w jednej linii lub w wielu liniach.
Struktura standardowa
Standardowa struktura polecenia zakłada, że polecenie jest tworzone jako polecenie jednowierszowe.
aws [options and parameters]
Gdzie:
aws jest podstawowym poleceniem służącym do wywołania programu aws
jest poleceniem najwyższego poziomu odpowiadającym odpowiedniej usłudze AWS, na przykład EC2 lub S3.
określa operację do wykonania, taką jak pobranie obiektu, opis instancji itp.
[options and parameters] określa opcje i parametry operacji.
Struktura poleceń wielowierszowych
Czasami użycie struktury poleceń wielowierszowych może być wygodniejsze, jeśli trzeba określić wiele opcji i parametrów.
aws
[options and parameters]
[options and parameters]
Polecenie wait
Można użyć polecenia wait do wstrzymania wykonywania całego polecenia w celu wznowienia operacji, gdy będzie gotowe do uruchomienia i gdy wszystkie warunki zostaną spełnione.
aws wait [options and parameters]
Przykład:
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
Autouzupełnianie poleceń
Włącz autouzupełnianie poleceń. Autouzupełnianie poleceń sprawia, że wprowadzanie poleceń jest szybsze i wygodniejsze. Użyj tego polecenia, aby włączyć autouzupełnianie w systemie Linux:
complete -C '/usr/local/bin/aws_completer' aws
Sprawdź, czy autouzupełnianie działa:
aws s[press Tab]
aws e[press Tab]
Jeśli autouzupełnianie działa, częściowo wpisane polecenie zostanie automatycznie uzupełnione po naciśnięciu klawisza Tab , jeśli istnieje tylko jedno polecenie zaczynające się od wpisanych znaków. Jeśli istnieje wiele poleceń zaczynających się od wpisanych znaków, wszystkie te polecenia zostaną wyświetlone poniżej. Możesz przejrzeć listę dostępnych poleceń i kontynuować wpisywanie potrzebnego polecenia. Następnie użyj klucza Tab do autouzupełniania poleceń.
Filtry
Używaj filtrów, aby wyświetlać tylko potrzebne dane. Filtrowanie odbywa się po stronie serwera Amazon. W rezultacie przez sieć przesyłana jest mniejsza ilość danych, a dane wyjściowe otrzymujesz szybciej. Skrypty zawierające polecenia AWS EC2 i filtry AWS CLI działają szybciej.
Pomoc AWS
Użyj polecenia help , aby wyświetlić dostępne polecenia i opcje.
aws help
aws help
aws help
Parsowanie JSON
Użyj jq, które jest lekkim narzędziem do przetwarzania danych JSON.
jq jest odpowiednikiem sed służącym do przekształcania strumienia wejściowego, ale dla formatu JSON. Możesz zainstalować jq jako narzędzie do parsowania JSON za pomocą polecenia:
apt-get install jq
Domyślnie możesz użyć wbudowanej opcji --query do parsowania JSON zwracanego przez wykonane polecenie.
Zdalny dostęp
Można połączyć się przez SSH z komputerem z systemem Linux, na którym zainstalowano AWS CLI, i uruchamiać polecenia do zarządzania usługami w chmurze Amazon.
Polecenia AWS EC2 w AWS CLI
Po zainstalowaniu AWS CLI i zapoznaniu się z poradami dotyczącymi AWS CLI można uruchamiać polecenia AWS CLI dla EC2, aby wyświetlać informacje o instancjach AWS EC2 i zarządzać nimi. Przejdźmy teraz do praktycznych przykładów korzystania z interfejsu wiersza poleceń w AWS.
Opis instancji AWS EC2
Możesz używać poleceń AWS EC2 w AWS CLI do opisywania (uzyskiwania informacji o) komponentów Amazon na swoim koncie bez wykonywania żadnych działań na nich. Polecenia AWS CLI do opisu instancji pomagają sprawdzić stan instancji AWS EC2, woluminów EBS, obrazów maszyn Amazon i innych komponentów. Można również skorzystać z udostępnionej funkcji na stronie monitorowanie.
Przykład 1
Zacznijmy od tego prostego polecenia, aby wyświetlić informacje o istniejących instancjach Amazon EC2:
aws ec2 describe-instances
Polecenie to zwraca dane opisujące wszystkie instancje AWS EC2 w formacie JSON (ponieważ wcześniej ustawiliśmy JSON jako format domyślny). W rezultacie otrzymujemy dużą tablicę danych, zawierającą metadane. Ten wynik nie jest praktyczny do odczytu przez użytkowników, ale nadaje się do tworzenia skryptów i aplikacji.
Naciśnij klawisz down arrow , aby przewijać dane w oknie konsoli/terminala.
Naciśnij q , aby wyjść z trybu przeglądarki (podobnie jak podczas korzystania z less ).
Przykład 2
Możemy wyświetlić pełne informacje tylko dla jednej instancji, używając identyfikatora instancji w poleceniu: aws ec2 describe-instances
--instance-ids i-0201020e110607121
Przykład 3
Teraz sprawdzimy identyfikatory instancji, ich nazwy oraz stan wszystkich dostępnych instancji w naszym regionie. Za pomocą polecenia z wykorzystaniem filtrów AWS CLI oraz opcji --query możemy wyświetlić tylko potrzebne dane. Ten przykład filtrów AWS CLI zawiera opcję --filter , która zwraca żądane, przefiltrowane dane. Używamy opcji --output text , aby wyświetlić wynik w postaci tekstowej.
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
W porównaniu z nieprzefiltrowanym wynikiem, który zawiera wszystkie dostępne dane dla wszystkich instancji, wynik po filtrowaniu jest bardziej przejrzysty i czytelny dla użytkowników.
Przykład 4
Teraz ponownie przefiltrujmy instancje AWS EC2 i wyświetlmy tylko te instancje, których nazwa zawiera „Linux” za pomocą filtra AWS CLI.
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Na poniższym zrzucie ekranu widać wynik polecenia po zastosowaniu filtru instancji EC2. Znalazłem trzy instancje z systemem Linux, na których zainstalowano NAKIVO Backup & Replication Transporter . Transporter to komponent służący do przesyłania danych podczas wykonywania operacji tworzenia kopii zapasowej w AWS oraz Odzyskiwanie awaryjne w AWS .
Przykład 5
Można wyświetlić instancje określonych typów instancji AWS EC2. W tym przykładzie uruchamiam polecenie, aby wyświetlić instancje typu t2.micro :
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
Przykład 6
Użyj filtru instancji EC2, aby wyświetlić wyłącznie identyfikatory instancji.
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
Przykład 7
Alternatywnie można użyć widoku tabelarycznego dla danych wyjściowych, dodając opcję --output table . Poniżej znajduje się polecenie z filtrem AWS CLI, które wyświetla identyfikator instancji, nazwę, stan i typ instancji AWS EC2 w formie tabeli.
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
Przykład 8
Istnieje jeszcze jedno polecenie służące do wyświetlania danych wyjściowych (identyfikatora instancji, typu i nazwy) instancji AWS EC2 w wygodnym widoku:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
Przykład 9
Sprawdź zewnętrzny adres IP uruchomionej instancji:
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
Aby sprawdzić zewnętrzne adresy IP wielu instancji AWS EC2, podaj identyfikatory instancji, oddzielając je spacją.
Przykład 10
Sprawdź zatrzymane instancje oraz przyczynę zatrzymania każdej z nich za pomocą polecenia zawierającego filtr AWS CLI:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
Istnieje alternatywny przykład:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
Przykład 11
Oto polecenie służące do wyświetlenia listy uruchomionych instancji Amazon EC2 wraz ze szczegółowymi informacjami, w tym nazwą instancji, prywatnym adresem IP, publicznym adresem IP, statusem, typem i identyfikatorem VPC (VpcID) w formie tabeli: aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=instance-state-name,Values=running --output table
Uruchamianie instancji AWS EC2
Znając identyfikator instancji, można uruchomić instancję Amazon za pomocą poleceń AWS EC2.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Można uruchomić wiele instancji AWS EC2, korzystając z polecenia „start instances” usługi AWS EC2 i podając identyfikatory instancji oddzielone spacjami.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Zatrzymywanie instancji AWS EC2
Można zatrzymać jedną lub wiele instancji AWS EC2. Składnia jest podobna do składni polecenia ec2 start-instances .
Poniżej przedstawiono polecenie AWS CLI do zatrzymania jednej instancji:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Polecenie AWS CLI do zatrzymania wielu (trzech) instancji jest takie samo, ale należy podać wiele identyfikatorów instancji AWS EC2, oddzielonych spacjami:
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Oto lista możliwych kodów stanów i nazw stanów w wynikach:
0 – w toku
16 – uruchomiona
32 – wyłączana
48 – zakończona
64 – zatrzymywana
80 – zatrzymana
Ponowne uruchomienie instancji AWS EC2
Za pomocą aws ec2 reboot-instances można ponownie uruchomić jedną lub wiele instancji AWS EC2. Logika działania tego polecenia jest taka sama jak w przypadku poleceń AWS CLI start instance i AWS CLI stop instance. Oto polecenie służące do ponownego uruchomienia jednej instancji:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Oto polecenie służące do ponownego uruchomienia trzech instancji:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Dodawanie tagów
Tagi pozwalają klasyfikować instancje AWS EC2 oraz łatwiej je identyfikować lub wyszukiwać. Przyjrzyjmy się dwóm poleceniom AWS EC2 służącym do pracy z tagami.
Uruchom to polecenie, aby dodać tag do instancji, podając jej identyfikator (ID):
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
Następnie możesz użyć polecenia, aby wyświetlić informacje o potrzebnych instancjach na podstawie tagów:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Opis woluminów EBS
Podczas pracy z instancjami Amazon EC2 może zaistnieć potrzeba sprawdzenia informacji o woluminach EBS, podłączenia woluminów do instancji EC2 oraz ich odłączenia. Poniżej znajdziesz kilka przykładów poleceń AWS EC2 służących do uzyskania informacji o woluminach EBS.
Przykład 1
Jest to proste polecenie służące do opisania woluminów EBS i wyświetlenia wszystkich informacji o istniejących woluminach na koncie Amazon:
aws ec2 describe-volumes
Polecenie to jest podobne do polecenia AWS EC2 „describe instances”, z którego korzystaliśmy powyżej. W wynikach możemy zobaczyć szczegółowe informacje o wszystkich dostępnych woluminach. Naciśnij strzałkę w dół na klawiaturze, aby przewinąć w dół i wyświetlić wszystkie dane. Wyszukiwanie potrzebnych informacji w tej tablicy danych nie jest wygodne. Użyj filtrów AWS CLI, aby wyświetlić tylko potrzebne dane. 
Przykład 2
Oto przykład polecenia AWS CLI dla usługi EC2 służącego do wyświetlenia identyfikatorów wszystkich woluminów EBS:
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
Przykład 3
Przefiltrujmy identyfikatory wszystkich woluminów Amazon EBS, które mają status „podłączone”:
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
Tę samą logikę można zastosować do nakładania filtrów podczas uruchamiania poleceń AWS CLI w celu pracy z woluminami EBS i innymi obiektami AWS.
Przykład 4
Być może zajdzie potrzeba wyświetlenia woluminów, które nie są podłączone i mają status „dostępne”. W takim przypadku należy użyć polecenia:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
Podłączanie woluminów EBS do instancji AWS EC2
Po uzyskaniu niezbędnych informacji o instancjach AWS EC2 i woluminach EBS można podłączyć wolumin EBS do instancji EC2 za pomocą polecenia aws ec2 attach-volume .
Użyj opcji --device , aby określić nazwę dysku używaną przez system operacyjny gościa. W poniższym przykładzie używam polecenia do podłączenia woluminu EBS jako dysku oznaczonego jako /dev/sde w systemie gościnnym Linux.
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
Po podłączeniu woluminu EBS do instancji EC2 stan woluminu zmienia się z „Dostępny” na „Podłączony”.
Operacje na migawkach
Migawki woluminów EBS pozwalają zachować stan woluminu i przywrócić go w razie potrzeby. Oto przykład polecenia służącego do utworzenia migawki woluminu EBS:
aws ec2 create-snapshot --volume-id
Aby wyświetlić identyfikatory migawek, użyj tego polecenia:
ec2 describe-snapshots --owner self
Sprawdź status migawki za pomocą polecenia:
aws ec2 describe-snapshots --snapshot-id
Jeśli postęp tworzenia migawki wynosi 100%, a status to „zakończone”, oznacza to, że migawka została pomyślnie utworzona.
Informacje te pozwalają wybrać odpowiednią strategię ochrony danych. {116} aby dowiedzieć się więcej.
Opis obrazów
Podobnie jak w przypadku poleceń AWS EC2 do opisu instancji i woluminów, można użyć polecenia do opisu obrazów Amazon Machine Image (AMI). Oto proste polecenie AWS CLI EC2 służące do wyświetlenia informacji o obrazach Amazon Machine Image (AMI):
aws ec2 describe-images
Można wyświetlić informacje o konkretnym obrazie:
aws ec2 describe-images --image-ids ami-0034567890abc4140
Na podstawie wyświetlonych informacji można wybrać potrzebny obraz AMI w celu utworzenia nowej instancji Amazon EC2.
Uruchamianie nowych instancji EC2
Można utworzyć (uruchomić) nową instancję na podstawie wybranego obrazu, korzystając z poniższych poleceń AWS CLI dla EC2.
Najpierw należy wygenerować klucze:
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
Utwórz nową instancję Amazon EC2 za pomocą polecenia AWS EC2 run instances, określając obraz AMI, typ instancji oraz parę kluczy:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
Oto prosty przykład. Podczas tworzenia nowej instancji EC2 za pomocą polecenia AWS EC2 run instances można zdefiniować dodatkowe opcje, w tym:
–subnet-id
–security-group-ids
–block-device-mappings
–tag-specifications
Usuwanie instancji EC2
Zaleca się usuwanie instancji AWS EC2, które nie były używane przez dłuższy czas, aby obniżyć koszty. Należy zachować ostrożność, ponieważ nie można przywrócić zakończonej instancji EC2. Jeśli nie masz pewności, czy zakończona instancja będzie potrzebna w przyszłości, wykonać kopię zapasową instancji EC2 za pomocą NAKIVO Backup & Replication do lokalnego repozytorium kopii zapasowych lub do usługi Amazon S3.
Można usunąć wiele instancji, podając ich identyfikatory za pomocą polecenia:
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
Wnioski
AWS CLI to potężne narzędzie wiersza poleceń, które pomaga zautomatyzować wykonywanie dużej liczby podobnych zadań. Filtry AWS EC2 pozwalają skonfigurować dane wyjściowe i uzyskać tylko te, które są potrzebne. Dostępne są polecenia służące do wyświetlania informacji o usługach Amazon oraz polecenia umożliwiające wprowadzanie zmian w tych usługach.
Aby zapobiec błędom ludzkim spowodowanym nieprawidłową konfiguracją skryptów utworzonych za pomocą AWS CLI, zdecydowanie zaleca się regularne przeprowadzanie Wykonać kopię zapasową AWS EC2 przy użyciu dedykowanego rozwiązania zewnętrznego.
< span data-sheets-value="{"1":2,"2":"















