Slide 1

Slide 1 text

ʙՆͷ೔ͷSPBEUPʙ !QZBNB(.01FQBCP *OD ϖύϘςοΫΧϯϑΝϨϯε $/#VJMEQBDLT͕ ࡞Δະདྷ

Slide 2

Slide 2 text

γχΞɾϓϦϯγύϧΤϯδχΞ ࢁԼ࿨඙!QZBNB ٕज़෦ٕज़ج൫νʔϜ

Slide 3

Slide 3 text

CVJMEFSTDPO ߴूੵίϯςφϗεςΟϯάʹ͓͚ΔϘτϧωοΫͱͦͷղ๏

Slide 4

Slide 4 text

-JOVYͷ౷߹Ϣʔβʔ؅ཧ 50.-ܗࣜ )551+40/ -%"1΍%#ͷ؅ཧ͕ෆཁ ѻ͍΍͍͢ϑΥʔϚοτ ൚༻ੑɾ֦ுੑ IUUQTTUOTKQ

Slide 5

Slide 5 text

-JOVY MJCOTTTUOT JEFYBNQMF VJE FYBNQMF HJE FYBNQMF HSPVQT FYBNQMF VTFS OBNFFYBNQMF <\ OBNFFYBNQMF JE ^> γϯϓϧͰࣗ༝౓ͷߴ͍ઃܭ αʔό࣮૷΋͍ΘΏΔ3&45GVM෩ɺMJCOTTTUOT͔Β೚ҙͷίϚϯυΛ࣮ߦͨ͠ ݁ՌΛར༻Ͱ͖Δ࢓૊Έ΋͋ΔͷͰΫϥΠΞϯτଆͷ֦ு΋ࣗ༝ࣗࡏ JE LFZT<TTI> HSPVQ@JE TUOTDPOG

Slide 6

Slide 6 text

EPDLFSSVOOBNFTUOTETUOTTUOTMBUFTU EPDLFSFYFDJUTUOTCJOCBTI JEFYBNQMF VJE FYBNQMF HJE FYBNQMF HSPVQT FYBNQMF ͙͢ʹࢼͤ·͢ DVSMGT4-IUUQTSFQPTUOTKQTDSJQUTZVNSFQPTIcTI DVSMGT4-IUUQTSFQPTUOTKQTDSJQUTBQUSFQPTIcTI %PDLFS $FOU04 VCVOUVEFCJBO

Slide 7

Slide 7 text

ϗεςΟϯάࣄۀ &$ࢧԉࣄۀ ϋϯυϝΠυɾͦͷଞࣄۀ

Slide 8

Slide 8 text

೥ ϩϦϙοϓʂϨϯλϧαʔόαʔϏεఏڙ։࢝ ೥ ೥ ೥ ϔςϜϧαʔϏεఏڙ։࢝ 1ࢁ͕ϖύϘʹೖࣾʂʂ̍ ೥݄೔ ࣛࣇౡݝग़ਫࢢʹ͓͍ͯ1ࢁര஀ʂʂ̍ ೥ ݱࡏɾ૑ۀ೥໨ ϜʔϜʔυϝΠϯαʔϏεఏڙ։࢝

Slide 9

Slide 9 text

$MPVE/BUJWF #VJMEQBDLT

Slide 10

Slide 10 text

$MPVE/BUJWF#VJMEQBDLTʹ͍ͭͯ %PDLFSpMFͱͷൺֱ ϖύϘͰͷ׆༻ࣄྫ $MPVE/BUJWF#VJMEQBDLT͕ى͜͢มԽ ๻ͷ൒ੜɺՄѪ͔ͬͨ༮গظʹ͍ͭͯ ࠓ೔࿩͢͜ͱ

Slide 11

Slide 11 text

w IFSPLV΍$MPVE'PVOESZͰ։ൃ͞Ε͖ͯͨίϯςφ
 Ϗϧυͷ࢓૊Έ w ΞϓϦέʔγϣϯίʔυΛݩʹίϯςφΠϝʔδΛੜ੒ w ྫDPNQPTFSKTPO͕͋Ε͹1)1ΛΠϯετʔϧ͢Δ #VJMEQBDL

