15
web. mobile. agile. One AMI To Rule Them All

AWS AMI Use-cases

Embed Size (px)

Citation preview

Page 1: AWS AMI Use-cases

web. mobile. agile.

One AMI To Rule Them All

Page 2: AWS AMI Use-cases

web. mobile. agile.

Mi az AMI• Amazon Machine Image

• olyan mint a .iso / .cue, stb. csak kicsit más DaemonTools nem játszik :)

• Virtuális gép ezzel indul

• Amazon Marketplace-en beszerezhető/vásárolható

• (Linux, Windows, stb.)

• Saját AMI gyártható

• futó instance állapota AMI-ként menthető

Page 3: AWS AMI Use-cases

web. mobile. agile.

Miért jó az AMI

• ASG új “gépeket” adott AMI-el indít

• komplett “gép” állapotot tartalmaz

• új alkalmazásverzió = új AMI

Page 4: AWS AMI Use-cases

web. mobile. agile.

AMIkor kezdjük• AMI kiválasztás az AWS Marketplace-en

• https://aws.amazon.com/marketplace

• 1935db Linux / Windows image

• Alap szolgáltatások telepítése, konfigurálása

• PHP, Java, Nginx, stb.

• Alkalmazáskörnyezet kialakítása

Page 5: AWS AMI Use-cases

web. mobile. agile.

AMI környezetünk

Page 6: AWS AMI Use-cases

web. mobile. agile.

Rendszer sajátosságai

• Egy alkalmazás, 4 funkció (web, upload, api, worker)

• Identikus éles és tesztkörnyezet

• Különböző skálázási szabályok

Page 7: AWS AMI Use-cases

web. mobile. agile.

Igényeink• Ne legyen környezetenként külön AMI

• a teszt minél inkább hasonlítson az éles környezetre

• Ne legyen “modulonként” külön AMI

• a környezete minden modulnak ugyanaz, a konfigok mások

• Az AMI tartalmazza mindig az alkalmazás adott verzióját

Page 8: AWS AMI Use-cases

web. mobile. agile.

Megoldás• Én mint instance, honnan tudom, hogy mit és hol

csináljak?

• Auto Scaling Group - User Data

• AWS EC2 API lehetőséget biztosít egyedi adatok megadásához

• Az ASG által indított instance eléri az információt

• ASGARD felületet ad hozzá

Page 9: AWS AMI Use-cases

web. mobile. agile.

User Data• export CLOUD_ENVIRONMENT=testjockey

• export CLOUD_MONITOR_BUCKET=

• export CLOUD_APP=testjockey

• export CLOUD_APP_GROUP=TJ

• export CLOUD_STACK=web

• export CLOUD_CLUSTER=testjockey-web-d0live

• export CLOUD_AUTO_SCALE_GROUP=testjockey-web-d0live-v047

• export CLOUD_LAUNCH_CONFIG=testjockey-web-d0live-v047-20141013122909

• export EC2_REGION=eu-west-1

• export CLOUD_DEV_PHASE=live

Page 10: AWS AMI Use-cases

web. mobile. agile.

User Data lekérése

• http-n lekérdezhető más instance adatokkal együtt

• legtöbb AMI automatikusan lekéri, akár futtatja (eval)

Page 11: AWS AMI Use-cases

web. mobile. agile.

Instance vagyok, mit csináljak?

• Mit kell csinálnom?

• CLOUD_STACK = web

• Milyen környezetben vagyok?

• CLOUD_DEV_PHASE = live

Page 12: AWS AMI Use-cases

web. mobile. agile.

Félautomata megoldás• CI Deploy = AMI készítés

• Tanulófázis:

• Alap AMI választás

• Kézi konfiggal BASE AMI létrehozás

• Deploy során alkalmazás aktuális verziójának “betöltése”, AMI mentése verziózva

Page 13: AWS AMI Use-cases

web. mobile. agile.

Automata megoldás

• CI Deploy = AMI készítés

• Nincs BASE AMI, bármely marketplace AMI automatikus kialakítása a deploy során

Page 14: AWS AMI Use-cases

web. mobile. agile.

Konklúzió

• 1 AMI - több szolgáltatás

• nincs konrkét linux disztribúcióhoz kötve (chef/docker használatakor)

• könnyen induló rendszerek

• nem a boot time része a rendszer kialakítása

Page 15: AWS AMI Use-cases

web. mobile. agile.

Köszi a figyelmet!