Slide 1

Slide 1 text

*OGSBTUSVDUVSFBT 3VCZ $PEF ͷݱঢ়֬ೝ 3PQQPOHJSC

Slide 2

Slide 2 text

TFMGJOUSPEVDUJPO UPTIJNBSV UPTIJNBSV@F 3BJMT%FWFMPQFS 3PQQPOHJSC0SHBOJTFS 5PTIJNBSV

Slide 3

Slide 3 text

ΞδΣϯμ w *OGSBTUSVDUVSFBT$PEFͷҙٛ w ߏ੒؅ཧπʔϧͷྺ࢙ͱ෼ྨ w *OGSBTUSVDUVSFBT$PEFͷΧόʔൣғ w $POpHVSBUJPOBT$PEF

Slide 4

Slide 4 text

*OGSBTUSVDUVSFBT$PEFͷҙٛ ΠϯϑϥߏஙखॱΛൿ఻ͷλϨԽͤ͞ͳ͍ खॱΛίʔυʹམͱͯ͠Πϯϑϥ΁ͷมߋΛτ ϥοΩϯά͢Δ खॱΛෆมʢJNNVUBCMFʣʹ͢Δ

Slide 5

Slide 5 text

ൿ఻ͷλϨ

Slide 6

Slide 6 text

ൿ఻ͷλϨ w ·ΔͰൿ఻ͷλϨͷΑ͏ʹܧ͗଍͠ܧ͗଍͠มߋ͕ ೖΓ୅ʑड͚ܧ͕Ε͖ͯͨαʔόʔ w ϝϯςφϯε͞Ε͍ͯΔ͔Ͳ͏͔·ΔͰΘ͔Βͳ͍ ʮαʔόʔߏஙखॱॻYMTʯ w Πϯϑϥ୲౰ऀͷΞλϚʹ͔͠ೖ͍ͬͯͳ͍Ӆ͠ຯ ʘ ?P? ʗ

Slide 7

Slide 7 text

ΠϯϑϥετϥΫνϟʔ ΛίʔυԽ͢Δ

Slide 8

Slide 8 text

