AWS: Amazon Web Services

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Introducció

Quick reference:

AWS és un servei al núvol de Amazon on pots gestionar diversos recursos informàtics com màquines virtuals (instàncies), emmagatzematge o funcions com a servei.

Més exactament es tracta d'un sistema IaaS o Infrastructure as a Service. Pots documentar-te més sobre aquests sistemes aquí:

http://techpedia.fel.cvut.cz/es/single/?objectId=92

Aquest diagrama descriu prou clarament les diverses opcions d'externalització de infraestructura, plataforma i software com a servei:

Xaas.png

Tenim 2 maneres d'introduir-nos a AWS:

  1. Afegir-se al AWS Educate Program. En aquest cas, i si tenim un email corporatiu del centre on fem les classes, podrem crear comptes ESA o Educate Starter Account que ens proporcionarà un crèdit de $75 perquè fem les nostres primeres proves amb màquines de Amazon.
  2. Crear un compte estàndard (AWS Account). Necessitarem una targeta bancària que pot ser de dèbit o de crèdit. Recomanem una targeta de PREPAGAMENT (CyberTargeta, etc), d'aquesta manera ens podrem posar límit al possible cobrament que ens pugui arribar.

Requisits per a ESA Educate Starter Account

  • AWS Educate FAQs
  • NO cal targeta bancària.
  • L'institut ha d'haver estat reconegut com a institució en el AWS Educate Program.
  • Cal un email corporatiu del centre per a cada alumne.
  • Cal gestionar amb prou anterioritat tot el procés, l'activació sol trigar força.
  • Ens donaran $75 en crèdits per a utilitzar en recursos de AWS. Un cop esgotats no es podrà afegir més crèdit i caldrà recórrer a un compte AWS regular.

Requisits per a Estandard AWS Account + Free Tier

  • Targeta bancària de PREPAGAMENT. Es pot fer amb una Visa, MasterCard o similar, però que sigui de prepagament com la CyberTargeta o similars.
