Fusionner page AWS

This commit is contained in:
Alexis Ben Miloud--Josselin 2024-04-09 16:21:36 +02:00
parent c03afd1faf
commit 6e604cfac4
4 changed files with 149 additions and 160 deletions

View file

@ -1,5 +1,5 @@
---
categories: cloud amazon aws ec2
categories: cloud amazon aws ec2 s3 awscli
title: Howto AWS
...
@ -26,6 +26,10 @@ Un Security Group est équivalent à un pare-feu pour un ensemble d'instances (E
* <https://console.aws.amazon.com/ec2/>
* <http://alestic.com/2011/02/ec2-change-type>
## Présentation
Amazon Elastic Compute Cloud (Amazon EC2) est la partie système pure (*compute*).
## Opération sur les instances EC2
### Installation de l'API d'Amazon EC2
@ -57,6 +61,10 @@ bin/ec2-describe-images -a
~~~
NOTE : pour exécuter les commandes EC2, il faut se trouver à la racine du répertoire d'installation.
## AMI Debian
Nous préférons utiliser les AMI préparées par l'équipe Debian. Leurs identifiants sont disponibles sur le [Wiki Debian](https://wiki.debian.org/Cloud/AmazonEC2Image), en particulier celles pour [Stretch](https://wiki.debian.org/Cloud/AmazonEC2Image/Stretch).
### Stocker une AMI sur un EBS
Voici la procédure à suivre :
@ -312,8 +320,148 @@ Sur les frontaux web il faudra penser à mettre en place le mod remoteip pour Ap
Les instances EC2 sont limitées en envoi de mail par le port 25. Il est possible de demander la levée de ces limites : <https://aws.amazon.com/fr/premiumsupport/knowledge-center/ec2-port-25-throttle/>
## Meta-données
Une instance EC2 peut accéder à un ensemble de méta-données sur elle-même.
Elles sont accessible en HTTP par nom d'hôte (`instance-data`) ou adresse IP (`169.254.169.254`).
~~~
$ wget -q -O - http://instance-data/latest/meta-data/instance-id
i-0a534900aa4c582d7
~~~
La liste des informations accessibles :
* ami-id
* ami-launch-index
* ami-manifest-path
* block-device-mapping/
* events/
* hostname
* identity-credentials/
* instance-action
* instance-id
* instance-type
* local-hostname
* local-ipv4
* mac
* metrics/
* network/
* placement/
* profile
* public-hostname
* public-ipv4
* public-keys/
* reservation-id
* security-groups
Il est également possible d'y accéder via un outil plus haut niveau, généralement préinstallés sur les images d'Amzon, ou disponibles via le paquet `cloud-guest-utils`.
~~~
$ ec2metadata
ami-id: ami-0539351fee4a5a3b1
ami-launch-index: 0
ami-manifest-path: (unknown)
ancestor-ami-ids: unavailable
availability-zone: ap-southeast-1a
block-device-mapping: ami
ebs1
root
instance-action: none
instance-id: i-0a534900aa4c582d7
instance-type: t2.medium
local-hostname: ip-172-27-22-121.ap-southeast-1.compute.internal
local-ipv4: 172.27.22.121
kernel-id: unavailable
mac: unavailable
profile: default-hvm
product-codes: unavailable
public-hostname: ec2-18-164-130-102.ap-southeast-1.compute.amazonaws.com
public-ipv4: 18.164.130.102
public-keys: ['ssh-rsa […]']
ramdisk-id: unavailable
reserveration-id: unavailable
security-groups: foo-bar
user-data: unavailable
~~~
Il est possible de restreindre la commande :
~~~
$ ec2metadata --instance-id
i-0a534900aa4c582d7
~~~
## FAQ
### Test accessibilité réseau
Pour vérifier l'accès à Amazon : <http://ec2-reachability.amazonaws.com/> et vérifier l'affichage de l'icône "vert".
# AWS CLI
Amazon propose un outil en ligne de commande pour interagir avec ses outils AWS.
* Documentation : https://docs.aws.amazon.com/cli/latest/index.html
## Installation
~~~
# apt install awscli
~~~
> On peut aussi installer `awscli` avec `pip`.
## Configuration
La commande `configure` de stocker dans un fichier les valeurs par défaut pour 4 options courantes.
~~~
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
~~~
Si vous renseignez vos identifiants, ils seront stockés dans `~/.aws/credentials`. Vérifiez bien les permissions d'accès à ce fichier car ces identifiants donnent accès à l'ensemble des actions possibles sur AWS.
Il est possible de créer un ou plusieurs profils pour pré-enregistrer des options par compte. Il faudra ensuitre indiquer le nom du profil à utiliser au lancement des commandes.
~~~
$ aws --profile XXX configure
[…]
$ aws --profile XXX [options] <command> <subcommand>
~~~
L'option `--output` permet d'indiquer si on souhaite une sortie en `text`, `xml` ou `json`.
Lors des appels à des commandes, il peut être nécessaire de fournir l'identifiant de l'instance, le nom de la région… Si la commande est exécutée depuis une instance AWS, certaines de ces infos sont dynamiquement accessibles depuis [des API de méta-données](#meta-données).
# Amazon S3
* Présentation : <https://aws.amazon.com/s3/>
* Documentation : <https://aws.amazon.com/documentation/s3/>
## Présentation
Amazon Simple Storage Service (Amazon S3) fournit un espace de
stockage via une interface REST (donc web). On peut y accéder via
l'espace client d'Amazon ou via des clients.
C'est de l'object storage. Donc chaque fichier qu'on met dedans est un
objet. Cet objet contient les données et les meta-données. On ne peut
pas créer de dossier mais les noms de objet peuvent contenir des slash
("/") et ainsi on peut créer une arborescence virtuelle. En réalité
tous les objets sont stockés au même niveau. On stocke les objets dans
un *bucket*.
Pour plus de détails voir la [page wikipedia en
anglais](https://en.wikipedia.org/wiki/Object_storage).
## Clients
* L'outil cli d'amazon <https://aws.amazon.com/cli/>
* S3cmd <https://github.com/s3tools/s3cmd>
* Minio Client (mc) <https://github.com/minio/mc>
* Rclone <https://rclone.org/s3/>

View file

@ -1,42 +0,0 @@
---
categories: Amazon
title: AWS CLI
...
Amazon propose un outil en ligne de commande pour interagir avec ses outils AWS.
* Documentation : https://docs.aws.amazon.com/cli/latest/index.html
## Installation
Il s'agit d'un ensemble de scripts Python qui sont installable avec PIP mais surtout via un paquet Debian :
~~~
# apt install awscli
~~~
## Configuration
La commande `configure` de stocker dans un fichier les valeurs par défaut pour 4 options courantes.
~~~
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:
~~~
Si vous renseignez vos identifiants, ils seront stockés dans `~/.aws/credentials`. Vérifiez bien les permissions d'accès à ce fichier car ces identifiants donnent accès à l'ensemble des actions possibles sur AWS.
Il est possible de créer un ou plusieurs profils pour pré-enregistrer des options par compte. Il faudra ensuitre indiquer le nom du profil à utiliser au lancement des commandes.
~~~
$ aws --profile XXX configure
[…]
$ aws --profile XXX [options] <command> <subcommand>
~~~
L'option `--output` permet d'indiquer si on souhaite une sortie en `text`, `xml` ou `json`.
Lors des appels à des commandes, il peut être nécessaire de fournir l'identifiant de l'instance, le nom de la région… Si la commande est exacutée depuis une instance AWS, certaines de ces infos sont dynamiquement accessible depuis des [API de méta-données](Amazon-EC2).

View file

@ -1,88 +0,0 @@
---
categories: Amazon
title: Amazon-EC2
...
* Présentation : <https://aws.amazon.com/ec2/>
* Documentation : <https://aws.amazon.com/documentation/ec2/>
## Présentation
Amazon Elastic Compute Cloud (Amazon EC2) est la partie système pure
(*compute*).
## AMI Debian
Nous préférons utiliser les AMI préparées par l'équipe Debian. Leurs identifiants sont disponibles sur le [Wiki Debian](https://wiki.debian.org/Cloud/AmazonEC2Image), en particulier celles pour [Stretch](https://wiki.debian.org/Cloud/AmazonEC2Image/Stretch).
## Meta-données
Une instance EC2 peut accéder à un ensemble de méta-données sur elle-même.
Elles sont accessible en HTTP par nom d'hôte (`instance-data`) ou adresse IP (`169.254.169.254`).
~~~
$ wget -q -O - http://instance-data/latest/meta-data/instance-id
i-0a534900aa4c582d7
~~~
La liste des informations accessibles :
* ami-id
* ami-launch-index
* ami-manifest-path
* block-device-mapping/
* events/
* hostname
* identity-credentials/
* instance-action
* instance-id
* instance-type
* local-hostname
* local-ipv4
* mac
* metrics/
* network/
* placement/
* profile
* public-hostname
* public-ipv4
* public-keys/
* reservation-id
* security-groups
Il est également possible d'y accéder via un outil plus haut niveau, généralement préinstallés sur les images d'Amzon, ou disponibles via le paquet `cloud-guest-utils`.
~~~
$ ec2metadata
ami-id: ami-0539351fee4a5a3b1
ami-launch-index: 0
ami-manifest-path: (unknown)
ancestor-ami-ids: unavailable
availability-zone: ap-southeast-1a
block-device-mapping: ami
ebs1
root
instance-action: none
instance-id: i-0a534900aa4c582d7
instance-type: t2.medium
local-hostname: ip-172-27-22-121.ap-southeast-1.compute.internal
local-ipv4: 172.27.22.121
kernel-id: unavailable
mac: unavailable
profile: default-hvm
product-codes: unavailable
public-hostname: ec2-18-164-130-102.ap-southeast-1.compute.amazonaws.com
public-ipv4: 18.164.130.102
public-keys: ['ssh-rsa […]']
ramdisk-id: unavailable
reserveration-id: unavailable
security-groups: foo-bar
user-data: unavailable
~~~
Il est possible de restreindre la commande :
~~~
$ ec2metadata --instance-id
i-0a534900aa4c582d7
~~~

View file

@ -1,29 +0,0 @@
---
categories: Amazon
title: Amazon-S3
...
* Présentation : <https://aws.amazon.com/s3/>
* Documentation : <https://aws.amazon.com/documentation/s3/>
# Présentation
Amazon Simple Storage Service (Amazon S3) fournit un espace de
stockage via une interface REST (donc web). On peut y accéder via
l'espace client d'Amazon ou via des clients.
C'est de l'object storage. Donc chaque fichier qu'on met dedans est un
objet. Cet objet contient les données et les meta-données. On ne peut
pas créer de dossier mais les noms de objet peuvent contenir des slash
("/") et ainsi on peut créer une arborescence virtuelle. En réalité
tous les objets sont stockés au même niveau. On stocke les objets dans
un *bucket*.
Pour plus de détails voir la
[page wikipedia en anglais](https://en.wikipedia.org/wiki/Object_storage).
# Clients
* L'outil cli d'amazon <https://aws.amazon.com/cli/>
* S3cmd <https://github.com/s3tools/s3cmd>
* Minio Client (mc) <https://github.com/minio/mc>