Metody i Systemy Obliczeń Wielkiej Skali


Wstęp do Amazon Web Services

  1. Informacje podstawowe:
    1. Strona główna Amazon Web Services: https://aws.amazon.com/
    2. Założenie konta: https://portal.aws.amazon.com/gp/aws/developer/registration/index.html
    3. Dodatkowy kupon z GitHub: Student Developer Pack Uwaga: z kuponu z GitHub należy skorzystać przed zgłoszeniem się do AWS Education Program.
    4. Rejestracja w Education Program: formularz dla studentów.
    5. Doładowanie konta przy użyciu kuponu: https://console.aws.amazon.com/billing/home?#/credits
    6. Sprawdzenie stanu konta: https://console.aws.amazon.com/billing/home?#/
    7. Uwaga: przekroczenie kwoty doładowania powoduje obciążenie karty! Studenci korzystają z platformy Amazon EC2 na własną odpowiedzialność i odpowiadają za wszelkie koszty ponad warotść przydzialonego kuponu. (alternatywne rozwiązanie: usługa PL-Grid Cloud 2.0)
    8. Uwaga Należy wybrać opcję podstawowego wsparcia (basic support) - inne opcje są płatne.
  2. Dostęp do Elastic Compute CLoud (EC2) poprzez konsolę webową:
    1. Konsola EC2: https://console.aws.amazon.com/ec2/v2/home?region=eu-west-1
    2. Najlepiej wybrać region EU (Ireland)
    3. Uruchomienie testowej instancji:
      1. Obraz maszyny wirtualnej (Amazon Machine Image AMI) Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-0d77397e
      2. Rozmiar instancji: t2.micro
      3. Konfiguracja bezpieczeństwa: port 22 (SSH) musi być otwarty
      4. Utworzenie nowej pary kluczy i zapisanie pliku klucz.pem.
    4. Połączenie do uruchomionej instancji:
      1. Klucz powinien mieć prawa do odczytu tylko dla użytkownika: chmod 400 klucz.pem
      2. Połączenie SSH: ssh -i klucz.pem ubuntu@ec2-176-34-70-221.eu-west-1.compute.amazonaws.com
      3. Zapisanie obrazu instancji: Actions -> Create Image
  3. Dostęp do EC2 poprzez Command Line Interface (CLI)
    1. Dokumentacja i instalacja EC2 CLI: http://aws.amazon.com/cli/
    2. Np. dla Ubuntu: http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html
    3. Wygenerowanie kluczy API (Access Key ID, Secret Access Key) : https://console.aws.amazon.com/iam/home?#security_credential
    4. Konfiguracja ~/.aws/config
    5. Lista instancji:
      aws ec2 describe-instances
    6. Uruchomienie instancji:
      aws ec2 run-instances --image-id ami-0d77397e --instance-type t2.micro --key mm-localhost --subnet-id subnet-378d5552
  4. Dostęp poprzez API / narzedzia:
    1. Java: http://jclouds.apache.org/
    2. Python: https://github.com/boto/boto
    3. Ruby: http://fog.io/
    4. Terraform: http://terraform.io (przyklad)

  5. Zadania
    1. Proszę stworzyć i zapisać obraz na którym zainstalowany i skonfigurowany jest serwer WWW (np Apache). Utworz bucket w S3 i zaladuj do niego obrazek. Skonfiguruj role, ktora daje prawo dostepu do tego bucketa dla wlasnie stworzonej instancji EC2. Wyswietl strone w przegladarce, ktora pokazuje obrazek.
    2. Proszę napisać program, który:
      1. Uruchamia instancję z obrazu utworzonego w p. 1.
      2. Czeka aż instancja będzie gotowa.
      3. Czeka aż serwer WWW będzie gotowy
      4. Łączy się z serwerem WWW i pobiera przykładowy plik (np. index.html)
      5. Wyłącza instancję.
    3. Przy użyciu programu zmierzyć czas uruchomienia instancji.
    4. Prosze wykorzystac Terraform do utworzenia i konfiguracji instancji z zadania 1.


    Bartosz Baliś, balis at agh.edu.pl
    Maciej Malawski, malawski at agh.edu.pl