ͱ • IaC Infrastructure as Code ΠϯϑϥߏͷίʔυԽ + όʔδϣϯཧ + ϓϩϏδϣχϯάࣗಈԽ • CI Continuous Integration ϏϧυͱςετΛࣗಈԽ͠ɺසൟʹ࣮ߦ͢Δ͜ͱ • LoC Ladies first over Cloud first ΫϥυϑΝʔετΑΓϨσΟʔϑΝʔετ
t i o n ༻ ޠ ͱΓ͋͑ͣ͜ͷ3ͭΛ͓͚ͬͯ͑·͢ɻ • Ϧιʔε CloudFrontσΟετϦϏϡʔγϣϯɺS3όέοτͳͲɺݸʑͷ AWSαʔϏεΛද͢୯Ґ • ςϯϓϨʔτ ϦιʔεΛఆٛ͢ΔͨΊͷJSON·ͨYAMLܗࣜͷϑΝΠϧ • ελοΫ ςϯϓϨʔτʹैͬͯ࡞͞ΕͨϦιʔεશମΛද͢୯Ґ
r a m e t e r s : B u c k e t N a m e : # B u c k e t N a m e ͱ ͍ ͏ ཧ ໊ ͷ ύ ϥϝ ʔ λ Λ ࡞ T y p e : S t r i n g # ͜ ͷ ύ ϥϝ ʔ λ S t r i n g ܕ R e s o u r c e s : E x a m p l e B u c k e t : # E x a m p l e B u c k e t ͱ ͍ ͏ ཧ ໊ ͷ Ϧ ι ʔε Λ ࡞ T y p e : A W S : : S 3 : : B u c k e t # ͜ ͷ Ϧ ι ʔε S 3 όέ ο τ ܕ P r o p e r t i e s : B u c k e t N a m e : ! R e f B u c k e t N a m e # όέ ο τ ໊ Λ ઃ ఆ # B u c k e t N a m e ύ ϥϝ ʔ λ ͷ Λ ࢀ র O u t p u t s : E x a m p l e B u c k e t : # E x a m p l e B u c k e t ͱ ͍ ͏ ཧ ໊ ͷ ग़ ྗ Λ ࡞ V a l u e : ! R e f E x a m p l e B u c k e t # ग़ ྗ Λ ઃ ఆ # E x a m p l e B u c k e t Ϧ ι ʔε ͷ Λ ࢀ র
u d f o r m a t i o n d e p l o y \ - - t e m p l a t e - f i l e e x a m p l e . y m l \ ς ϯ ϓ Ϩ ʔ τϑ Ν Πϧ ໊ - - s t a c k - n a m e E x a m p l e \ ε λ ο Ϋ ໊ - - c a p a b i l i t i e s C A P A B I L I T Y _ I A M \ ঝ ೝ — p a r a m e t e r - o v e r r i d e s \ ύ ϥϝ ʔ λ B u c k e t N a m e = e x a m p l e - a b c d e f g h i j k l m W a i t i n g f o r c h a n g e s e t t o b e c r e a t e d . . W a i t i n g f o r s t a c k c r e a t e / u p d a t e t o c o m p l e t e S u c c e s s f u l l y c r e a t e d / u p d a t e d s t a c k - E x a m p l e < - ޭ ʂ
f o r m a t i o n d e s c r i b e - s t a c k s \ - - s t a c k - n a m e E x a m p l e \ ε λ ο Ϋ ໊ — - q u e r y S t a c k s [ 0 ] . O u t p u t s [ 0 ] . O u t p u t V a l u e \ - - o u t p u t t e x t ς Ωε τ ܗ ࣜ e x a m p l e - a b c d e f g h i j k l m < - E x a m p l e B u c k e t Ϧ ι ʔε ͷ
a a S O n - p re m i s e s ઃ ఆ Λ Ϧ ϙ δ τ Ϧ ʹ ί ʔ υ Ͱ ࣋ ͭ Tr a v i s C I , C i rc l e C I ͳ Ͳ C i rc l e C I E n t e r p r i s e , G i t L a b C I ͳ Ͳ ઃ ఆ Λ G U I Ͱ ߦ ͏ B a m b o o ͳ Ͳ J e n k i n s , B a m b o o ͳ Ͳ
. y m l ͷ ྫ Ϗϧυ͚ͩ͢ΔύΠϓϥΠϯΛ࡞ͬͯΈ·͢ɻ i m a g e : n o d e # Φ ϑΟ γ ϟϧ n o d e d o c k e r Πϝ ʔ δ Λ ༻ b u i l d : # Ϗ ϧ υ ͢ Δ δϣϒ s c r i p t : - y a r n i n s t a l l - y a r n b u i l d
s t a g e s : # s e t u p ͱ t e s t ͱ b u i l d ͱ ͍ ͏ ε ς ʔ δ Λ ఆ ٛ - s e t u p - t e s t - b u i l d c a c h e : # n o d e _ m o d u l e s σΟ Ϩ Ϋ τ Ϧ Λ Ω ϟ ο γ ϡ ͠ δϣϒ ؒ Ͱ ڞ ༗ ͢ Δ u n t r a c k e d : t r u e p a t h s : - n o d e _ m o d u l e s i n s t a l l : s t a g e : s e t u p # s e t u p ε ς ʔ δ 1 ൪ ʹ ఆ ٛ ͞ Εͯ ͍ Δ ͷ Ͱɺ s c r i p t : # · ͣ ͜ ͷ δϣϒ ͕ ࣮ ߦ ͞ Ε Δ - y a r n i n s t a l l
: t e s t # t e s t ε ς ʔ δ 2 ൪ ͳ ͷ Ͱɺ s c r i p t : # i n s t a l l δϣϒ ͷ ޙ ʹ ࣮ ߦ ͞ Ε Δ ɻ - y a r n l i n t # l i n t , t e s t δϣϒ ฒ ྻ ʹ ࣮ ߦ ͞ Ε Δ t e s t : s t a g e : t e s t s c r i p t : - y a r n t e s t b u i l d : s t a g e : b u i l d # b u i l d ε ς ʔ δ ࠷ ޙ ʹ ఆ ٛ ͞ Εͯ ͍ Δ ͷ Ͱɺ s c r i p t : # l i n t , t e s t δϣϒ ͷ ޙ ʹ ࣮ ߦ ͞ Ε Δ - y a r n b u i l d
e w : s t a g e : r e v i e w # ಛ ఆ ͷ δϣϒ ͩ ͚ Πϝ ʔ δ Λ ม ߋ ͢ Δ ͜ ͱ ͕ Մ ೳ i m a g e : c g s w o n g / a w s # A W S C L I Λ ༻ Ͱ ͖ Δ Πϝ ʔ δ ʹ ม ߋ s c r i p t : - s e t + e ; a w s c l o u d f o r m a t i o n d e p l o y … ; s e t - e - a w s s 3 s y n c b u i l d s 3 : / / … - - c a c h e - c o n t r o l " n o - s t o r e , n o - c a c h e " e 2 e : s t a g e : e 2 e s e r v i c e s : # δϣϒ ༻ ί ϯ ς φ ͱ ฒ ߦ ͯ͠ ผ ͷ ί ϯ ς φ Λ ى ಈ ͢ Δ ͜ ͱ ͕ Մ ೳ - s e l e n i u m / s t a n d a l o n e - c h r o m e s c r i p t : - y a r n e 2 e # Ϩ Ϗ ϡ ʔ ڥ ʹ ର ͯ͠ S e l e n i u m Ͱ ݕ ࠪ ͢ Δ ॲ ཧ