Slide 12

Slide 12 text

#VJMEQBDLXJUIIFSPLV IUUQTKQIFSPLVDPNFMFNFOUTCVJMEQBDLT

Slide 13

Slide 13 text

#VJME1BDLͷ՝୊ IFSPLV΍$MPVE'PVOESZͷ࣮૷Ͱ ૬ޓʹඍົʹಈ͔ͳ͍͜ͱ͕͋Δ

Slide 14

Slide 14 text

w ೥ʹ1JWPUBMͱIFSPLVʹΑͬͯ։࢝ w $/$'$MPVE/BUJWF4BOECPY΁௥Ճ w ݱঢ়͸7FSTJPȌͷ4QFD͕ϦϦʔε͞Ε͍ͯΔ w ඪ४Խ͞Εͨ4QFDʹج͖ͮ0$*ΠϝʔδΛ࡞੒Մೳ $MPVE/BUJWF#VJMEQBDLT $/#

Slide 15

Slide 15 text

w ۀքඪ४Խஂମ w 0$*Wͱ͍͏ίϯςφͷ3VOUJNF4QFDͱ *NBHF 'PSNBU4QFDΛఆΊͨ w 0$*ΠϝʔδͰ͋Ε͹0$*Wʹ४ڌ͍ͯ͠Δ؀ڥͰಈ࡞͢ Δ͜ͱ͕Ͱ͖Δ 0$* 0QFO$POUBJOFS*OJUJBUJWF

Slide 16

Slide 16 text

w MJGFDZDMF QBDLͷࢀߟ࣮૷͕HJUIVCDPNCVJMEQBDLʹͯ ެ։͞Ε͍ͯΔɻQBDLίϚϯυ͸8SBQQFSͰ࣮ଶ͸$/# ͷ4QFDΛ࣮૷ͨ͠MJGFDZDMF͕࣮ߦ͞ΕΔ 5PPMT QBDL DPOUBJOFSQSPDFTT MJGFDZDMF &YFDVUF

Slide 17

Slide 17 text

#VJMEQBDLMJGFDZDMF IUUQTXXXDODGJPCMPHDODGUPIPTUDMPVEOBUJWFCVJMEQBDLTJOUIFTBOECPY

Slide 18

Slide 18 text

3VCZΠϝʔδΛ #VJMEͯ͠ΈΔ

Slide 19

Slide 19 text

ৄղ $MPVE/BUJWF#VJMEQBDL

Slide 20

Slide 20 text

֓ཁ

Slide 21

Slide 21 text

ϏϧυͷྲྀΕ "QQMJDBUJPO $PEF #VJMEFS*NBHF SVCZDOC OPEFDOC 3VO*NBHF "QQMJDBUJPO $PEF SVCZMBZFS QBDLCVJME QIQDOC CVJME CVJME FYQPSU #VJMEFS*NBHFͰ"TTFUTΛ#VJME͠ɺ ࡞੒͞ΕͨMBZFSΛ3VO*NBHFʹॏͶΔ

Slide 22

Slide 22 text

w ͲͷCVJMEQBDLΛ࢖͏ w ॱং͸ w CVJMEJNBHF͸ w SVOJNBHF͸ #VJMEFS*NBHFͷఆٛ

Slide 23

Slide 23 text

% pack create-builder \ --builder-config builder.toml $ docker push #VJMEFSͷCVJME #VJMEFSࣗ਎΋Πϝʔδͱͯ͠
 CVJMEͰ͖Δ͔ΒՄൖੑ͕ߴ͍

Slide 24

Slide 24 text

#VJMEQBDLTͷ࣮ߦ SVCZDOC CJOEFUFDU CJOCVJME #VJMEQBDL಺ʹ͋ΔEFUFDU CVJME͕ MJGFDZDMF͔Β࣮ߦ͞ΕΔ QIQDOC CJOEFUFDU CJOCVJME OPEFDOC CJOEFUFDU CJOCVJME MJGFDZDMF 3VCZ͸Πϯετʔϧ͢Δʁ 1)1ίϯύΠϧ͠·͢Ͷ

Slide 25

