Hvordan lage AWS AMI

Hvordan lage AWS AMI

Ditt eget skreddersydde server image

*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.