Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
Search
k.goto
July 05, 2024
Programming
6
2.1k
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
2024/07/06開催AWS CDK Conference Japan 2024での登壇資料です。
k.goto
July 05, 2024
Tweet
Share
More Decks by k.goto
See All by k.goto
OSS活動のススメ / oss-activities
gotok365
4
700
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
5
1.3k
S3バケットを高速で削除・空にするツール「cls3」 / s3-deletion-tool-cls3
gotok365
4
690
AWS CDKで コンテナイメージスキャンを行う 〜ECRとその他の方法〜 / cdk-container-image-scan
gotok365
2
1.3k
スタートアップでこそCDKが活きた〜生産性を向上できた5つの理由〜 / startup-cdk-productivity
gotok365
12
3.8k
AWS CDKで"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design patterns used with AWS CDK
gotok365
4
1.5k
AWS CDKで学ぶGoFデザインパターン〜IaCにもコード設計〜 / aws dev day cdk gof design patterns
gotok365
12
5.6k
CloudWatch複合アラームでELBの5XXをいい感じに検知しようとしたらうまくいかなかった話 / cloudwatch alarm elb 5xx
gotok365
0
3.2k
AWS CDKとZodを活用したバリデーションパターン集 / validation patterns with cdk and zod
gotok365
7
3.4k
Other Decks in Programming
See All in Programming
距離関数を極める! / SESSIONS 2024
gam0022
0
280
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.7k
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
330
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
900
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
CSC509 Lecture 12
javiergs
PRO
0
160
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
CSC509 Lecture 11
javiergs
PRO
0
180
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
24k
Less waste, more joy, and a lot more green: How Quarkus makes Java better
hollycummins
0
100
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
Featured
See All Featured
Building an army of robots
kneath
302
43k
How GitHub (no longer) Works
holman
310
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Designing for humans not robots
tammielis
250
25k
Adopting Sorbet at Scale
ufuk
73
9.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Transcript
LHPUP AWS CDKʹ͓͚Δ ʮ࠶ར༻ੑʯΛߟ͑Δ "84$%,$POGFSFODF+BQBO
ࣗݾհ LHPUP "84)&30 "84$%,ίϯτϦϏϡʔτ $PNNVOJUZ%SJWFO $%,$POTUSVDU-JCSBSZ "84πʔϧ DMT EFMTUBDL MBNWFS
"84%FW5PPMT)FSP .BJOUBJOFS 5PQ$POUSJCVUPS 5SVTUFE3FWJFXFS ࣗ࡞044 $%,$POTUSVDUϥΠϒϥϦ 9!@TUFQ@UFDI (JU)VC!HPUPL
AWS CDKʹ͓͚Δ
ʮ࠶ར༻ੑʯ ͱʁ
"84$%,ʹ͓͚Δʮ࠶ར༻ੑʯͱʁ w ࠶ར༻ੑ㲈͍ճ͕͠ޮ͘ ‣ ϦϙδτϦͰ͍ճͤΔ ಛఆͷઃఆΛͨ͠-BNCEBͳͲΛೖΕͨ$POTUSVDUΛఆٛ ͦΕΛͬͯͭͷ"1*ΤϯυϙΠϯτΛ࡞ ‣
ϦϙδτϦ֎Ͱ͍ճͤΔ ϞχλϦϯάڥΛ͍͍ײ͡ʹఆٛͰ͖Δ൚༻తͳ$POTUSVDUΛఆٛ ֤ϦϙδτϦ ϓϩδΣΫτ ͰͦΕΛ༻
ͲͷΑ͏ʹʮ࠶ར༻ੑʯΛ࣮ݱ͢Δͷ͔ʁ w ηΦϦʔ͕ੈʹग़͍ͯͳ͍ ‣ ൿͷλϨ ‣ ଐਓԽ w $%,ʹ$POTUSVDU͕͋Δ ‣
࠶ར༻ੑͷॏཁͳΩʔ $POTUSVDUΛͲͷΑ͏ʹ࡞Δ͜ͱͰ ࠶ར༻ੑΛ୲อͰ͖Δͷ͔ʁ
࠶ར༻ੑͷͨΊͷ Construct࣮ϙΠϯτ
લఏ w αϯϓϧίʔυ5ZQF4DSJQUͰهड़ w Ұ෦ɺ࠶ར༻ੑͱ͍͏ΑΓ$POTUSVDUͱͯ͠ྑ͍࣮Έ͍ͨͳͱ͜Ζ w ຊηογϣϯͰमਖ਼ରͱͨ͠ίʔυ͕ѱ͍ͱ͍͏Θ͚Ͱ͋Γ·ͤΜʂ ‣ ࠶ར༻ੑͱଞͷ؍ͰτϨʔυΦϑͳέʔεͳͲ͕͋Γ·͢ ‣
͋͘·Ͱ࠶ར༻ੑͷͨΊͷҰྫͱͯ͠ݟ͍͚ͯͨͩΕʂ
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶃελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ w ଞͷϦϙδτϦͰ͑ͳ͘ͳͬͯ͠·͏ w $POTUSVDUʹෆཁͳϓϩύςΟଟ͘ͳΓ͕ͪ 4UBDL $POTUSVDU
ᶃελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ w ଞͷϦϙδτϦͰ͑ͳ͘ͳͬͯ͠·͏ w $POTUSVDUʹෆཁͳϓϩύςΟଟ͘ͳΓ͕ͪ 4UBDL $POTUSVDU
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶄQSPQTͷϓϩύςΟSFBEPOMZʹ w $POTUSVDUͷೖྗͰ͋ΔQSPQTͷޡ্ͬͨॻ͖ͳͲΛ͙ ‣ ্ॻ͖͕Մೳͩͱೖྗͷ৴པੑ͕ͳ͘ͳΔ ‣ ্ॻ͖Λېࢭ͢Δ͜ͱͰ։ൃʹ͓͚Δ҆શੑͷ্ʹ ࠶ར༻ੑԿΘΕΔͱ͍͏͜ͱͳͷͰࡉ͔͍ͱ͜Ζҙࣝ͢Δͱ˕
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶅQSPQTͷόϦσʔγϣϯ5PLFOʹҙ w 5PLFOͱ ‣ ޙͰղܾ͞ΕΔ ໌͢Δ ΛԾͷͰ֨ೲ͓ͯ͘͠Έ ओʹOVNCFSܕTUSJOHܕͷͷ͕ର ྻܕҰ෦͋Γ
FY $MPVE'PSNBUJPOͷ3FG EFQMPZ࣌ʹղܾ ͳͲ$%,্Ͱ5PLFOʹͳΔ ˢ ίίͰղܾ CVDLFU/BNFͳͲ ˢ ίίͰෆ໌ͳͷͰ 5PLFOͱͯ͠ԾͷͰѻ͏
ᶅQSPQTͷόϦσʔγϣϯ5PLFOʹҙ w 5PLFOͱ ‣ ޙͰΘ͔Δɾͭ·Γࠓ͕ෆ໌ͳҝɺόϦσʔγϣϯΛ͢Δ͜ͱ͕Ͱ͖ͳ͍ ˠ5PLFOͷ߹ɺόϦσʔγϣϯΛεΩοϓ͢Δඞཁ͕͋Δ w 5PLFOJT6OSFTPMWFE ϝιουͰ5PLFO͔Ͳ͏͔அ͕Մೳ
‣ 5PLFOͷ߹USVFΛฦ͢ GBMTFͷͱ͖ 5PLFOͰͳ͍ ʹόϦσʔγϣϯΛ͢Εྑ͍
ᶅQSPQTͷόϦσʔγϣϯ5PLFOʹҙ w $POTUSVDUΛ͍ճ͢ͱ͍͏͜ͱɺͲ͔͜ΒԿ͕͞ΕΔ͔Θ͔Βͳ͍ ‣ $POTUSVDUଆͰɺৗʹ5PLFO͕͞ΕΔՄೳੑΛఆ͓ͯ͘͠ඞཁ͕͋Δ ‣ OVNCFSܕTUSJOHܕͷϓϩύςΟͰ͋ΕͱΓ͋͑ͣνΣοΫ͓ͯ͘͠ͱ҆શ -BNCEBؔ .Z$POTUSVDU ελοΫ"
QSPQT GVODUJPO/BNFTUSJOH `NZGVODUJPO` ඇ5PLFO ελοΫ# #VDLFU CVDLFU/BNF 5PLFO
ᶅQSPQTͷόϦσʔγϣϯ5PLFOʹҙ w CVJMEFST fl BTIʰ"84$%,ʹ͓͚ΔόϦσʔγϣϯͷ͍͚ํΛֶͿʱ ‣ IUUQTBXTBNB[PODPNKQCVJMEFST fl BTIDELWBMJEBUJPO
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶆQSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ w #VDLFUܕͰͳ͘*#VDLFUܕ JOUFSGBDF ʹ
ᶆQSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ w *9YYܕ JOUFSGBDF ͬͯʁˠಡΈࠐΈઐ༻ϦιʔεͷͨΊͷͷ ‣ $%,ελοΫ֎ϦιʔεΛɺٖࣅతʹελοΫͷϦιʔεͷΑ͏ʹѻ͑Δ ˞࣮ࡍʹελοΫ֎ͷϦιʔεΛελοΫͷཧԼʹ͢ΔDELJNQPSUͱผ $%,ελοΫ
Ϛωίϯ -BNCEB 4 #VDLFU ελοΫॴ༗ ελοΫඇॴ༗
ᶆQSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ w *9YYܕ JOUFSGBDF ͬͯʁˠಡΈࠐΈઐ༻ϦιʔεͷͨΊͷͷ ‣ ࣮ͨͩ͠ମελοΫ֎Ͱ࡞ͬͨͷͳͷͰɺͦͷϦιʔεͷߋ৽ͳͲͰ͖ͳ͍ ‣ ͦ͜Ͱ$%,ಡΈࠐΈઐ༻ϦιʔεΛ*9YYͱ͍͏JOUFSGBDFͰද͠ɺಡΈࠐΈ༻ ϝιουϓϩύςΟͷΈΛ࣋ͨͤΔ͜ͱͰʮಡΈࠐΈઐ༻ʯΛ࣮ݱ͍ͯ͠Δ
࣮Ϧιʔεͷ$POTUSVDU*9YYΛJNQMFNFOUT͠ɺߋ৽༻ϝιουͳͲΛՃఆٛ $%,ελοΫ Ϛωίϯ -BNCEB 4 #VDLFU ελοΫॴ༗ ࣮$POTUSVDU HSBOU1VU FUDʜ ελοΫඇॴ༗ *#VDLFU JOUFSGBDF
ᶆQSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ w *9YYܕ JOUFSGBDF ͬͯʁˠಡΈࠐΈઐ༻ϦιʔεͷͨΊͷͷ ‣ -$POTUSVDU͕࣋ͭGSPN9YYϝιουΛͬͯελοΫ֎͔ΒऔΓࠐΊΔ ελοΫ֎ͷόέοτͷ"3/ͳͲΛࢦఆ͢Δ
ಡΈࠐΈઐ༻Ϧιʔεͱͯ͠ɺ*#VDLFUܕΛฦ͢
ᶆQSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ w QSPQT ೖྗ Ͱ*9YYܕʹ͢Δͱɾɾɾ ‣ ಡΈࠐΈઐ༻Ϧιʔεѻ͑ΔΑ͏ʹ ελοΫ֎͔ΒऔΓࠐΜͩ#VDLFUͦͷ$POTUSVDUʹͤΔ ‣
ಉ͡JOUFSGBDFΛ࣮͢Δଟछͷ$POTUSVDUΛͤΔΑ͏ʹͳΔ *'VODUJPO 㾎'VODUJPO 㾎/PEFKT'VODUJPO 㾎4JOHMFUPO'VODUJPO 㾎FUDʜ
ᶆQSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ w $POTUSVDUͰެ։͢ΔQVCMJDม ग़ྗ Ͱ*9YYܕʹ͢Δͱɾɾɾ ‣ $POTUSVDU֎ͰಡΈࠐΈઐ༻Ϧιʔεͱͯ͠ѻΘΕΔ͜ͱʹͳΔ ߋ৽ϝιου͕ͳ͘ͳΔ ‣
ˠϦιʔεΛ࡞ͨ͠$POTUSVDUҎ֎͔ΒͦͷϦιʔεΛߋ৽Ͱ͖ͳ͘ͳΔ ҆શੑͷ্ ͷڽू
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶇQSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ w CVDLFU/BNFTUSJOHΑΓCVDLFU*#VDLFUʹ ‣ *#VDLFU͔ΒCVDLFU/BNFΛऔΕΔ͠ɺଞͷϓϩύςΟҰॹʹऔΕΔ ˞औΕͳ͍ͷͰ͋Εํͳ͍ ‣ JOUFSGBDF *9YY
ܕʹ࣮͞Εͨศརϝιου͕͑ͨΓ͢Δ ‣ ຊՈͷ$POTUSVDUͷQSPQT*9YYܕ͕ଟ͍ͷͰɺͦΕΒʹ͢ͱ͖ศར
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶈQVCMJDϝιουΛ༻ҙ w ݺͼग़͠ݩͰ͍͍ײ͡ʹɾॊೈʹݺΔϝιουΛ༻ҙ ‣ ಛʹཁ͕ͳ͚Εແཧʹ࡞Δඞཁͳ͠ Ճ͢ΕΑ͍ ྫ4όέοτͷ"3/ΛϦετͰऔಘ
ᶈQVCMJDϝιουΛ༻ҙ ྫ8"'ΛΞλονઌϦιʔεଆͰͳ͘8"'ίϯετϥΫτଆͰΞλον w ΞλονઌϦιʔεଆʹ8"'ఆٛΛೖΕͣʹࡁΈɺ8"'ΛΞλον ͢Δ͠ͳ͍1+Ͱಉ͡$POTUSVDUΛ8"'༻ͷJGจ͍ΒͣͰ͍ճͤΔ w 8"'ଆͷ$POTUSVDUͷDPOTUSVDUPSʹΞλονఆٛΛೖΕͣʹࡁΉ ͨΊɺίʔυ͕ෳࡶʹͳΒͳ͍ w ͭͷ8"'ΛෳϦιʔεʹ·ͱΊͯΞλον͢ΔࡍՄಡੑ˕
ᶈQVCMJDϝιουΛ༻ҙ w QVCMJDϝιουͰϦιʔεΛ࡞͢Δͱ͖ͷϙΠϯτ ‣ ϝιουΛෳճݺͿ͜ͱΛՃຯ͠ɺ$POTUSVDU*%͕ඃΒͳ͍Α͏ʹҾʹ*%Λ ؚΊΔ
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶉόϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ w ݺͼग़͠ݩͰͷJNQPSUจͷ؆ૉԽ JNQPSUจ͕ߦʹʂ JOEFYUT όϨϧ ݺͼग़͠ݩ
ᶉόϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ w Ϟδϡʔϧͷཧղ༰қੑ্ JOEFYUT όϨϧ ͲͷϞδϡʔϧͷ$POTUSVDU͔Θ͔Γ͍͢ʂ ݺͼग़͠ݩ
ᶉόϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ w σΟϨΫτϦ$POTUSVDUͷ֊ߏ ωετ ʹ͓͚Δ$POTUSVDUͷެ։੍ޚ ‣ ࢠ$POTUSVDUͦͷϞδϡʔϧͷϝΠϯͷ$POTUSVDU͔Β͔͠ݺΕͳ͍ఆ
MPHBOBMZTJTUTTUBUJDUT͔Β͔͠ݺΕͳ͍ ‣ ϝΠϯͷ$POTUSVDU͚ͩΛ4UBDLͳͲ$POTUSVDU֎͔ΒݺΔΑ͏ʹ͍ͨ͠ TUBUJDUT͚ͩϞδϡʔϧ֎ 4UBDLͳͲ ͔Βݺͼ͍ͨ
ᶉόϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ w σΟϨΫτϦ$POTUSVDUͷ֊ߏ ωετ ʹ͓͚Δ$POTUSVDUͷެ։੍ޚ JOEFYUT όϨϧ ݺͼग़͠ݩ
ᶉόϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ w Ұॹʹѻ͍͍ͨ ؔ࿈ ϦιʔεΛͭͷϞδϡʔϧʹ·ͱΊΔࢫΈ͕૿͢ ‣ ؙ͝ͱ؆୯ʹଞ1+ʹෳͰ͖Δ ‣
ϞδϡʔϧͷϙʔλϏϦςΟΞοϓˠ࠶ར༻ੑΞοϓ $MPVE'SPOU ·ΘΓͷ $POTUSVDUϞδϡʔϧ ඇެ։$POTUSVDU ϩά༻4όέοτ "UIFOBܥ (MVFܥ ϩάܗ༻-BNCEB ผʑͷ$POTUSVDUʹ͚࣮ͯͰ͖ ެ։$POTUSVDU ΦϦδϯ༻4όέοτ %JTUSJCVUJPO ݺ ͼ ग़ ͠ ͭͷϞδϡʔϧʹ·ͱΊΒΕΔ ެ։ඇެ։ʹ͚ΒΕ ֎͔Β ݺΔ
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
ᶊ$POTUSVDU୯ҐͷϢχοτςετ w ελοΫଞϦιʔεʹґଘ͠ͳ͍$POTUSVDUʹดͨ͡ςετ͕Մೳʹ ‣ $POTUSVDUࣗମͷ৴པੑɾอकੑΞοϓ ۭͷελοΫΛੜ ςετରͷ$POTUSVDUͷΈΛੜ ςετରͷߏཁૉͷΈΛςετ
ᶊ$POTUSVDU୯ҐͷϢχοτςετ w ͨͩ͠શͯͷ$POTUSVDU͝ͱʹॻ͘ͱɾɾɾ ‣ ςετ͕େྔʹͳΔ͜ͱ ‣ ςετ TZOUI ͕͘ͳΔ͜ͱ
ಛʹ%PDLFSͷϏϧυɺιʔείʔυͷόϯυϧॲཧ͕͋Δ߹ ˞ςετͰ͜ͷ෦͚ͩKFTUͰϞοΫ͢Δͱ͍͏ख͋Δ w جຊελοΫͰͷςετͰ0, ‣ ಛʹ࠶ར༻ੑΛ୲อ͍ͨ͠ͷ͚ͩΔख ‣ $POTUSVDUϥΠϒϥϦͱͯ͠࡞ΔϦϙδτϦͰಛʹ༗ޮ "84$%,ຊՈͷϢχοτςετͰجຊతʹ$POTUSVDU୯Ґ
࠶ར༻ੑͷͨΊͷ$POTUSVDU࣮ϙΠϯτ ᶃ ελοΫͷQSPQTΛ$POTUSVDUʹͦͷ··͞ͳ͍ ᶄ QSPQTͷϓϩύςΟSFBEPOMZʹ ᶅ QSPQTͷόϦσʔγϣϯ5PLFOʹҙ ᶆ QSPQT$POTUSVDUͰެ։͢ΔϦιʔεͷϓϩύςΟ*9YYܕʹ ᶇ
QSPQT$POTUSVDUͰެ։͢ΔϓϩύςΟʹϓϦϛςΟϒܕආ͚Δ ᶈ QVCMJDϝιουΛ༻ҙ ᶉ όϨϧ JOEFYUT ʹΑΔϞδϡʔϧੑ্ ᶊ $POTUSVDU୯ҐͷϢχοτςετ
࠶ར༻ੑͷͨΊͷ Construct࣮ϙΠϯτ
σϝϦοτ͋Γ·͢
࠶ར༻ੑΛՃຯͨ͠ࡍͷσϝϦοτ w 1+ʹ࠷దͰͳ͘ͳΔ͜ͱ͋Δ ‣ ʮQVCMJDϝιουͳΜͯ࡞ΒͣɺʹDPOTUSVDUPSͰݺ͍͍͡ΌΜʯ ‣ ʮQVCMJDϝιουʹ͢ΔͱݺͼΕ͕ى͖Δ͠ʯ ‣ ʮذॲཧ͕͋Δ͚Ͳɺ͜ͷ1+Ͱ͜ΕઈରUSVFͩΑͶʯ w࠶ར༻ੑ
1+ؒͰͷ͍ճ͠$POTUSVDUͱͯ͠ͷ͍উख ͱͷτϨʔυΦϑ wݺͼग़͠ݩͰͷόϦσʔγϣϯϢχοτςετͰΧόʔ͠·͠ΐ͏
͓·͚
$POTUSVDU)VC w ศརͳίϯετϥΫτϥΠϒϥϦू ‣ ࣗ࡞$POTUSVDUΛެ։͢ΔϓϥοτϑΥʔϜ ‣ ࣗ༝ʹࣗͨͪͷ$%,ϓϩδΣΫτͰΠϯετʔϧͯ͑͠Δ ˞୭Ͱެ։Ͱ͖ΔͷͰɺ৴པͰ͖ΔਓɾϞϊ͚ͩ͏Α͏ʹ͠·͠ΐ͏ ˞IUUQTDPOTUSVDUTEFW
1SPKFO w 1SPKFOͰ؆୯ʹࣗ࡞ίϯετϥΫτϥΠϒϥϦΛ࡞ɾެ։Ͱ͖Δ 1SPKFOϦϙδτϦ 1SPKFOͱ"84$%,ͷ͡Ίํ IUUQTHJUIVCDPNQSPKFOQSPKFO IUUQTBXTBNB[PODPNKQCMPHTOFXTHFUUJOHTUBSUFEXJUIQSPKFOBOEBXTDEL
w "84$%,ͰֶͿ(P'σβΠϯύλʔϯʙ*B$ʹίʔυઃܭʙ "84%FW%BZ (P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ IUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT
(P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ w "84$%,ͰֶͿ(P'σβΠϯύλʔϯʙ*B$ʹίʔυઃܭʙ "84%FW%BZ IUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT "CTUSBDU'BDUPSZύλʔϯͰJGจΛ΄ͱΜͲΘͳ͍Α͏ʹͰ͖ͨΓ
(P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ w "84$%,ͰֶͿ(P'σβΠϯύλʔϯʙ*B$ʹίʔυઃܭʙ "84%FW%BZ IUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT
(P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ w "84$%,ͰֶͿ(P'σβΠϯύλʔϯʙ*B$ʹίʔυઃܭʙ "84%FW%BZ IUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT
(P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ w "84$%,ͰֶͿ(P'σβΠϯύλʔϯʙ*B$ʹίʔυઃܭʙ "84%FW%BZ IUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT
(P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ w DELHPGEFTJHOQBUUFSO $%,º(P'ͷαϯϓϧίʔυͱΫϥεਤू IUUQTHJUIVCDPNHPUPLDELHPGEFTJHOQBUUFSO
(P'σβΠϯύλʔϯ ࠶ར༻ͷͨΊͷσβΠϯύλʔϯ w ެࣜϕετϓϥΫςΟεϖʔδɿ࠶ར༻Մೳͳύλʔϯͷ։ൃ ˞IUUQTEPDTBXTBNB[PODPNKB@KQQSFTDSJQUJWFHVJEBODFMBUFTUCFTUQSBDUJDFTDELUZQFTDSJQUJBD SFVTBCMFQBUUFSOTCFTUQSBDUJDFTIUNM
·ͱΊ
·ͱΊ w "84$%,ʹ͓͚Δʮ࠶ར༻ੑʯͱʁ ‣ ͍ճ͠ ‣ $POTUSVDU͕ॏཁͳΩʔ w ʮ࠶ར༻ੑʯΛ୲อ͢Δ$POTUSVDU࣮ϙΠϯτ ‣
ʮ࠶ར༻ੑʯΛߟ͑ͳ͍߹ɺ͜ΕΒͷϙΠϯτʹԊ͏ඞཁͳ͍ ‣ ͨͩ͠ʮ࠶ར༻ੑʯʹؔͳ͘ɺ$POTUSVDU࣮ͱͯ͠ྑ͍ w ࠶ར༻ੑͷ୲อʹσϝϦοτ͍ͭͯ͘Δ ‣ τϨʔυΦϑ
એɿࣗ࡞OSSͷ͝հ
ࣗ࡞044"84πʔϧ ʲEFMTUBDLʳ"84$MPVE'PSNBUJPOελοΫڧ੍আπʔϧ ‣ IUUQTHJUIVCDPNHPUPLEFMTUBDL ʲDMTʳ4όέοτΛߴʹআɾۭʹ͢Δπʔϧ ‣ IUUQTHJUIVCDPNHPUPLDMT ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ ‣ IUUQTHJUIVCDPNHPUPLMBNWFS
ࣗ࡞044"84πʔϧ ʲEFMTUBDLʳ"84$MPVE'PSNBUJPOελοΫڧ੍আπʔϧ $'OআͰࣦഊ͢ΔϦιʔεָ͕͋ͬͯʑڧ੍আʂ ରͰݕࡧͯ͠ɺෳελοΫҰׅআՄೳʂ ґଘؔΛՃຯͯ͠৽͍͠ͷ͔Βॱʹআ
ࣗ࡞044"84πʔϧ ʲDMTʳ4όέοτΛߴʹআɾۭʹ͢Δπʔϧ ରͰݕࡧͯ͠ɺෳόέοτҰׅআՄೳʂ ඇݱߦόʔδϣϯͷΈআՄೳʂ
ࣗ࡞044"84πʔϧ ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ
ࣗ࡞044"84πʔϧ ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ Ϧʔδϣϯԣஅݕࡧʂ $47ग़ྗΦϓγϣϯ͋Γʂ
ࣗ࡞044"84$%,$POTUSVDUϥΠϒϥϦ ʲJNBHFTDBOOFSXJUIUSJWZʳ$%,Ͱ5SJWZͰίϯςφΠϝʔδεΩϟϯ ‣ IUUQTDPOTUSVDUTEFWQBDLBHFTJNBHFTDBOOFSXJUIUSJWZ ʲJNBHFTDBOOFSXJUIEPDLMFʳ$%,Ͱ%PDLMFͰίϯςφΠϝʔδεΩϟϯ ‣ IUUQTDPOTUSVDUTEFWQBDLBHFTJNBHFTDBOOFSXJUIEPDLMF ʲFMCPUIFSYYBMBSNʳ$%,ͰϚΠφʔͳYY
ͷ&-#ΞϥʔϜ ‣ IUUQTDPOTUSVDUTEFWQBDLBHFTJNBHFTDBOOFSXJUIEPDLMF
5IBOL:PV LHPUP "84%FW5PPMT)FSP 9!@TUFQ@UFDI (JU)VC!HPUPL