ίʔυԽ͢Δͱ͍͏͜ͱ w ίʔυԽ͞ΕΔ w ➜(JUͰτϥοΫՄೳʹͳΔ w ➜(JUIVCͰϓϧϦΫՄೳʹͳΔ w ➜(JUIVCͰϨϏϡʔՄೳʹͳΔ w ➜ (JU)VC8PSLqPX

Slide 9

Slide 9 text

*NNVUBCMF *OGSBTUSVDUVSF

Slide 10

Slide 10 text

r$IBE'PXMFS l5SBTI:PVS4FSWFSTBOE#VSO:PVS$PEF*NNVUBCMF *OGSBTUSVDUVSFBOE%JTQPTBCMF$PNQPOFOUTz

Slide 11

Slide 11 text

*NNVUBCMF*OGSBTUSVDUVSF ,FZXPSET w *NNVUBCMFʢෆมʣ w %JTQPTBCMFʢ࢖͍ࣺͯʣ w 3FQSPEVDJCMFʢ࠶ݱՄೳʣ w *EFNQPUFODFʢႈ౳ੑʣ

Slide 12

Slide 12 text

*NNVUBCMF*OGSBTUSVDUVSF w "84 ($1Λ࢝Ίͱ͢Δ*BB4ొ৔ʹΑΓμΠφϛοΫͳ αʔόʔߏ੒͕Մೳͱͳͬͨ w Ϙλϯ̍ͭͰ্͛Լ͛͢Δαʔόʔ %JTQPTBCMFͳ αʔόʔ ஀ੜ w ΦʔτεέʔϦϯάͷԸܙΛڗड͢ΔͨΊʹ͸αʔόʔɾ ϓϩϏδϣχϯάࣗಈԽ࡞ۀ͕ඞཁ w ߏஙखॱΛ*NNVUBCMFʹ͠ɺ3FQSPEVDJCMFͳαʔ όʔ؀ڥʹ͢Δ *EFNQPUFODFΛ୲อ͢Δ

Slide 13

Slide 13 text

ߏ੒؅ཧπʔϧͷ ྺ࢙ͱ෼ྨ

Slide 14

Slide 14 text

ߏ੒؅ཧπʔϧͷྺ࢙ $ IFG 1VQQFU "OTJCMF 5FSSBGPSN *UBN BF

Slide 15

Slide 15 text

࣮૷ݴޠผ෼ྨ w 1VQQFU w $IFG w *UBNBF w 4FSWFSLJU 3VCZ w 5FSSBGPSN (P w "OTJCMF 1ZUIPO

Slide 16

Slide 16 text

දݱผ෼ྨ w "OTJCMF w 4FSWFSLJU :".- w 5FSSBGPSN w 1VQQFU w $IFG w *UBNBF 3VCZ )$- %4-

Slide 17

Slide 17 text

8IZ:".- w 9.-+40/ΑΓهड़͕ϥΫ w ಛ௃ΑΈ΍͍͢ɺ͔͖΍͍͢ɺΘ͔Γ΍͍͢ w Ұൠతʹ࢖ΘΕ͍ͯΔهड़ϑΥʔϚοτֶशίε τ͕௿͍ʂ

Slide 18

Slide 18 text

8IZ)$-

Slide 19

Slide 19 text

8IZ)$- ❌+40/μϝίϝϯτ͔͚ͳ͍ɻ͠ΜͲ͍ɻ ❌:".-΋μ ϝॳ৺ऀʹ͸ه๏Ή͔͍ͣ͠ʂ ❌3VCZͱ͔΋μϝࣗ༝౓ߴ͗͌͢ʂෳࡶ͗͌͢ʂ ̋)$-ΑΖ͍͠ɺͳΒ͹ಠࣗݴޠͩɻ ཁ໿

Slide 20

Slide 20 text

8IZ3VCZ w %4-ͷॻ͖΍͢͞ w એݴతͳهड़ w ࣗ༝౓͕ߴ͍ package 'nginx' do action :install end service 'nginx' do action [:enable, :start] end

Slide 21

Slide 21 text

*OGSBTUSVDUVSFBT$PEF ͷ֓೦੔ཧ

Slide 22

Slide 22 text

*OGSBTUSVDUVSFBT$PEF 1SPWJTJPOJOH5PPMDIBJO1SFTFOUBUJPO<1%'>

Slide 23

Slide 23 text

.BLFJU4JNQMF

Slide 24

Slide 24 text

4FSWFS$POpHVSBUJPO *OGSBTUSVDUVSFBT$PEF 4FSWFS4FUVQ "QQMJDBUJPO%FQMPZNFOU *OGSBTUSVDUVSFBT$PEF

Slide 25

Slide 25 text

$POpHVSBUJPO *OGSBTUSVDUVSFBT$PEF 4FUVQ *OGSBTUSVDUVSFBT$PEF %FQMPZNFOU $IFG *UBNBF "OTJCMF 5FSSBGPSN 1SPWJTJPOFS 1SPWJEFS $BQJTUSBOP "OTJTUSBOP

Slide 26

Slide 26 text

ຊ౰ʹશͯ͸ίʔυԽ ͞Εͨͷ͔ʁ

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

*OGSBTUSVDUVSFBT$PEF ͷΧόʔൣғ w *BB4͸Ծ૝αʔόҎ֎ʹ΋͞·͟·ͳαʔϏεΛఏ ڙ͍ͯ͠Δ w &-# 3%4 71$ 4 $MPVE'SPOU *". 4FDVSJUZ(SPVQFUD w ͦΕΒʹର͢ΔΦϖϨʔγϣϯΛ"84 .BOBHFNFOU $POTPMFͳͲͷ(6*Ͱ΍Δ΂͖ͳͷ͔ʁ

Slide 30

Slide 30 text

(6*$POpHVSBUJPOJTIBSEʜ w (6*ʹΑΔૢ࡞͸*NNVUBCMFͰ͸ͳ͍ w (6*͸มΘΔ͔΋͠Εͳ͍ w (6*ૢ࡞͸ϑΝδʔʢ໌֬ͳݴޠԽͰ͖ͳ͍ʣ w ॏཁͳઃఆΛ(6*೚ͤʹ͍͍ͯ͠ͷ͔ʁ w ➜ɹ͡Ό͋"1*Λୟ͚͹͍͍͡Όͳ͍ $POpHVSBUJPOBT$PEF

Slide 31

Slide 31 text

$POpHVSBUJPO $POpHVSBUJPOBT$PEF 4FUVQ %FQMPZNFOU *OGSBTUSVDUVSFBT$PEF 4FSWFS$POpHVSBUJPO 4FSWJDF$POpHVSBUJPO &-# 3PVUF *". 4FDVSJUZ(SPVQ 71$ 4 $MPVE'SPOU

Slide 32

Slide 32 text

શ͕ͯίʔυʹͳΔ

Slide 33

Slide 33 text

3PVUF$POpHVSBUJPO hosted_zone "example.com." do rrset "example.com.", "A" do ttl 300 resource_records( "127.0.0.1", "127.0.0.2" ) end end 1PXFSFECZ3PBEXPSLFS

Slide 34

Slide 34 text

resource "aws_route53_record" "www" { zone_id = "${aws_route53_zone.primary.zone_id}" name = "www.example.com" type = "A" ttl = "300" records = ["${aws_eip.lb.public_ip}"] } 1PXFSFECZ5FSSBGPSN "841SPWJEFS 3PVUF$POpHVSBUJPO

Slide 35

Slide 35 text

શ͕ͯίʔυʹͳΔ

Slide 36

Slide 36 text

%BUBEPH"MFSU$POpHVSBUJPO monitor "Check load avg", :type=>"metric alert" do query "avg(last_5m):avg:ddstat.load_avg.1m{host:i-XXXXXXXX} > 1" message "@[email protected]" options do locked false new_host_delay 300 notify_no_data true no_data_timeframe 2 notify_audit true silenced({}) end end 1PXFSFECZ#FSLEPH

Slide 37

Slide 37 text

(JUIVC.FNCFS.BOBHFNFOU resource "github_membership" "membership_for_some_user" { username = "SomeUser" role = "member" } resource "github_repository" "example" { name = "example" description = "My awesome codebase" private = true } resource "github_repository_collaborator" "a_repo_collaborator" { repository = "our-cool-repo" username = "SomeUser" permission = "admin" } 1PXFSFECZ5FSSBGPSNʢ(JUIVC1SPWJEFSʣ

Slide 38

Slide 38 text

શ͕ͯϓϧϦΫͱͳΓ ϨϏϡʔՄೳʹͳΔ

Slide 39

Slide 39 text

4$POpHVSBUJPO 1PXFSFECZ5FSSBGPSN "841SPWJEFS

Slide 40

Slide 40 text

*"..BOBHFNFOU 1PXFSFECZ.JBN

Slide 41

Slide 41 text

શ͕ͯίʔυʹͳΔ w ϨϏϡʔʹΑΔνΣοΫମ੍ʹΑΓɺΑΓ҆શͳ $POpHVSBUJPOΦϖϨʔγϣϯΛ࣮ݱ w $*αʔϏεͱ࿈ܞͤͯ͞ςετɾ$%ͷࣗಈԽ΋Մ ೳͱͳΔ

Slide 42

Slide 42 text

·ͱΊ w ίʔυԽ͢Δ͜ͱʹΑΓ(JUIVCϫʔΫϑϩʔʢϓϧ ϦΫˠϨϏϡʔˠϚʔδʣʹ৐Δ͜ͱ͕Ͱ͖ͯϋο ϐʔ w *OGSBTUSVDUVSFBT$PEF4FSWFS$POpHVSBUJPOBT $PEF4FSWJDF$POpHVSBUJPOBT$PEF

Slide 43

Slide 43 text

ࢀߟࢿྉ w *UBNBF*OGSBBT$PEFݱঢ়֬ೝձ IUUQTTQFBLFSEFDLDPNSZPUBSBJ JUBNBFJOGSBBTDPEFYJBO[IVBOHRVFSFOIVJ w 3FCVJME*NNVUBCMF*OGSBTUSVDUVSF IUUQSFCVJMEGN w *OGSBTUSVDUVSFBT$PEF4QFBLFS%FDL IUUQTTQFBLFSEFDLDPNOBPZB JOGSBTUSVDUVSFBTDPEF w *OGSBTUSVDUVSFBT$PEF࠶ߟ IUUQNJ[[ZPSHCMPH w 5SBTI:PVS4FSWFSTBOE#VSO:PVS$PEF*NNVUBCMF*OGSBTUSVDUVSFBOE %JTQPTBCMF$PNQPOFOUT IUUQDIBEGPXMFSDPN JNNVUBCMFEFQMPZNFOUTIUNM w *OGSBTUSVDUVSF"T$PEF IUUQNBSUJOGPXMFSDPNCMJLJ *OGSBTUSVDUVSF"T$PEFIUNM