Sobretot, NO FEU CAP PAS AMB UNA TARGETA VINCULADA A UN COMPTE BANCARI.
Ha de ser de prepagament per evitar-nos cobraments indesitjats.
  • Un telèfon a mà (marcació per tons).
  • Connexió a Internet a poder ser no compartida (només per l'alta del compte). Si molts usuaris es donen d'alta alhora pot ser que ens prenguin per un atac. Pot ser convenient que els alumnes es donin d'alta a casa seva enlloc de dins el centre.

Alta a AWS estàndard:

  • Cal tenir a punt una targeta de dèbit (millor que no pas de crèdit). Ens cobraran 1€ (teòricament ens ho retornaran, és per comprovar que la targeta és vàlida).
  • Anar al link de AWS i obrir un compte.
  • Un cop introduïda la targeta de crèdit i el telèfon ens faran una trucada per verificar un PIN. Això activarà el compte.


Seguretat

És molt important, en general:

  • No activar contrasenyes per SSH, només connexions amb SSH keys.
  • Si fem servir contrasenyes, crear contrasenyes segures, difícilment endevinables. Barrejar paraules i combinar majúscules, minúscules, símbols i números.
  • Utilitzar un nom d'usuari que no sigui fàcilment deduïble. Particularment, no utilitzar paraules que estiguin al nostre nom de domini. Per exemple, si el domini és "manel.tk" NO utilitzeu "manel" com a nom d'usuari.

Si és un compte regular (no pels ESA Accounts de AWS Educate):

  • ACTIVAR ALARMA per quan excedim un cert consum de transferència.
    1. Anar a la consola de facturació -> preferències: https://console.aws.amazon.com/billing/home#/preferences
    2. Activar "Receive billing alerts"
    3. Canviar a la zona US North Virgina (les alarmes de facturació només es poden fer en aquesta zona)
    4. Crear una nova alarma anant a: CloudWatch -> Billing -> Create Alarm
      • Mètrica: Estimated charges.
      • Charges >= $5 (per exemple)
      • Notification: crea un "SNS topic" amb el teu email.

Temes de seguretat a comprovar periòdicament:

  • Fer un "top" a la màquina. Tots els processos haurien d'estar a menys del 1% de CPU. Si hi ha activitat més gran, pot haver-hi una intrusió.
  • Visitar regularment el nostre compte AWS i comprovar els càrrecs que es preveuen pel mes vinent.

EN CAS DE DETECCIÓ O SOSPITA D'INTRUSIÓ:

  1. Aturar la màquina (no terminate, simplement stop o bé per comanda sudo poweroff). Això aturarà el trànsit de la web i per tant l'increment de la possible facturació.
  2. Consultar el professor.


Creant la primera màquina

  • Entrem al nostre compte.
    Si utilitzeu un ESA Starter Account feu login a http://awseducate.qwiklabs.com
  • Anirem al "panell de control" o "Management Console".
  • Assegureu-vos que esteu a la zona EU Ireland (a dalt a la dreta). <- això només si esteu treballant amb un compte FREE TIER (no en el cas d'un compte ESA d'AWS Educate)
  • Crear una instància de una EC2 (Elastic Compute Cloud). Pots triar entre diverses versions de Linux i Windows. Començarem per una Ubuntu en la versió LTS que hi hagi disponible (Long-Term Service).
  • Mentre creem la instància de EC2 ens demanarà crear un KEYPAIR. Al tanto, és important per començar, és la SSH key que utilitzarem per logar-nos. Guardeu l'arxiu .PEM curosament (NO la podrem descarregar després!)


Assignant una "Elastic IP" a la nostra instància

Podem consultar la IP privada (per la xarxa interna de AWS) i la IP pública de la nostra màquina anant al menú de EC2 Instances. El problema és que quan reiniciem la màquina també canvia la IP pública (és dinàmica). Per assegurar-nos que tenim sempre la mateixa IP (imprescindible per poder fer un domini web com cal amb HTTPS) hem de configurar una "Elastic IP". A més, aquesta IP la podem canviar de màquina, el que pot facilitar l'administració del nostre servidor (per exemple, quan volem actualitzar la versió del SO o del nostre software).

  • El nom de la nostra màquina canvia segons el dia. El nom depèn de la IP interna i aquesta canvia segons la cloud: les màquines virtuals es mouen pels nodes del multiprocessador segons convé al sistema. Per tant:
  • Cal posar una IP a la màquina (per després activar un nom de domini), concretament una Elastic IP (assigneu-la a la instància recentment creada):
    Management Console -> EC2 -> Elastic IPs
  • Assigneu la IP a la instància Ubuntu creada.

Connectant-nos per SSH a la instància EC2

IMPORTANT: La primera connexió ha de ser per autenticació per clau pública (arxiu .pem).

En Linux:

  • Creeu el directori .ssh si us cal:
    $ mkdir .ssh
  • Descarregueu la key (arxiu .pem, normalment es descarrega automàticament durant la creació de la instància) i moveu-lo al vostre directori .ssh. Creeu el directori .ssh si us cal:
    $ mv enric.pem .ssh/
  • Cal que sapiguem ara la IP pública o el nom de la màquina a la que volem connectar-nos.
    • Si teniu assignada la elastic IP ja podeu utilitzar-la.
    • Si no teniu assignada una elastic IP podeu anar a:
      Management Console -> EC2 -> Instances -> (cliqueu la nova instància) -> Public DNS
      o bé:
      Management Console -> EC2 -> Instances -> (cliqueu la nova instància) -> Public IP
  • Primera connexió a la màquina (amb usuari ubuntu, és el que ve per defecte): si per exemple la màquina es diu m123.amazonaws.com
    ssh -i .ssh/enric.pem [email protected]
    o bé:
    ssh -i .ssh/enric.pem [email protected]
  • Accedim a la màquina per consola SSH.

Connectant-nos amb Putty en Windows

En Windows:

  • Descarregueu putty i l'aplicació puttygen.
  • Transformeu l'arxiu .pem al format .ppk (amb el puttygen).
    • OJU! No creeu un altre parell de claus. Heu de fer un IMPORT
      Conversions->Import Key
  • Configureu el putty per autenticar-se amb l'arxiu .ppk i l'usuari "ubuntu" a la màquina amb la IP que heu configurat.
    Connection -> Data -> Auto-login username (posem "ubuntu")
    Connection -> SSH -> Auth -> Private key file for authentication (posem el nostre .ppk)
  • Accedim a la màquina virtual AWS per SSH.


Instal·lant Apache

  • Obriu el port 80 (HTTP) per poder accedir al servei web:
    Management Console -> EC2 -> Security Group -> (clica el grup on hagis posat la teva instància) -> Inbound -> + port HTTP
  • Instal·leu l'apache.
    sudo apt-get install apache2
  • Comproveu que podeu visualitzar l'Apache. Si en el teu centre hi ha un proxy que prohibeix accedir a la web per IP, prova de fer-ho desde el mòbil. Apunta el navegador a:
    http://<nova_elastic_ip>
  • Pots instal·lar altres serveis necessaris: php5, phpmyadmin, mysql, etc.

Domini

  • Crear un domini (gratuït a www.freenom.com o pagant un .com)
  • Configurar el DNS de .dot.tk a la elastic IP que heu configurat.

...i ale! A gaudir!... :)


Activant memòria virtual

Per algunes aplicacions podríem necessitar memòria virtual o swap, però les màquines EC2 inicialment no en porten.

Si et cal, pots utilitzar aquest tutorial per afegir memòria virtual a un EC2.


Creant instàncies Windows

Enlloc de la instància Ubuntu que hem creat, també tens la opció de crear una màquina Windows al núvol.

Tingues en compte que si tens la Free Tier de AWS podràs utilitzar una màquina Linux i una Windows. Però ULL! si es tracta del programa educatiu AWS Educate, crear una nova màquina mermarà els teus recursos, que s'esgotaran més aviat. Tot i així, si vols crear la màquina a mode de test i tenir-la un parell de dies per provar, és assumible.

  1. Crea la nova instància de Windows Base.
    MOLT IMPORTANT: Recorda de generar un parell de claus SSH o aprofitar les que ja tens.
  2. Segueix aquest tutorial per connectar-te a la màquina Windows. Hi ha moltes explicacions, però si ja estas familiaritzat amb AWS es poden resumir amb:
    • Comprova que tens el port RDP obert (3389)
    • Apunta't la IP de la teva màquina
    • A la AWS Console busca la teva instància Windows i fes "Connect" (amb el botó dret mateix)
      AWS Console -> EC2 -> Instances -> Connect
    • La finestra et demanarà que introdueixis el teu arxiu de clau privada .pem , quan ho facis podràs desencriptar la contrasenya.
    • Amb la IP de la màquina, l'usuari Administrator i la contrasenya obtinguda, pots utilitzar qualsevol client RDP per connectar-te a la teva instància Windows.