Slide 25 text

MBZFSTEJS MBZFST SVCZDOC QIQDOC #VJME*NBHFʹ૊Έࠐ·Εͨ$/#͸ MBZFSTσΟϨΫτϦΛى఺ʹ഑ஔ͞ΕΔ EFUFDU CJO EFUFDU CJO

Slide 26

Slide 26 text

#VJMEFS*NBHF ಄ͷ੔ཧ MBZFST SVCZDOC QIQDOC #VJMEFS*BNBHFͷதʹ͋Δɺ MBZFSTσΟϨΫτϦʹ$/#͕഑ஔ͞Εɺ MJGFDZDMF͕ݺͼग़͢ EFUFDU CJO EFUFDU CJO MJGFDZDMF

Slide 27

Slide 27 text

*OTJEF#VJMEQBDL

Slide 28

Slide 28 text

%FUFDU #VJME1BDLΛϏϧυʹར༻͢Δ͔ʁ 1BTT GBJM PSFSSPS ͷΑ͏ʹ ໭Γ஋Ͱར༻Մ൱ɺΤϥʔΛฦ٫͢Δ

Slide 29

Slide 29 text

%FUFDU ґଘؔ܎Λࣔͨ͢Ίʹ #VJME1MBOΛఆٛ͢Δ͜ͱ͕Ͱ͖Δ ྫCVOEMFSΛར༻͢Δʹ͸ 3VCZ͕ඞཁ [[provides]] name = "bundler" [[requires]] name = "ruby" version = "2.6.3"

Slide 30

Slide 30 text

w ίϯςφΠϝʔδʹอଘ͞Ε͍ͯΔϝλσʔλ͔Βࠩ෼Λ ݕग़͠ɺݱࡏͷࢿ࢈ͱൺֱ͠ɺ#VJMEͷ࠷దԽΛߦ͏ "OBMZ[F % docker inspect | jq -r '.[].Config.Labels' # snip "buildpacks": [ { "key": "com.examples.buildpacks.ruby", "version": "0.0.1", "layers": { "ruby": { "sha": "sha256:xxxxxxxxxx", ]

Slide 31

Slide 31 text

w όΠφϦɺ"TTFUTͷίϯύΠϧͳͲ w ؀ڥม਺ͷઃఆ w ىಈίϚϯυͷઃఆ #VJME

Slide 32

Slide 32 text

#VJMEόΠφϦɺ"TTFUT MBZFST SVCZDOC QIQDOC 3VCZΛల։͍ͨ͠ྫ SVCZ # rubyΛμ΢ϯϩʔυ͢Δ % wget -q -O - "$ruby_url" | tar -xzf - -C "/layers/ ruby-cnb/ruby" # /layers//.toml % echo -e 'launch = true' > /layers/ruby-cnb/ruby.toml

Slide 33

Slide 33 text

Launch Layers A buildpack MAY specify that a // directory is a launch layer by placing launch = true in / .toml. The lifecycle MUST include each launch layer in the built OCI image. The lifecycle MUST also store the Layer Content Metadata associated with each layer so that it can be recovered using the layer Diff ID. IUUQTHJUIVCDPNCVJMEQBDLTQFDCMPCNBTUFSCVJMEQBDLNEFOWJSPONFOU

Slide 34

Slide 34 text

Build Layers A buildpack MAY specify that a // directory is a build layer by placing build = true in / .toml. The lifecycle MUST make all build layers accessible to subsequent buildpacks as described in the Environment section. IUUQTHJUIVCDPNCVJMEQBDLTQFDCMPCNBTUFSCVJMEQBDLNEFOWJSPONFOU

Slide 35

Slide 35 text

#VJME؀ڥม਺ͷఆٛ IUUQTHJUIVCDPNCVJMEQBDLTQFDCMPCNBTUFSCVJMEQBDLNEFOWJSPONFOU MJGFDZDMFͷ࣮૷Ͱ؀ڥม਺͸ࣗಈఆٛ

Slide 36

Slide 36 text

