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
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
120
C++でシェーダを書く
fadis
6
4.1k
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
Better Code Design in PHP
afilina
PRO
0
130
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
1.3k
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
RubyLSPのマルチバイト文字対応
notfounds
0
120
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
334
57k
Scaling GitHub
holman
458
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Fireside Chat
paigeccino
34
3k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Designing the Hi-DPI Web
ddemaree
280
34k
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