AWS: Amazon Web Services

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

AWS és un servei de Amazon basat en Ubuntu Cloud on pots gestionar diverses màquines virtuals (instàncies) corrent diferents versions de Linux o Windows.

És interessant que (a data d'Abril de 2012) hi ha una versió free durant 1 any del AWS.

Els passos necessaris per poder posar en marxa la nostra màquina són els següents (farem un primer exemple amb el servidor web Apache).

Quick reference


Introducció

Tenim 2 maneres d'introduir-nos a AWS:

  1. 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.
  2. 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.


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.


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.

Seguretat

És molt important:

  • Crear contrasenyes segures, difícilment endevinables.
  • 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.
  • No activar contrasenyes per SSH, només connexions amb SSH keys.
  • 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:

  • Visitar regularment el nostre compte AWS i comprovar els càrrecs que es preveuen pel mes vinent.
  • 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ó.


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.
  • 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.dot.tk o pagant un .com)
  • Configurar el DNS de .dot.tk a la elastic IP que heu configurat.

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