#VJME؀ڥม਺ͷఆٛ MBZFST SVCZDOC QIQDOC ؀ڥม਺Λ௥Ճ͍ͨ͠έʔε SVCZ % echo $PATH /layers/ruby-cnb/ruby/bin % echo $LD_LIBRARY_PATH /layers/ruby-cnb/ruby/lib % echo "/ruby/bin:" > /layers/ruby-cnb/ruby/env/PATH.append

Slide 37

Slide 37 text

#VJMEىಈίϚϯυͷઃఆ ىಈ͍ͨ͠ϓϩηεΛ
 MBZFSTMBVODIUPNMͱͯ͠ఆٛ [[processes]] type = "web" command = "bundle exec ruby app.rb"

Slide 38

Slide 38 text

#VJMEىಈίϚϯυͷઃఆ ෳ਺ͷ$/#Λ࣮ߦ͠ಉ͡ͳΒ͹ޙউͪ [[processes]] type = "web" command = "bundle exec ruby app.rb" SVCZDOC [[processes]] type = "web" command = "npm start" OQNDOC SVCZDOCͷޙʹ OQNDOCΛ࣮ߦ ⊗ ʮOQNTUBSUʯ͕ ىಈίϚϯυͱͳΔ

Slide 39

Slide 39 text

&YQPSU ݱঢ়ͷMJGFDZDMF࣮૷ͩͱ %PDLFSͷ"1*ʹґଘ͍ͯ͠Δ % docker save test-ruby-app > test-rb.tar % tar zxv test-rb.tar % cd f831edb4ae8ed... % tar zxvf layer.tar tar: Removing leading '/' from member names x workspace x workspace/Gemfile x workspace/Gemfile.lock x workspace/app.rb

Slide 40

Slide 40 text

&YQPSU ࢀߟ % docker inspect test-ruby-app | jq . | grep RootFS -A10 "RootFS": { "Type": "", "Layers": [ "sha256:f831edb4ae8ed4e9c87d8ec195d98334191fd772c40d7375be1df51443dcf0df", "sha256:ce430ae9aaef0810265eb37e374ec448af547fbf0b391a3879140faaf45391fd", "sha256:0670c818350e963326b7655c0ae7fd2e2438a50a46feb2ffd9b4ae05841c1126", "sha256:b0d2839a2e054261cafa3d694db5e548342785313a282020e3b19704b8995328", "sha256:c8a8ddb80dd9923057bd12f9f69c6b093925a8925f3c37550a88b90f02699aa9", "sha256:512ae48a9f9d01cc9eb6a822660ce2cf3ad5a9c6c6fddc315cdcbb191e3b59a3" ] },

Slide 41

Slide 41 text

ͪΐͬͱͩΔͦ͏ͩͱ ࢥͬͯΔਓ͍Δ͡ΌΜ͔͢ʁ

Slide 42

Slide 42 text

