aws ami use-cases
TRANSCRIPT
web. mobile. agile.
One AMI To Rule Them All
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ő
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
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
web. mobile. agile.
AMI környezetünk
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
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
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á
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
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)
web. mobile. agile.
Instance vagyok, mit csináljak?
• Mit kell csinálnom?
• CLOUD_STACK = web
• Milyen környezetben vagyok?
• CLOUD_DEV_PHASE = live
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
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
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
web. mobile. agile.
Köszi a figyelmet!