kix_009_20190429

26c17d2f70a57a8fd9a70885682fcd74?s=47 Yohei Kawahara
April 24, 2019
450

 kix_009_20190429

九州インフラ交流勉強会(Kixs) Vol.009 でお話させて頂く予定の資料でございます.

26c17d2f70a57a8fd9a70885682fcd74?s=128

Yohei Kawahara

April 24, 2019
Tweet

Transcript

  1. HTTP ϦμΠϨΫτͷઃఆΛ ίʔυԽͨ͠Β ͦ͜͸͔ͱͳ͘ḿͬͨͷّ ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ @inokappa

    ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 1
  2. ͜Ε͸ͷّ ͱ͋ΔαʔϏεͷچαΠτ͔Β৽αΠτʹϦμΠϨΫτઃఆΛ ߦͬͨࡍͷ͓࿩Ͱ͢. ग़དྷΔ͚ͩ Infrastructure as Code ͢Δ͜ ͱͰ, ΄΅଺Γͳ͘Ҡߦ͕ऴΘͬͨͷͰ,

    ฏ੒ΛৼΓฦΔͱڞʹ, ͦͷҰ෦Λ͝঺հͤͯ͞௖͖·͢. ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 2
  3. Θͨ͘͠͸ͷّ • ͔ͬͺ (@inokappa) • גࣜձࣾ YAMAP (2019 ೥ 1

    ݄ೖࣾ, ·ͩࢼ༻ظؒத) • ΠϯϑϥΤϯδχΞͰ͢ • ޷͖ͳ͏ͲΜ͸͝΅ఱ͏ͲΜͰ͢ ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 3
  4. YAMAP ͱ͸ͷّ ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 4

  5. ϦμΠϨΫτͷّ ΢ΣϒαΠτʹ͓͚ΔϦμΠϨΫτʢӳ: redirectʣͱ͸ɺ΢Σϒ αΠτͷӾཡʹ͓͍ͯɺࢦఆͨ͠΢Σϒϖʔδ͔Βࣗಈతʹଞ ͷ΢Σϒϖʔδʹసૹ͞ΕΔ͜ͱɻ (https://ja.wikipedia.org/wiki/ϦμΠϨΫτ_(HTTP) ΑΓ) ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ

    ฏ੒࠷ޙͷྱ ʙ 5
  6. example.co.jp -> example.com ͷّ ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 6

  7. ΍ͬͨ͜ͱͷّ 1. ϦμΠϨΫτର৅ͷચ͍ग़͠ 2. Infrataster ͰςετΛॻ͘ 3. ςετΛ࣮ߦ -> ϦμΠϨΫτઃఆΛॻ͘

    (Ϧϐʔτ) 4. ϦμΠϨΫτઃఆΛద༻ͨ͠ޙ, Infrataster Ͱςετ͢Δ ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 7
  8. 1. ϦμΠϨΫτର৅ͷચ͍ग़͠ͷّ ϦμΠϨΫτର৅ͷ URL Λચ͍ग़͢͜ͱ͸େมͳ࡞ۀͷҰͭͰ ͕ͨ͠, Google Spread Sheet Λ࢖͏ͱ,

    ҰॠͰ͋Δఔ౓ͷ URL Λநग़͢Δ͜ͱ͕ग़དྷ·ͨ͠ʂ =IMPORTXML("https://example.co.jp/", "//a/@href") ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 8
  9. 2. ςετΛॻ͘ͷّ (1) ϦμΠϨΫτର৅ϦετΛચ͍ग़ͨ͠Β, ϦετΛݩʹ infrataster Λ༻͍ͯςετίʔυΛॻ͖·ͨ͠. require 'spec_helper' #

    ϦμΠϨΫτআ֎ΛνΣοΫ describe "Errors Check #{path}" do describe server(properties['server'].to_sym) do describe http('https://' + server(properties['server'].to_sym).server.address + path, headers: headers) do it "responds as #{code}" do expect(response.status).to eq(code) end end end end ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 9
  10. 2. ςετΛॻ͘ͷّ (2) ςετ݅਺ = ର৅ϦμΠϨΫτ਺ͱͳΓ, ࠷ऴతʹ͸ 111 ݅΄Ͳ ͷϦμΠϨΫτ਺ͱͳΓ·ͨ͠.

    Finished in 27.11 seconds (files took 0.73366 seconds to load) 111 examples, 0 failures ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 10
  11. 3. ϦμΠϨΫτઃఆΛॻ͘ͷّ (1) ओʹ ALB ͷϦμΠϨΫτػೳΛར༻ͨ͠ҝ, ςετ܁Γฦ͠ͳ͕ Β, Terraform ͰϦμΠϨΫτઃఆΛॻ͍͍͖ͯ·͢.

    ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 11
  12. 3. ϦμΠϨΫτઃఆΛॻ͘ͷّ (2) ࢒೦ͳ͕Β, ALB ͷϦμΠϨΫτઃఆͰ͸ରԠग़དྷͳ͍෦෼͸ EC2 ্ͷ Nginx ʹ͓ئ͍͢Δҝ,

    ϦμΠϨΫτͰ͸ͳ͘సૹͷఆ ٛΛ࣮૷͍͖ͯ͠·ͨ͠. ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 12
  13. 4. ϦμΠϨΫτઃఆద༻ͱಈ࡞֬ೝͷّ • terraform apply Ұൃ • Nginx ͷ࠶ىಈ͸ AWS

    System Manager ͷ Run Command Λར༻ • ಈ࡞֬ೝͷಈ࡞֬ೝ͸ REDIRECT_YML=production.yml bundle exec rspec spec ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 13
  14. ·ͱΊͷّ ୯७ͳϦμΠϨΫτઃఆͰ΋, ͦΕͳΓͷ਺ͷઃఆ͕ඞཁͳ৔߹ ʹ͸, ίʔυԽ͓ͯ͘͜͠ͱͰ, ϊʔϛεҠߦ͢Δ͜ͱ͕ग़དྷͯ ແࣄʹྩ࿨ΛΉ͔͑Δ͜ͱ͕ग़དྷͦ͏Ͱ͢. ·ͨ, ΠϯϑϥͷৼΔ෣͍΋͋Δఔ౓͸ςετͰॻ͘͜ͱ͕ग़དྷ ΔͷͰ,

    ՄೳͳݶΓςετʹམͱ͠ࠐΜͰ͓͘ͱ࣮ࡍͷϦϦʔε ͷࡍʹ΋໾ʹཱͭ͜ͱؒҧ͍ແ͠Ͱ͍͟͝·͢. ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 14
  15. ͋Γ͕ͱ͏ͷّ ฏ੒, ΑΖ͘͠ྩ࿨. ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 15

  16. ͓·͚ͷّ (1) ຊࢿྉͰग़͖ͯͨϓϩμΫτ. • https://github.com/ryotarai/infrataster • https://github.com/rspec/rspec • https://github.com/hashicorp/terraform •

    https://github.com/nginx/nginx • AWS System Manager ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ 16
  17. ͓·͚ͷّ (2) ໌೔, JAWS-UG ෱Ԭͷ΋͘΋͘ձΛ΍Γ·͢. ۝भΠϯϑϥަྲྀษڧձ(Kixs) Vol.009 ʙ ฏ੒࠷ޙͷྱ ʙ

    17