w HJUIVCDPNCVJMEQBDLMJCCVJMEQBDL w ຊՈCVJMEQBDLͷ(PϥΠϒϥϦ w HJUIVCDPNDMPVEGPVOESZMJCCVJMEQBDL w ຊՈCVJMEQBDLΛDMPVEGPVOESZ͕8SBQ࣮ͨ͠૷ w HJUIVCDPNDMPVEGPVOESZQIQEJTUDOC w $MPVE'PVOESZ͕࣮૷͍ͯ͠Δ֤छݴޠͷ$/# #VJMEQBDLT ॆ࣮ͨ͠։ൃ؀ڥ

Slide 43

Slide 43 text

MJCSBSZ͕4QFDΛӅಗͯ͘͠ΕΔ HJUIVCDPNDMPVEGPVOESZOQNDOC

Slide 44

Slide 44 text

૬ޓʹґଘղܾΛߦ͍ͳ͕ΒɺΞϓ ϦέʔγϣϯΛݩʹϓϩάϥϚϒϧ ʹίϯςφΠϝʔδΛ࡞੒͢Δࣄ͕ Ͱ͖Δ ىಈίϚϯυ΍؀ڥม਺ͷఆٛ͸ UPNMͰఆΊΒΕͨϑΥʔϚοτʹ ΑͬͯఆٛͰ͖Δ ݴޠͷ$/#ͳͲ͸$MPVE'PVOESZ ͳͲͷઌߦऀ͕044ͱͯ͠ఏڙͯ͠ ͍Δ ͜͜·Ͱͷ·ͱΊ #VJMEFS*NBHF SVCZDOC OPEFDOC QIQDOC CVJME CVJME

Slide 45

Slide 45 text

%PDLFSpMFͱͷҧ͍

Slide 46

Slide 46 text

w 4FDVSJUZ'JYͳͲͷରԠ w #VJME"TTFUTͷྲྀ༻ੑ w #VJME؀ڥ %PDLFSpMFͱ$/#ͷൺֱ

Slide 47

Slide 47 text

%PDLFSpMF w %PDLFSpMF͝ͱʹؤுΔ w #BTF*NBHFΛఆٛ͢Δ 4FDVSJUZ'JY $/# w #VJME*NBHFΛߋ৽͢Δ

Slide 48

Slide 48 text

ࢄࡏ͕ͪ͠ͳ%PDLFSpMF PSHBQJ %PDLFSpMF PSHXXX %PDLFSpMF PSHJOGSB %PDLFSpMF PSHVTFS %PDLFSpMF PSHCMPH %PDLFSpMF ͢΂ͯͷ%PDLFSpMFͷߋ৽ٴͼɺ
 ࣮ଶ֬ೝ͕ඞཁ

Slide 49

Slide 49 text

FROM ubuntu:latest RUN apt install libssl-dev openssl %PDLFSʹ͓͚Δ#BTF*NBHFӡ༻ FYBNQMFCBTFMBUFTU FROM example/base:latest(X.X.X) RUN apt install php httpd FYBNQMFPSJHJOMBUFTU 7FSTJPOॻ͍ͪΌ͏ͱɺ CBTF͕ߋ৽͞ΕͨΒશ ෦ͷ%PDLFSpMFॻ͍ͯճ Βͳ͍ͱߦ͚ͳ͍ CBTFͰ0QFO44- ߋ৽͞Ε͚ͨͲपลϥΠϒ ϥϦಈ͘ʁ

Slide 50

Slide 50 text

wΞϓϦέʔγϣϯΛݩʹɺίʔυͰϏϧυ͢Δ ͷͰϓϩάϥϚϒϧʹґଘղܾͳͲ͕ߦΘΕΔ wϏϧμʔΛߋ৽͢Ε͹ͦΕΛར༻͢ΔϦϙδτ ϦͷΠϝʔδ͸ࣗಈͰ࠷৽ʹͳΔ $/#ͳΒ͹ʁ

Slide 51

Slide 51 text

%PDLFSpMF #VJMEҙࢥܾఆͷҧ͍ $/# %PDLFSpMFʹ0QFO44-Λ ࢖͏ͱॻ͘ EPDLFSCVJME˞ $/#ʹɺ؀ڥʹΑͬͯ 0QFO44-ɺΛ࢖͏
 ίʔυΛॻ͘ QBDLCVJE 0QFO44-Λ࢖͏Πϝʔδ ര஀ 0QFO44-ɺͷར༻͕ΞϓϦ έʔγϣϯίʔυΛج४ͱͨ͠Ͱҙࢥ ܾఆʹΑͬͯબ͹Εͨϝʔδര஀ ˞ɹϏϧυ࣌ʹ؀ڥม਺ͳͲͰڍಈΛมߋ͢Δ͜ͱ͸΍Ζ͏ͱࢥ͑͹Ͱ͖Δ

Slide 52

Slide 52 text

%PDLFSpMF w LBOJLPCVJMELJUͳͲΛར༻͠
 ඇಛݖ؀ڥʹͯϏϧυͰ͖Δ #VJME؀ڥ $/# w %PDLFSσʔϞϯʹґଘ͍ͯ͠Δ
 ͨΊɺಛݖ͕ඞཁ

Slide 53

Slide 53 text

$/#͸தԝूݖతʹ ҙࢥܾఆͷఆٛΛߦ͍ ஗Ԇ࣮ߦͰ͖Δ͕ ಛݖ͕ࠓͷͱ͜Ζ͸ඞཁ

Slide 54

Slide 54 text

(.0ϖύϘʹ͓͚Δ $/#ͷར׆༻ʹ͍ͭͯ

Slide 55

Slide 55 text

w े਺ݸͷαʔϏεΛ։ൃɺӡ༻͍ͯ͠Δ w ྺ࢙తͳܦҢ΋͋Γɺ1)1ɺ3VCZɺ(PMBOH͕
 ϝΠϯͷ։ൃݴޠͰɺόʔδϣϯ΋༷ʑ w ։ൃ؀ڥ͸7BHSBOU࣌ʑ%PDLFS ϖύϘͷഎܠ

Slide 56

Slide 56 text

Α͋͘Δ΍ͭ

Slide 57

Slide 57 text

ʮ։ൃ؀ڥ্ཱ͕͕ͪΒͳ͍Μ
 Ͱ͚͢Ͳʁʯ

Slide 58

Slide 58 text

CVOEMFFYFDDBQQSPEVDUJPOEFQMPZ ͕ɺͳΜ͔Τϥʔग़ͯࢭ·ΔΜͰ͚͢Ͳʁ

Slide 59

Slide 59 text

৺ͷ੠

Slide 60

Slide 60 text

ͦ͏͍͏ͷ͸શ෦ ,VCFSOFUFT࢖͑͹͍͍ͬͯ Ͳ͔ͬͰฉ͖·ͨ͠

Slide 61

Slide 61 text

,VCFSOFUFTXJUI$/# HJUQVTI UFTUCVJME QVTIJNBHF EFQMPZJNBHF TXBQEFQMPZNFOU

Slide 62

Slide 62 text

,VCFSOFUFTXJUI$/# HJUQVTI UFTUCVJME QVTIJNBHF EFQMPZJNBHF TXBQEFQMPZNFOU

Slide 63

Slide 63 text

ίϚϯυͰΠϝʔδ͕ര஀ PSHBQJ QIQ PSHXXX 1)1 PSHJOGSB 1)1 PSHCMPH 1)1 % pack build --builder xxxx/tech-php-builder:0.0.1 #VJMEFS*NBHFΛϓϥΠϕʔτϨδετϦͰ؅ཧ͍ͯ͠ΔͨΊ ίϚϯυҰͭͰɺͲͷ1)1ϦϙδτϦͰ࣮ߦͯ͠΋࠷దͳΠϝʔδ͕Ͱ͖Δ

