Hvordan lage AWS AMI

Hvordan lage AWS AMI

Frisk og fruktig kaffe fra Stockfleths med smak som er søt, floral og sitron.
Suke - Quto

Frisk og fruktig kaffe fra Stockfleths med smak som er søt, floral og sitron.

Hva skal jeg med et AMI?

Et serverimage inneholder operativsystem og basisprogramvare som du trenger på serverne dine. Github repoet inneholder foreløpig:

  • MongoDB oppsatt med replikering og voter.
  • MQTT Broker som brukes til mottak av “meldinger” fra IoT dingser. Jeg bruker denne til å ta i mot data fra NodeMCU devicene jeg lager: Værstasjoner, dosensorer, lysmålere, strømmålere, osv, osv.
  • NGINX m/Letsencrypt oppsett Her har du en reverse proxy som er satt opp til å enkelt kunne gi deg https på nettsidene dine.
  • Node.js basis server som kan brukes til alle Node.js ting du lager. Jeg bruker denne til alle nettsidene og APIene jeg har.
  • Simple Blog serveren min. Dette er en super enkel blogserver som ikke krever database. Alt lagres i Markdown filer og er skalerbart helt inn i evigheten.

Hvilke image savner du?

1. Opprett AWS konto

Det første du må gjøre er å opprette en konto ved å gå til siden: https://eu-west-1.console.aws.amazon.com/console/signup?region=eu-west-1

Det er viktig at du fullfører registreringen og legger inn et betalingskort. Uten dette så vil ikke denne oppskriften virke.

Når kontoen din er klar kan du fortsette videre i denne oppskriften.

1.1 Opprette AWS bruker

  1. Gå til siden https://console.aws.amazon.com/iam/home?region=eu-west-1#/users
  2. Opprett en bruker med adminrettigheter.
  3. Ta vare på security credentials. Du trenger dem i neste steg.

1.2 Installere AWS CLI

Før du går videre må du installere AWS CLI. Gå til siden https://aws.amazon.com/cli/ og følg instruksjonene for ditt operativsystem.

1.3 Legg til security credentials for AWS CLI

Nå trenger du security credentials fra steget over. Opprett eller endre filen ~/.aws/credentials:

$ emacs ~/.aws/credentials
[minkonto]
aws_access_key_id = ****************5AA
aws_secret_access_key = ****************ybXB

Dersom du ikke har Emacs så kan du selvsagt bruke en annen editor.

1.4 Konfigurere AWS CLI

AWS CLI trenger å vite et par ting angående regioner og format før du kan fortsette. Slik gjør du:

$ aws configure --profile minkonto
AWS Access Key ID [****************5AA]:
AWS Secret Access Key [****************ybXB]:
Default region name [None]: eu-west-1
Default output format [None]:

1.5 Opprette nøkkelpar (key pair) for EC2 login

Dette nøkkelparet trenger du for å kunne logge inn på dine EC2 servere. Ta godt vare på denne filen og lagre den på et sikkert sted. Du kommer til å få bruk for den i lang tid fremover. Alle som har denne filen vil kunne logge inn på serverne uten passord.

Dersom du ønsker å dele filen med noen andre er det viktig at du ikke sender den via e-post eller chat. Bruk en sikker overføring som feks keybase.io.

$ aws ec2 create-key-pair --profile minkonto --key-name minkonto-ec2-default --output text > ~/.ssh/minkonto-ec2-default.pem

Så trenger du å rydde litt opp i filen:

$ emacs ~/.ssh/minkonto-ec2-default.pem
# Remove all outside:
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

Tilslutt så må du gjøre filen ulesbar for alle bortsett fra deg:

$ chmod 400 ~/.ssh/minkonto-ec2-default.pem

2. Hente ned koden fra Github

Koden i repoet mitt på Github er ment som et basisrammeverk for å opprette AMIer. Dersom du ønsker så kan du redigere malfilene og komme med enn PR så skal jeg kikke på det.

Slik gjør du for å komme i gang:

$ mkdir ~/Projects/
$ git clone https://github.com/5orenso/aws-ami-creation.git

Jeg blir veldig ❤️ hvis du bidrar til repoet på Github. Jeg trenger flere maler til nye server image. Si fra så hjelper jeg deg i gang.

2.1 Opprette rolle for AMI oppretting

Når du har lastet ned koden så er du klar til å opprette en rolle som brukes i forbindelse med AMI opprettingen.

$ cd ~/Projects/aws-ami-creation
$ bash ./create-ami-creator-role.sh -p minkonto

2.2 Opprette standard AMI

Nå er du klar til å lage ditt første AMI. Eksemplet tar for seg oppretting av et Node.js basis AMI.

$ bash ./create-ami.sh \
    -p minkonto \
    -u ami-templates/ami-template-node.sh \
    -k minkonto-ec2-default \
    -i role-ami-creator

Alle artiklene i denne serien:

Følg med på Facebook-siden min for å få med deg alle artiklene.