Chmura Amazon – zarządzanie AWS CLI
Chmura Amazon AWS udostępnia wiele sposobów zarządzania wymienionych poniżej:
- AWS Management Console
Najpopularniejsza i najprostsza konsola graficzna dostępna od razu po zalogowaniu do konta w chmurze Amazon AWS. Początkujący użytkownicy rozpoczynający prace z małą ilością usług korzystają głównie z tej konsoli.
- Command Line Interface CLI
AWS CLI to interfejs linii komend dla zaawansowanych użytkowników usług AWS. Linia komend AWS CLI używana jest do szybkiego uruchamiania wielu usług, instancji vps EC2, sieci VPC, S3 itp. W konsoli AWS CLI możemy bez problemu zautomatyzować naszą pracę. Przykładowo możemy wykonywać cykliczne snapshoty maszyn wirtualnych VPS w usłudze EC2 i wykorzystać je do szybkiego odzyskania serwera w distater recovery.
- Software Development Kits SDKs
Chmura Amazon AWS udostępnia możliwość zarządzania swoimi usługami za pomocą API w wielu językach programowania, takich jak np.: Android, Java, PHP, .Net, Python, C++, Node.js, Ruby,
Dzięki temu mamy możliwość napisania wielu scenariuszy uruchomienia usług w Amazon AWS w jednym z ulubionych języków. Przykładowo możemy przygotować program, który po uruchomieniu przygotuje nam środowisku z odpowiednio skonfigurowaną siecią VPC, z uruchomionymi tysiącami maszyn EC2 z obrazów AMI oraz innymi wymaganymi usługami jak chociażby CloudFront, Amazon RDS, Amazon Aurora, Amazon S3, Amazon EBS, Amazon Elastic File System EFS, itp.
W dalszej części tego artykułu, zajmiemy się AWS CLI – Command Line Interface CLI i na podstawie tej konsoli będziemy podawać kilka przykładów.
Instalacja AWS CLI – w systemie Linux
Pobieramy najnowszą paczkę instalacyjną bezpośrednio ze strony Amazon AWS za pomocą komendy:
# curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8507k 100 8507k 0 0 1687k 0 0:00:05 0:00:05 --:--:-- 1990k
Rozpakowujemy archiwum .zip:
# unzip awscli-bundle.zip Archive: awscli-bundle.zip inflating: awscli-bundle/install inflating: awscli-bundle/packages/awscli-1.11.82.tar.gz inflating: awscli-bundle/packages/argparse-1.2.1.tar.gz inflating: awscli-bundle/packages/six-1.10.0.tar.gz inflating: awscli-bundle/packages/ordereddict-1.1.tar.gz inflating: awscli-bundle/packages/colorama-0.3.7.zip inflating: awscli-bundle/packages/futures-3.1.1.tar.gz inflating: awscli-bundle/packages/docutils-0.13.1.tar.gz inflating: awscli-bundle/packages/simplejson-3.3.0.tar.gz inflating: awscli-bundle/packages/python-dateutil-2.6.0.tar.gz inflating: awscli-bundle/packages/PyYAML-3.12.tar.gz inflating: awscli-bundle/packages/s3transfer-0.1.10.tar.gz inflating: awscli-bundle/packages/virtualenv-15.1.0.tar.gz inflating: awscli-bundle/packages/rsa-3.4.2.tar.gz inflating: awscli-bundle/packages/jmespath-0.9.2.tar.gz inflating: awscli-bundle/packages/pyasn1-0.2.3.tar.gz inflating: awscli-bundle/packages/botocore-1.5.45.tar.gz
Uruchamiamy instalacje
# sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws Running cmd: /usr/bin/python virtualenv.py --python /usr/bin/python /usr/local/aws Running cmd: /usr/local/aws/bin/pip install --no-index --find-links file:///root/awscli-bundle/packages awscli-1.11.82.tar.gz You can now run: /usr/local/bin/aws --version
Konfiguracja Amazon AWS CLI
Gdy już zainstalujemy konsole, musimy ją odpowiednio skonfigurować podając nasze dane do logowania. Pamiętajcie że nie należy podawać tutaj danych logowania do konta root AWS. W tym celu należało by utworzyć nowe konto z ograniczonym dostępem.
Zakładając że posiadamy już dane dostępowe do konta AWS takie jak Access Key ID i Secret Access Key możemy przystąpić do konfiguracji AWS CLI
Konfiguracji możemy dokonać poprzez:
- Wydanie komendy aws configure
# aws configure AWS Access Key ID [None]: AK2IAJ73*********** AWS Secret Access Key [None]: p2SGaUEA************** Default region name [None]: us-east-1 Default output format [None]: json
JSON jest tutaj domyślnym formatem.
- Modyfikacje pliku ~/.aws/credentials
[profil1] aws_access_key_id = AE25A**************** aws_secret_access_key = mi2pMz0N***************** region = us-east-1
[profil2] aws_access_key_id = A12**************** aws_secret_access_key = mi22z0N***************** region = us-east-1
Jeśli posiadamy kilka kont z różnymi dostępami w tym pliku możemy stworzyć od razu wiele profili. Następnie aby przełączać się między profilami, wystarczy wykorzystać przełącznik –profile profil1
Utworzenie serwera w chmurze Amazon EC2 na podstawie AMI
W pierwszej kolejności musimy znać identyfikator obrazu AMI. Poniżej podaje przykład zdobycia identyfikatora AMI z AWS Marketplace
#aws ec2 describe-images --owners 'aws-marketplace' --filters 'Name=product-code,Values=aw0evgkw8e5c1q413zgy5pjce' --query 'sort_by(Images, &CreationDate)[-1].[ImageId]' --output 'text' --profile profile1
ami-6d1c2007
aws ec2 run-instances --image-id ami-6d1c2007 --count 100 --instance-type c4.xlarge --key-name my_key --security-group-ids sg-4r1423f8 --subnet-id subnet-15tf1243