Slide 64

Slide 64 text

୤ઢ 5FMFQSFTFOTF

Slide 65

Slide 65 text

5FMFQSFTFOTF

Slide 66

Slide 66 text

#FGPSF5FMFQSFTFOTF XXX VTFS BQJ EPDLFSDPNQPTF΍7BHSBOUΛ ར༻͠ɺϩʔΧϧͰ͢΂ͯͷؔ࿈αʔϏεΛىಈ

Slide 67

Slide 67 text

"GUFS5FMFQSFTFOTF XXX VTFS BQJ ඞཁͳαʔϏε͚ͩखݩͰىಈͯ͠ɺ ࢒Γ͸,VCFSOFUFTͷϦιʔεΛ࢖͏ BQJ

Slide 68

Slide 68 text

w ࠃ಺ʹ৘ใ͕গͳ͍தͰͷ$/#։ൃ w ֤ݴޠͷ࣮૷ϚδͰԶ͕΍ΔΜ͔ʁͱ͍͏ؾ࣋ͪ w $MPVE'PVOEMZ࠷ߴ ۤ࿑ͨ͜͠ͱɺͦͯ͠ݱঢ়ͱ͜Ε͔Β w ϗεςΟϯάࣄۀͷϩϦϙοϓʂͷ։ൃ؀ڥͷओཁՕॴΛ $/#ͱ,VCFSOFUFTج൫΁ ۤ࿑ͨ͠ɺ΋͏ೋ౓ͱಉ͡ࢥ͍Λͨ͘͠ͳ͍ ً͔͍͠ະདྷ w ݴޠɺ؀ڥࠩҟΛ$/#ͰຒΊɺશࣾల։΁ w ͍݁ࠗͨ͠ ݱঢ়

