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 wielokrotne wykonywanie tych samych czynności 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. W tym wpisie na blogu omówiono instalację AWS CLI oraz podstawy korzystania z tego narzędzia. Wpis skupia się również na poleceniach AWS CLI dotyczących EC2, zilustrowanych przykładami.
Czym jest AWS CLI
Amazon Web Services Command Line Interface (AWS CLI) to narzędzie typu open source z wierszem poleceń, 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 jest zainstalowane. Możesz zarządzać instancjami AWS EC2 za pomocą poleceń AWS EC2, a także zarządzać 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 PowerShell. To CLI pozwala tworzyć skrypty i automatyzować zadania.
Istnieją dwie główne wersje AWS CLI:
- AWS CLI wersja 1 to stara 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
- Musisz posiadać konto AWS oraz Klucze dostępu do AWS (AWS Access Key ID i AWS Secret Access Key).
- Należy zainstalować Python 2 w wersji 2.6.5+ lub Python 3 w wersji 3.3+. AWS CLI v2 ma wbudowaną kopię Pythona i 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
- Windows XP lub nowszy
- Uprawnienia administratora na komputerze z systemem Windows
macOS
- 64-bitowa wersja macOS obsługiwana przez 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.
Instalowanie AWS CLI w systemie Linux
Istnieją trzy metody instalacji AWS CLI w systemie Linux:
- Korzystanie z instalatora pakietu (metoda oficjalna)
- Korzystanie z repozytorium oprogramowania systemu Linux
- Instalowanie 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 przewodniku 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 pliki instalatora zawarte w pobranym archiwum:
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ą Python PIP
Możesz zainstalować AWS CLI jako moduł Python, używając menedżera pakietów Python PIP. Pamiętaj, że Python PIP nie jest domyślnie zainstalowany w systemie Ubuntu. Aby zainstalować moduł Python, postępuj zgodnie z poniższymi instrukcjami:
1. Najpierw musisz zainstalować Python PIP.
- Dla Python 2.x:
sudo apt-get install python-pip
- Dla Python 3.x:
sudo apt-get install python3-pip
2. Zainstaluj AWS CLI za pomocą Python PIP.
- Korzystanie z Python 2.x PIP:
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 i 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
- Instalator 64-bitowy 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 PowerShell za pomocą polecenia:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Uruchom instalator
Uruchom pobrany AWSCLIV2.msi plik.
Jeśli korzystasz z PowerShell, zapisz lokalizację pliku .msi ( C:temp w moim przypadku) 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 związanego z narzędziem AWS CLI w zmiennej środowiskowej PATH. Teraz możesz zmienić katalog na ten, w którym zainstalowano AWS CLI ( C:Program FilesAmazonAWSCLIV2 domyślnie) i uruchomić AWS CLI ręcznie.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
Skonfiguruj PATH
Dodaj wpis do zmiennej PATH , ponieważ ręczna zmiana katalogu w wierszu poleceń za każdym razem, gdy chcesz uruchomić polecenia AWS CLI, jest niewygodna.
Korzystanie z graficznego interfejsu użytkownika systemu Windows
1. Otwórz Control Panel > System > Advanced system settingsi 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. Naciśnij 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żesz również edytować zmienne środowiskowe w PowerShell. Wykonaj poniższe kroki, aby dodać wartość do zmiennej PATH w PowerShell.
1. Zapisz oryginalną 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 potrzebną 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 używa się znaku średnika (;).
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Zastosuj 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 PATH konfiguracja 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 instalatora 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 zainstalowaną wersję 1 i wersję 2 AWS CLI, system operacyjny uruchamia tę, która jest pierwsza w zmiennej PATH .
Instalowanie 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 musisz podać dane uwierzytelniające 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ą wymagane):
- Identyfikator klucza dostępu AWS , który jest 20-znakowym ciągiem alfanumerycznym. Litery są wielkie.
- Sekretny klucz dostępu AWS , który jest 40-znakowym ciągiem alfanumerycznym przypominającym hash.
- Domyślna nazwa regionu . 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 (AWS Access Key ID i AWS Secret Access Key) są przechowywane w pliku credentials .
Ogólne wskazówki dotyczące użytkowania
Zapoznajmy się z ogólnymi zaleceniami i wskazówkami dotyczącymi korzystania z AWS CLI, zanim przejdziemy do praktycznych przykładów AWS CLI dla EC2.
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 wywołującym program 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
Uzupełnianie poleceń
Włącz uzupełnianie poleceń. Uzupeł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 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żyj filtrów, aby wyświetlić tylko potrzebne dane. Filtrowanie odbywa się po stronie serwera Amazon. Dzięki temu przez sieć przesyłanych jest mniej danych, a wyniki 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 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 zwróconego przez wykonane polecenie.
Zdalny dostęp
Możesz 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
Teraz, gdy zainstalowałeś AWS CLI i zapoznałeś się z poradami dotyczącymi AWS CLI, możesz uruchamiać polecenia AWS CLI EC2, aby wyświetlać informacje o instancjach AWS EC2 i nimi zarządzać. 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 komponentów Amazon (uzyskiwania informacji o nich) dla swojego konta bez wykonywania na nich żadnych działań. Polecenia AWS CLI do opisywania 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 dla 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 wynikach w formacie JSON (ponieważ wcześniej ustawiliśmy JSON jako format domyślny). W rezultacie otrzymujemy dużą tablicę danych, w tym metadane. Wynik ten nie jest praktyczny do odczytu przez użytkowników, ale jest przydatny do tworzenia skryptów i aplikacji.
Naciśnij klawisz down arrow , aby przewinąć 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. Dzięki opcji --query w AWS CLI możemy wyświetlić tylko potrzebne dane. Ten przykład wykorzystania 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 niefiltrowanym wynikiem, który zawiera wszystkie dostępne dane dla wszystkich instancji, wynik filtrowany jest wygodniejszy i czytelny dla użytkowników.
Przykład 4
Teraz ponownie przefiltrujmy instancje AWS EC2 i wyświetlmy tylko te instancje, które mają w nazwie „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 użyciu go z filtrem instancji EC2. Znalazłem trzy instancje Linux z zainstalowanym NAKIVO Backup & Replication Transporter . Transporter to komponent służący do przesyłania danych podczas wykonywania operacji tworzenia kopii zapasowej i Odzyskiwanie awaryjne w AWS w AWS.
Przykład 5
Można opisać 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 filtra instancji EC2, aby wyświetlić tylko 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 tabeli 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 inne 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, zdefiniuj 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
Jest to polecenie służące do wyświetlenia listy uruchomionych instancji Amazon EC2 wraz z bardziej szczegółowymi informacjami, w tym nazwą instancji, prywatnym adresem IP, publicznym adresem IP, statusem, typem i identyfikatorem VPC 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, używając polecenia AWS EC2 start instances i wpisując ich identyfikatory 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 .
Polecenie AWS CLI stop instance dla jednej instancji znajduje się poniżej:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Polecenie AWS CLI stop instance dla 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 użycia tego polecenia jest taka sama jak w przypadku poleceń AWS CLI start instance i AWS CLI stop instance. Oto polecenie do ponownego uruchomienia jednej instancji:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Oto polecenie do ponownego uruchomienia trzech instancji:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Dodaj tagi
Tagi pozwalają klasyfikować instancje AWS EC2 oraz łatwiej je identyfikować lub wyszukiwać. Przyjrzyjmy się dwóm poleceniom AWS EC2 do pracy z tagami.
Uruchom to polecenie, aby dodać tag do instancji, definiując jej identyfikator:
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 za pomocą tagów:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
Opisuj woluminy EBS
Podczas pracy instancji 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, którego użyliś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 użyj polecenia:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
Podłącz woluminy EBS do instancji AWS EC2
Po uzyskaniu potrzebnych informacji o instancjach AWS EC2 i woluminach EBS możesz 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ńczono”, 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 Images. Jest to proste polecenie AWS CLI EC2 służące do wyświetlania informacji o obrazach Amazon Machine Images (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.
Uruchom nowe instancje EC2
Możesz utworzyć (uruchomić) nową instancję na podstawie potrzebnego obrazu, korzystając z poniższych poleceń AWS CLI EC2.
Najpierw musisz 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 i parę kluczy:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
To jest 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żesz 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 może pomóc w automatyzacji wykonywania dużej liczby podobnych zadań. Filtry AWS EC2 pozwalają skonfigurować dane wyjściowe i uzyskać tylko te dane, których potrzebujesz. 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 wykonywanie Wykonać kopię zapasową AWS EC2 przy użyciu dedykowanego rozwiązania innej firmy.
< span data-sheets-value="{"1":2,"2":"
„}” data-sheets-userformat=”{„2″:17089,”3”:{„1″:0},”9″:1,”10″:1,”12″:0,”17”:1}”>















