Diferència entre revisions de la pàgina «AWS: Amazon Web Services. Cloud»
| (Hi ha 4 revisions intermèdies del mateix usuari que no es mostren) | |||
| Línia 32: | Línia 32: | ||
</pre> | </pre> | ||
Ara ja m'he de poder connectar via ssh. El public DNS és: | Ara ja m'he de poder connectar via ssh. El public DNS és: | ||
| − | *ec2- | + | *ec2-3-91-76-69.compute-1.amazonaws.com |
<pre> | <pre> | ||
$ chmod 400 joan2.pem | $ chmod 400 joan2.pem | ||
| − | $ ssh -i "joan.pem" ubuntu@ec2- | + | $ ssh -i "joan.pem" ubuntu@ec2-3-91-76-69.compute-1.amazonaws.com |
</pre> | </pre> | ||
i ja puc entrar. Puc utilitzar ''scp'' per enviar fitxers al servidor. Recordar que quan acabi l'he d'apagar. | i ja puc entrar. Puc utilitzar ''scp'' per enviar fitxers al servidor. Recordar que quan acabi l'he d'apagar. | ||
| Línia 77: | Línia 77: | ||
Ja hem de poder entrar al mysql des del portàtil (des d'una màquina remota). I podem carregar una base de dades remotament. | Ja hem de poder entrar al mysql des del portàtil (des d'una màquina remota). I podem carregar una base de dades remotament. | ||
<pre> | <pre> | ||
| − | mysql -h | + | mysql -h database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com -P 3306 -u admin -p |
| − | mysql -h | + | mysql -h database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com -u admin -p langtrainer < /home/joan/copia_langtrainer_200902.dmp |
</pre> | </pre> | ||
I ara podem executar un script. El següent codi detecta si el script l'estem executant des de la shell o des del navegador: | I ara podem executar un script. El següent codi detecta si el script l'estem executant des de la shell o des del navegador: | ||
| Línia 127: | Línia 127: | ||
?> | ?> | ||
</pre> | </pre> | ||
| + | ==Aturar la màquina quan arrenqui (TBD)== | ||
| + | La instància RDS està per defecte encesa. Si l'apaguem, al cap d'una setmana arrenca. | ||
| + | |||
| + | Per evitar-ho, es pot programar una funció que l'apagui automàticament. | ||
| + | *https://dzone.com/articles/create-an-aws-lambda-function-to-stop-and-start-an | ||
=Màquina EC2 a AWS. LAMP (servei web i base de dades)= | =Màquina EC2 a AWS. LAMP (servei web i base de dades)= | ||
| Línia 171: | Línia 176: | ||
Ara ja tenim l'Apache funcionant: | Ara ja tenim l'Apache funcionant: | ||
| − | *http://ec2- | + | *http://ec2-3-91-76-69.compute-1.amazonaws.com |
<pre> | <pre> | ||
cd /var/www/html | cd /var/www/html | ||
| Línia 177: | Línia 182: | ||
</pre> | </pre> | ||
i ja puc executar el meu petit script: | i ja puc executar el meu petit script: | ||
| − | http://ec2- | + | *http://ec2-3-91-76-69.compute-1.amazonaws.com/llista_langtrainer.php |
| + | =Tancar la sessió= | ||
| + | Quan acabem la sessió, recordar tancar la màquina EC2. | ||
{{Autor}}, setembre 2020, gener 2021 | {{Autor}}, setembre 2020, gener 2021 | ||
Revisió de 17:11, 29 gen 2021
Contingut
Crear una màquina EC2 a AWS
Entro a la consola de AWS Management Console
Creo una màquina EC2: All services > Compute > EC2
Les màquines EC2 significa Elastic Computing, i forma part de la Capa gratuïta, 12 mesos gratis, 750 hores al mes (750 horas por mes de uso de instancias t2.micro con Linux, RHEL o SLES)
He de posar la informació de la target de crèdit per tal de poder escollir una instància.
Step 1: Choose an Amazon Machine Image (AMI) Escullo: Ubuntu Server 20.04 LTS (HVM), SSD Volume Type - ami-0885b1f6bd170450c (64-bit x86) / ami-054e49cb26c2fd312 (64-bit Arm) (tier elegible) Step 2: Choose an Instance Type Step 7: Review Instance Launch create a new key pair (joan.pem) Your instances are now launching Name: -- Instance ID: i-069719a8c85b6e2bd Instance state: Pending -> Running Instance type: t2.micro Status check Alarm status Availability Zone: us-east-1d Public IPv4 DNS: ec2-54-172-172-75.compute-1.amazonaws.com Public IPv4 address: 54.172.172.75
Ara ja m'he de poder connectar via ssh. El public DNS és:
- ec2-3-91-76-69.compute-1.amazonaws.com
$ chmod 400 joan2.pem $ ssh -i "joan.pem" ubuntu@ec2-3-91-76-69.compute-1.amazonaws.com
i ja puc entrar. Puc utilitzar scp per enviar fitxers al servidor. Recordar que quan acabi l'he d'apagar.
Base de dades langtrainer a AWS
Vull tenir un mysql en el cloud. Escullo Database RDS (RDS significa Amazon Relational Database Service)
De moment no tinc res:
- DB Instances (0/40)
create database. Engine options: escullo Standard create, MySQL
- Template: escullo Free Tier
- DB instance identifier: database-2
- username: admin
- password: k*******
Miro quines opcions té el stardard create, i entre elles hi ha el public: yes (important si vull accedir des d'un ordinador remot)
Finalment: create database
- end point: database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com
Com que al principi no havia fet que la BD fos accessible publicament, qualsevol opció la puc modificar a posteriori. Fer que la nostra instància sigui public accessible:
Hem d'obrir el port 3306 (seguretat > inbound rule). Podem posar detectar la meva IP.
Comprovar que ho hem fet bé: (el port 3306 està obert)
$ nmap -A -T4 -Pn -p3306 database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com Starting Nmap 7.80 ( https://nmap.org ) at 2021-01-26 21:40 CET Nmap scan report for database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com (54.162.80.115) Host is up (0.10s latency). rDNS record for 54.162.80.115: ec2-54-162-80-115.compute-1.amazonaws.com PORT STATE SERVICE VERSION 3306/tcp open mysql? ...
Ja hem de poder entrar al mysql des del portàtil (des d'una màquina remota). I podem carregar una base de dades remotament.
mysql -h database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com -P 3306 -u admin -p mysql -h database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com -u admin -p langtrainer < /home/joan/copia_langtrainer_200902.dmp
I ara podem executar un script. El següent codi detecta si el script l'estem executant des de la shell o des del navegador:
*php llista_langtrainer.php *http://localhost/M10_UF2/llista_langtrainer.php
llista_langtrainer.php:
<?php
header('Content-type: text/html; charset=utf-8');
$servername = "database-2.cdlwhdawd8sb.us-east-1.rds.amazonaws.com";
$username = "admin";
$password = "keiL2lai";
$dbname = "langtrainer";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
mysqli_query($conn, "SET NAMES 'utf8'");
$sql = "select word, translation from word w, translation t where w.id_word=t.id_word limit 10";
$resultset = mysqli_query($conn,$sql);
if (php_sapi_name()==='cli') { //executem des de la comanda
echo "VOCABULARI\n============\n";
while($row = mysqli_fetch_array($resultset)) {
echo $row['word'].": ".$row['translation']."\n";
}
} else { //executem des de la web
echo "<h2>VOCABULARI</h2>";
echo "<ul>";
while($row = mysqli_fetch_array($resultset)) {
echo "<li>".$row['word'].": ".$row['translation']."</li>";
}
echo "</ul>";
}
mysqli_close($conn);
echo php_sapi_name();
?>
Aturar la màquina quan arrenqui (TBD)
La instància RDS està per defecte encesa. Si l'apaguem, al cap d'una setmana arrenca.
Per evitar-ho, es pot programar una funció que l'apagui automàticament.
Màquina EC2 a AWS. LAMP (servei web i base de dades)
ssh -i "joan.pem" ubuntu@ec2-54-172-172-75.compute-1.amazonaws.com
Ja estic a la màquina remota.
També puc executar el script llista_langtrainer en la màquina remota: (la base de dades langtrainer està en una altra màquina de AWS)
$ sudo apt install php7.4-cli $ sudo apt install php7.4-mysql $ php llista_langtrainer.php VOCABULARI ============ deserve (to): merèixer, ser digne de weird: rar, extrany gills: branquies, agalles draw breath (to): agafar aire draw (to): dibuixar draw (to): Estirar (pull), treure, atraure snout: morro, hocico wound: ferida wound: ferir (pp, ferit) dismiss (to): acomiadar, destituir. Refusar
Instal·lar LAMP (Apache2 i MySQL Server)
Si no ho havíem fet, hem de permetre les connexions http. En la configuració de la màquina, anar a Configure Security Group. Add Rule and choose HTTP from the dropdown
La instal·lació d'Apache+MySQL és molt directa amb aquest enllaç:
sudo apt-get update sudo apt-get install apache2 sudo apt-get install php libapache2-mod-php php-mysql php-curl php-gd php-json php-zip php-mbstring sudo service apache2 restart
sudo apt-get install mysql-server sudo mysql_secure_installation
Ara ja tenim l'Apache funcionant:
cd /var/www/html sudo nano llista_langtrainer.php
i ja puc executar el meu petit script:
Tancar la sessió
Quan acabem la sessió, recordar tancar la màquina EC2.
creat per Joan Quintana Compte, setembre 2020, gener 2021