Slide 69

Slide 69 text

$/#͕૑Δະདྷ

Slide 70

Slide 70 text

,VCFSOFUFTͷొ৔ʹΑΓɺ͜Ε·ͰΠϯϑϥͱݺ͹Ε ͍ͯͨϨΠϠʔ͕Ұஈந৅Խ͞Εͨ ίϯςφͷηΩϡϦςΟɺύοέʔδɺґଘੑ؅ཧ͸
 ୭͕΍Δʁ ͍ΘΏΔΠϯϑϥΤϯδχΞͷಇ͖ํ͕มԽ͢Δ͔΋͠Εͳ͍

Slide 71

Slide 71 text

͍ΘΏΔΠϯϑϥΤϯδχΞͷಇ͖ํ͕มԽ͢Δ͔΋͠Εͳ͍ ΞϓϦέʔγϣϯΤϯδχΞ ϓϥοτϑΥʔϜΤϯδχΞ ΞϓϦέʔγϣϯ։ൃʹ੹຿Λෛ ͍ɺ༏ΕͨΞϓϦέʔγϣϯΛ
 ։ൃ͢Δ ΞϓϦέʔγϣϯ͕ಈ͘؀ڥͷ։ൃ ӡ༻ʹ੹຿Λෛ͍ɺՄ༻ੑͷߴ͍
 ؀ڥΛఏڙ͢Δ

Slide 72

Slide 72 text

ΞϓϦέʔγϣϯΤϯδχΞ͸ΞϓϦ։ൃʹूத͢Δ ϓϥοτϑΥʔϜΤϯδχΞ͸$/#Λ։ൃ͠ɺ ,VCFSOFUFTҎ্ ΦϯϓϨͳΒ෺ཧ΋ ͷϨΠϠʔͰಈ͘ ΞϓϦέʔγϣϯͷՄ༻ੑʹ੹຿Λ࣋ͭ ϓϥοτϑΥʔϜΤϯδχΞ͕$/#Λར༻ͯ͠
 ίϯςφΠϝʔδʹ੹຿Λ࣋ͭ "QQ DPOUBJOFS LVCFSOFUFT DPOUBJOFS ϓϥοτϑΥʔϜΤϯδχΞͷ੹຿ ΞϓϦέʔγϣϯΤϯδχΞͷ੹຿

Slide 73

Slide 73 text

ΞϓϦέʔγϣϯͱ ϓϥοτϑΥʔϜͷ෼ۀ͕Ճ଎

Slide 74

Slide 74 text

·ͱΊ

Slide 75

Slide 75 text

$/#͸ ෳ਺ͷݴޠɺόʔδϣϯ͕ ࠞࡏ͢Δ؀ڥͰɺ ڧ͘ϨόϨοδ͕ޮ͘

Slide 76

Slide 76 text

$/#͸ ίϯςφΠϝʔδΛ ϓϩάϥϚϒϧʹߏ੒؅ཧͰ͖Δ

Slide 77

Slide 77 text

$/#͕ ྲྀߦΓͩ͢ͱɺ ߋʹ෼ۀ͕ਐΉɾɾɾ͔΋ʁ

Slide 78

Slide 78 text

w !KBDPQFO͞ΜͷԢ੝ͳΞ΢τϓοτʹॿ͚ΒΕ·ͨ͠ w /55ςΫϊΫϩεͷ৿઒͞ΜͷRJJUBهࣄ
 ʮίϯςφඪ४Խ࣌୅ʹ͓͚Δ࣍ੈ୅#VJMEQBDLʰ$MPVE /BUJWF#VJMEQBDLʱʹ͍ͭͯʯ
 ͕ͳ͚Ε͹๻͕#VJMEQBDLTʹ໨֮ΊΔ͜ͱ͸͋Γ·ͤΜͰ ͨ͠ w IUUQTXXXDMPVEGPVOESZPSH
 044Խ͞Εͨ$/#Ͱେมޮ཰Α͘։ൃͰ͖͍ͯ·͢ ँࣙ

Slide 79

Slide 79 text

No content

Slide 80

Slide 80 text

܅΋ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU