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
1.9k
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
660
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
5
1.2k
S3バケットを高速で削除・空にするツール「cls3」 / s3-deletion-tool-cls3
gotok365
4
660
AWS CDKで コンテナイメージスキャンを行う 〜ECRとその他の方法〜 / cdk-container-image-scan
gotok365
2
1.2k
スタートアップでこそCDKが活きた〜生産性を向上できた5つの理由〜 / startup-cdk-productivity
gotok365
11
3.7k
AWS CDKで"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design patterns used with AWS CDK
gotok365
4
1.4k
AWS CDKで学ぶGoFデザインパターン〜IaCにもコード設計〜 / aws dev day cdk gof design patterns
gotok365
12
5.5k
CloudWatch複合アラームでELBの5XXをいい感じに検知しようとしたらうまくいかなかった話 / cloudwatch alarm elb 5xx
gotok365
0
3.1k
AWS CDKとZodを活用したバリデーションパターン集 / validation patterns with cdk and zod
gotok365
7
3.3k
Other Decks in Programming
See All in Programming
C#/.NETのこれまでのふりかえり
tomokusaba
1
140
Java ジェネリクス入門 2024
nagise
0
530
The future of development – Are our jobs getting harder or easier?
hollycummins
1
240
のびしろを広げる巻き込まれ力:偶然を活かすキャリアの作り方/oso2024
takahashiikki
1
350
OpenTelemetryでRailsのパフォーマンス分析を始めてみよう(KoR2024)
ymtdzzz
3
1k
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
0
200
約9000個の自動テストの 時間を50分->10分に短縮 Flakyテストを1%以下に抑えた話
hatsu38
21
9k
Going Staff - Keynote edition
pragtob
0
430
生成 AI を活用した toitta 切片分類機能の裏側 / Inside toitta's AI-Based Factoid Clustering
pokutuna
0
530
讓數據說話:用 Python、Prometheus 和 Grafana 講故事
eddie
0
320
僕がつくった48個のWebサービス達
yusukebe
17
16k
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
290
Featured
See All Featured
The Invisible Side of Design
smashingmag
297
50k
Thoughts on Productivity
jonyablonski
67
4.3k
Producing Creativity
orderedlist
PRO
341
39k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Teambox: Starting and Learning
jrom
132
8.7k
Raft: Consensus for Rubyists
vanstee
136
6.6k
A Tale of Four Properties
chriscoyier
156
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Designing the Hi-DPI Web
ddemaree
280
34k
4 Signs Your Business is Dying
shpigford
180
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
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