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
20260705_JAWS-UG 栃木 オフライン # 9 -Summitおつかれさま回-
Search
おーつき
July 06, 2026
32
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20260705_JAWS-UG 栃木 オフライン # 9 -Summitおつかれさま回-
Awsのアーキテクチャみんなで共有したいこと
おーつき
July 06, 2026
More Decks by おーつき
See All by おーつき
JAWS-UG初心者支部#81 GWにEduJAWSと何か作ろうもくもく会!
otsuki
0
140
ドラクエで覚えるIAM〜そして案件へ〜
otsuki
2
120
マウントとるやつ、リリースするやつ
otsuki
1
170
re:invent ラスベガスざっくりMapおーつき版
otsuki
0
1.9k
それでもいきたいre:invent2025
otsuki
0
2.2k
JAWS-UG 彩の国埼玉支部 #3_LT(フリー枠①) ああ仕様、こう仕様。これから来る世界
otsuki
1
110
JAWS女子会向けBuilderCard とシステムの提案と解説の仕方資料
otsuki
0
160
20250605.ゆる△Ops.JAWS山梨
otsuki
0
56
彩の国で始めよう。おっさんエンジニアから共有したい、当たり前のことを当たり前にする技術
otsuki
0
580
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
13k
Skip the Path - Find Your Career Trail
mkilby
1
160
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
610
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
210
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Building an army of robots
kneath
306
46k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Transcript
͓ʔ͖ͭ! Ξ Ω ς Ϋ ν Έ Μ ͳ Ͱ
ڞ ༗ ͠ ͨ ͍ ͜ ͱ +"846(ಢΦϑϥΠϯ4VNNJU͓͔ͭΕ͞·ճ <"844VNNJU+BQBOΛ;Γ͔͑Γ·͠ΐ͏ʂʂ> ͪ͗
ࣗݾհ ͓ʔ͖ͭɹ • ͓ࣄ : Ϋϥυ&ίϯςφ ɹɹɹɹɹɹɹɹɹxDevOpsΤόϯδΣϦετΤΫθΫςΟϒϑΣϩʔ • ग़ :
Α͜· • झຯ :ɹમ౬ɺ͞͏ͳɺ͖ΌΜɺΒ͘͝ • ॴଐɿ JAWS-UGॳ৺ऀࢧ෦ • ͖ͳɹAWSϦιʔε: CloudFormation,CloudWatch,ECS/Fargate ɹɹ #jawsug #jawsug_tochigi @plustick ࠓͷͷͷ͚ ʮ͖Ζ͖Ζ͖Ζͬͽʯ ಢ̏ճɺෆଋऀͰ͕͢ΑΖ͓͘͠ئ͍͍ͨ͠·͢ɻ ·Δͱ͘ΜʹCLͷSlackʹೖΕͯΒ͏͓ئ͍͢Δ
݄ɺ%FBUIͶ ͏ ͍ ͘ ͭ ৸ Δ ͱ ɾ
ɾ ɾ Ն ٳ Έ ͕ ࢝ · Δ
݄ɺ%FBUIͶ Ն ͱ ͍ ͑ ո ஊ
ͷո ʮ ʯ ࠓ
*OQVUͷͨΊͷօͷ0VUQVUΛֶͼʹ ΅͘ Ұલ͔ΒΞύϗςϧΛ༧🥶͠ "844VNNJU+BQBOʹ͞Μ͔͢ΔͨΊ ̎̐ʙ̎̓ນு
ʮ,JSPJ041SFWJFXʯ ͬͯΈΑ͏ ̏ͭͷṖΛղ͖໌͔͢ඞཁ͕͋Δ ͷͷ͚ұ Ұ༯ո ͬͬͯΈ
ܕ J04ͷػೳͱɹ#SPBEFO:PVS5 Ո͔ΒࢦࣔͰ͖Δ ґɹཔ ͱ ఏɹҊ ͱ గਖ਼ࢦࣔ ΆʔΓΜ͙ ʮͳΜ͔͖ͨ͠͡ʯ
ܕ J04ͷػೳͱɹ#SPBEFO:PVS5 Ո͔ΒࢦࣔͰ͖Δ ґɹཔ ͱ ఏɹҊ ͱ గਖ਼ࢦࣔ ଉൈ͖େࣄɾɾ
ܕ J04ͷػೳͱɹ#SPBEFO:PVS5 Ո͔ΒࢦࣔͰ͖Δ ґɹཔ ͱ ఏɹҊ ͱ గਖ਼ࢦࣔ ͋Εͱ͜Ε ͳΜͱͳ͓͘͡͞Μ
ΞδϟΠϧ͓ͳ͡ ໌֬͡Όͳ͍ͱ໎͏ͥ
ܕ ͙͢ؼΔࣄΑΓɾ৴པ࣋ͬͯݟकΕΔࣄ Ո͔ΒࢦࣔͰ͖Δ ɹϋʔωε ΕΕͩͥ ༏͍͠ੈք ݟकΔɾר͖औΔؾ֓
ܕ ͙͢ؼΔࣄΑΓɾ৴པ࣋ͬͯݟकΕΔࣄ ਂ͘ʮ·ͳͼɾڭ͑ʯɹˠɹ͘ʮձɾڞ༗ʯɹˠΈ·Δɾ৴པ͢Δɹˠ"*Ϗϧμʔಉ͡ :&4 ڞ༗ /0 ղ :&4 ;Γ͔͑Γ /0
ল ਓ"* ɾ(FNJOJˠࢠ ɾ$PQJMPUˠ෭ૢॎ࢜ ɹ$PXPSLˠಉ྅ ɾ$BMVEFˠֶऀ͞Μ
Δӑࡾͭ࣌ʹࢥ͍͍ͭͨ͜ͱΛ ɹɹɹɹ͓͠ਃ্͛͠·͢ɻ ΈͷΓͷଟ͍̏ؒΛա͝͠·ͨ͠ɻ +"84σϏϡʔ̎
ʮ͔ͨͪʯʮ·͜ͱʯʮ͜ͱΘΓʯ ΩϩΩϩΩϩοϐొஃ͢ΔͨΊʹ ̏ͭͷṖΛղ͖໌͔͢ඞཁ͕͋Δ Խ͚ೣ ͷͷ͚ည
͋Β͢͡ʮ͍͞ͷ͘ʹɾɾɾʯ ͷ̍पʹࢀՃͯ͠ʮ%ZOBNPʹͳͥूܭ͕ؔͳ͍͔ΒͳΜͱ͔͍ͨ͠ɻʯʢ3%4ʹ͋ΔͷʹͶʣ͍ͬͯ͏Λฉ͍ͯ എے͕ౚΔ🥶͕ Ͱͨɹɹɹɹɹ͓͍ͬɾɾɾ ͱ
͋Β͢͡ʮͦͷͨΊɾɾɾʯ %ZOBNPͰूܭΛ͢ΔͨΊʹɺશ݅ݕࡧ4DBOΛ࣮ߦ͢Δ͜ͱͰ େͳಡΈࠐΈΩϟύγςΟ📕36Λফඅ͠ɹɹɹɹɹ·͏ɻ ͪ
͋Β͢͡ʮͦͷͨΊɾɾɾʯ ςʔϒϧશମΛͳΊΔͨΊॲཧ͕ۃ ʹԼʹͭͳ͕Δɻ ͦΕ
͋Β͢͡ʮ݁Ռͱͯ͠ɾɾɾʯ ίετΤΫεϓϩʔϥʔ'JO0QT͕൵໐Λ͋͛Δ ๏֎ͳߴֹٻ🥶͕ɹɹɹɹɹΌʔʔʔͱ͍͏൵໐ͱڞʹ ൃੜͯ͠͠·͏͔͠Εͳ͍ɻ ͗
ܕ ͔ͨͪ "XTͷαʔϏεɺʮօ͕ཉ͍͠ͱࢥ͏ʯͦͷ࣌ʹʮͦ͜ʹ͋ΔʯબࢶͰ͋Δ %ZOBNPͱ3%4త͕ҧ͏ͷͰσʔλΛѻ͏ઃܭ͕ҟͳΔ #MBDL#FMUΛΈͯΈΑ͏ ऀʹฉ͍ͯΈΑ͏ "84બࢶ ؍ DynamoDB RDS(RDB)
ूܭؔ ͳ͠(ScanཔΈ) SQLͰඪ४αϙʔτ(SUM/AVG/GROUP BY) ߴΞΫηεͷΈ ύʔςΟγϣϯΩʔ(ϋογϡ) B-TreeΠϯσοΫε ۤखͳ͜ͱ ԣஅతͳूܭɾෳࡶͳ݁߹ ߴεϧʔϓοτͳ୯७KVΞΫηε ूܭΛߴԽ͢Δʹ ผετΞͷΤΫεϙʔτ దͳΠϯσοΫεઃܭɾूܭ༻ͷผςʔϒϧ/ϚςϦΞϥΠζυϏϡʔ 2. RDB͕ΠϯσοΫεͰʮશ݅ࢀর͠ͳ͍ʯΈ RDB(RDS/MySQL/PostgreSQLͳͲ)෦తʹB-TreeΠϯσοΫεΛ࣋ͭ͜ͱͰɺ తͷߦʹରͯ͠O(log n)ͰΞΫηεͰ͖·͢ɻ • ΠϯσοΫεͳ͠ → Full Table Scan(શߦΛσΟεΫI/OͰᢞΊΔ) • ΠϯσοΫε͋Γ → Index Seek(ߏΛͨͲͬͯతͷߦ͚ͩʹҰઢͰΞΫηε) • 1. ͳͥDynamoDBʹूܭ͕ؔͳ͍ͷ͔ DynamoDBNoSQL(KVS/υΩϡϝϯτܕ)ͰɺύʔςΟγϣϯΩʔʹΑΔ1݅ʙ݅ͷߴͳಡΈॻ͖ʹ࠷దͳํ๏ͱͯ͠ɹMapΛ࠾༻ ෦తʹσʔλΛύʔςΟγϣϯ(ϋογϡ͝ͱ)ʹࢄஔ͢Δ͜ͱͰɹʮରͷσʔλʹҰൃͰʯߴʹɹΞΫηε͕Ͱ͖Δɻ • Query ύʔςΟγϣϯΩʔࢦఆͰߴ(O(1)ʹ͍ۙ) • SUMCOUNTͷΑ͏ͳूܭશύʔςΟγϣϯΛԣஅͯ͠εΩϟϯ͠ͳ͍ͱग़ͤͳ͍ → Scan APIͤʹͳΓɺ݅ʹൺྫͯ͠ίετɾϨΠςϯγ͕૿େ **ͭ·Γʮूܭ͠ͳ͍ʯͱ͍͏ΑΓʮूܭʹ͔ͳ͍ߏ͔ͩΒػೳͱͯ͠ఏڙ͍ͯ͠ͳ͍ʯ**͕ਖ਼֬ͳཧղͰ͢ɻ
ܕ ͔ͨͪ σʔλΛอ࣋͢Δࡍʹ̎छྨΛఆٛͨ͠ɻ ɾ̍ͭ*%ɺ̎ͭଓઌͷॅॴΛอ༗͢Δɹ#ͱݴ͏ߏମɻɹ ʢ̍ͭͷ*%ॏෳͰ͖Δ͕ɺࣗͰอ༗Ͱ͖ͳ͍ɻΘΓʹؔ࿈ઌʹσʔλΛҙຯ͚ͮΔ͜ͱ͕Ͱ͖Δɻʣ ɾ̍ͭ*%ɺ̎ͭΛอ༗͢Δɹ.BQͱ͍͏ߏମɻɹʢ̍ͭͷ*%ॏෳͰ͖ͳ͍ɻϖΞࣗ৴Ҏ֎ͷσʔλʹؔ࿈ੑ࣋ͨͳ͍ʣ #5SFFʯɿ σʔλΛؔ࿈ੑ࣋ͬͯҙຯ͚͠ ଐੑͰσʔλΛநग़͢Δɾҡ࣋͢Δ ,74
σʔλΛ̍ߦɹΞυϨεͱ ߏσʔλΛอ࣋Ͱ͖Δ͕ɺ ඪҰൃͰḷΓண͚Δ͜ͱ VALUE META … ूܭؔ ͳ͠(ScanཔΈ) SQLͰඪ४αϙʔτ(SUM/AVG/GROUP BY) ߴΞΫηεͷ Έ ύʔςΟγϣϯΩʔ(ϋ ογϡ) B-TreeΠϯσοΫε ۤखͳ͜ͱ ԣஅతͳूܭɾෳࡶͳ ݁߹ ߴεϧʔϓοτͳ୯७KVΞΫηε ूܭΛߴԽ͢ Δʹ ผετΞͷΤΫεϙ ʔτ దͳΠϯσοΫεઃܭɾूܭ༻ͷผςʔϒϧ/ϚςϦΞ ϥΠζυϏϡʔ KEY 1 2 3 4 ID ଐੑ ID ଐੑ ID ଐੑ ID ଐੑ ID ଐੑ ID ଐੑ
ܕ ͔ͨͪ ߴʹΞΫη͢ΔͨΊʹɹ.BQͱ͍͏ߟ͑ํΛ͏ σʔλؒͷඥ͚Λ͓͜ͳ͏ͨΊʹɹ-JTUͱ͍͏ߟ͑ํΛ͔ͭ͏ σʔλΛςʔϒϧؒͰඥ͚ ॲཧɾॱংΛ͍ͨͪͨ IUUQTBXTBNB[PODPNKQCMPHTOFXTXFCJOBSCCSET σʔλͷग़͠ೖΕΛढ़හʹߦ͍ ΞΫηεʹ͔͔ΔΛ֬อ͍ͨ͠
ܕ ͔ͨͪ "XTͷαʔϏεɺʮօ͕ཉ͍͠ͱࢥ͏ʯͦͷ࣌ʹʮͦ͜ʹ͋ΔʯબࢶͰ͋Δ %ZOBNPͱ3%4ͱͲ͏͍͏ͷ͔ IUUQTBXTBNB[PODPNKQCMPHTOFXTXFCJOBSCCSET "84બࢶ
ਅ ·͜ͱ γεςϜߏਤઃܭʹͦ͜ʹߦ͖ண͍ͨετʔϦʔ͕͋Δɻ $PMMFDUJPO͍ͬͯ͏σʔλͷ࣋ͪํ ྻͱ࿈ྻ -JTUͬͯͳʹʁ 4FUͬͯͳʹʁ .BQͬͯͳʹʁ ܕͱͱߏ Ϧετɹͱɹ,FZ7BMVFͷѻ͍
IUUQTRJJUBDPN,FOZB4BJUPIJUFNTBFDBFDCCF IUUQTOPUFDPNCSJHIU@MZOYOOEGGFD Coolectio σʔλΛྻɾෳอ࣋ ͍ͨ͠ LIST ɾॱং͕͋Δ ɾॏෳΛڐ༰ Set ɾΩʔˍɹϖΞʹΑΔ ཧ ɾΩʔॏෳΛෆՄ Set ɾॱংॏཁͱ͠ͳ͍ ɾॏෳΛෆՄ CoolectioFramework ΩʔͱͱଐੑͳͲͰଈ ࣌ΞΫηε͍ͨ͠ "SSBZMJTU -JOLFE-JTU 4FU 5SFF4FU )BTI4FU )BTINBQ ࿈ྻ 5SFF. ܕͱͱߏ
ਅ ·͜ͱ ઃܭʹετʔϦʔ͕͋Δɻ 8FMM"SDIJUFDUFE'SBNFXPSLʢΣϧΞʔΩςΫςουɾϑϨʔϜϫʔΫʣͱɺΫϥυ্Ͱ҆શɾߴੑೳɾ෮ݩྗʹ༏ΕͨޮతͳγεςϜΛઃܭɾӡ༻͢ΔͨΊͷแׅతͳϕετϓϥΫςΟεूͰ͢ɻओʹ"84ɺ"[VSFɺ(PPHMF$MPVEͳͲͷ֤Ϋϥυϕϯμʔ͕ఏএ͍ͯ͠·͢ɻ< > Ϋϥυڥͷߏஙʹ͓͍ͯɺ࣭Λܧଓతʹ্ͤ͞ΔͨΊͷओཁͳઃܭݪଇ͕ఆٛ͞Ε͍ͯ·͢ɻ<
> ͦͷͨΊɺͯ͢ͷσʔλʹ ΞΫηε͢Δ͜ͱ͕લఏͳઃܭʹͳͬ ରͷσʔλΛͯ͢ࢀর͠ͳ͍Ͱ ࢀরͰ͖ΔΑ͏ʹઃܭ͞Ε͍ͯΔ Ϧετͱू߹ɺͦΕͧΕͷੑ࣭͕ϦϨʔγϣφϧςʔϒϧʹөͯ͠Δ͔͕ϙΠϯτ wϦετॱং͕͋Γɺಉ͡ͷॏෳڐ͞ΕΔ ্ͷྫͰ"͕൪ͱ൪ʹొ wू߹ॱং͕ͳ͘ɺཁૉͯ͢Ұҙ ॏෳෆՄ ϦϨʔγϣφϧςʔϒϧ͜ͷ྆ํͷੑ࣭Λ෦తʹड͚ܧ͍Ͱ͍·͢ɻ wཧ্ ؔϞσϧ ʮλϓϧͷू߹ʯͳͷͰɺຊདྷॏෳߦ͕ଘࡏ͠ͳ͍ઃܭࢥ w্࣮ͷ3%# 42- ओΩʔ 1, ʹΑͬͯʮߦͷҰҙੑʯͱ͍͏ू߹ͷੑ࣭Λڧ੍ͭͭ͠ɺ ߦͷཧతͳฒͼॱ 1,ͳ͠ͳΒ ॏෳߦΛڐ༰͢ΔʮϦετόοάʯతͳৼΔ͍͢Δ
ਅ ·͜ͱ ઃܭʹετʔϦʔ͕͋Δɻ 8FMM"SDIJUFDUFE'SBNFXPSLʢΣϧΞʔΩςΫςουɾϑϨʔϜϫʔΫʣͱɺΫϥυ্Ͱ҆શɾߴੑೳɾ෮ݩྗʹ༏ΕͨޮతͳγεςϜΛઃܭɾӡ༻͢ΔͨΊͷแׅతͳϕετϓϥΫςΟεूͰ͢ɻओʹ"84ɺ"[VSFɺ(PPHMF$MPVEͳͲͷ֤Ϋϥυϕϯμʔ͕ఏএ͍ͯ͠·͢ɻ< > Ϋϥυڥͷߏஙʹ͓͍ͯɺ࣭Λܧଓతʹ্ͤ͞ΔͨΊͷओཁͳઃܭݪଇ͕ఆٛ͞Ε͍ͯ·͢ɻ<
> తΛͭ͘Δͱΰʔϧʹ͔͑Δ ΞϓϦέʔγϣϯઃܭऀɺશͯͷཁΛѲ͠࠷దͳίʔυΛಋ͖ग़͠ఏڙ͢Δɻ ɹ໘ɺͳΜͰ࡞Δɹͷ͍͍͚Ͳɻɹ͋Δͷ͓͏ɻ ΠϯϑϥετϥΫνϟઃܭऀɺͯ͢ͷػೳΛཧղ͠࠷దͳઃఆΛಋ͖ग़͠ఏڙ͢Δɻ ɹ໘ɺօ͕Γ͍ͨ͜ͱͷ࠷େΛཧղ͠ɺͲ͏ͨ͠Β࣮ݱͰ͖Δ͔Λ۩ମϨϕϧʹ͍࣋ͬͯ͘ɻ
ཧ ͜ͱΘΓ ϦϨʔγϣφϧςʔϒϧͱ࿈ྻɹӬଓԽͱ తͱΰʔϧ͕ҟͳΔͷͰʮ͔ͳ͍͜ͱʯΑΓʮ࠷దΛબ͢Δ͜ͱʯ ༣ศΛѻ͏ͱ͖ͷత͕ͦΕͧΕҟͳΔ ɾΠϯσοΫεͷຊ࣭ʮ࣍Λ࣋ͭຊʯ ɾ%ZOBNP%#zॅॴ Ωʔ ͕Θ͔͍ͬͯΔ༣ศΛҰॠͰಧ͚ΔΈɻ ɾ3%#ͷूܭҬશମͷ༣ศΛ͑Δ࡞ۀ
࣍ͱ͍͏ΠϯσοΫεʹ͍ͭͯ ɾΠϯσοΫεͷຊ࣭ʮ࣍Λ࣋ͭຊʯɻ ɾΠϯσοΫε͕ͳ͚Ε࠷ॳͷϖʔδ͔ΒಡΉ͔͠ͳ͍ ϑϧεΩϟϯ
ͷո ʮ ʯ ࠓ
͋·ͧΜ͍ͬͯ͏&$αΠτͰ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ
ςʔϒϧσʔλؒ࿈ܞΛཧ͢Δɹ3%4ʢ࣮֬ʹσʔλΛӬଓԽʣ ɹɹͱɹ ΩʔͱͰσʔλΛཧ͢Δɹɹɹ%ZOBNPʢढ़හʹσʔλΛอ࣋͢Δʣ ཁ݅ఆٛ ૯߹ςετ Ϣʔβཁٻ ड͚ೖΕςετ جຊઃܭ ৄࡉઃܭ ࣮ɾݕূ
୯ମςετ ݁߹ςετ "NB[POEZOBNP "NB[PO3%4 "NB[POͷ$&0ΞϯσΟδϟγʔɹɹ3%4ͷΩʔϚϯ ࢄίϯϐϡʔςΟϯά"NB[POͷ$50ϫʔφʔϰΥʔήϧɹ%ZOBNPͷੜΈͷɹɹɹɹ ͍͚͍ͯΔɹ
Χʔτʹ ɹΆ͍Ά͍ೖΕ͍ͨ ܾࡁͱૹͱ ͓ಧ͚࣮֬ʹ ӬଓԽ͍ͨ͠ ,74 3FMBUJPOBM%BUBCBTF "NB[POEZOBNP "NB[PO3%4
͋·ͧΜ͍ͬͯ͏&$αΠτͰ%ZOBNP͜͜ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ
͔ʔͱʹɹΆ͍Ά͍ೖΕ͍ͨ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ
ΛΧʔτʹೖΕΔʮߪങҙཉΛܧଓ͍ͤͨ͞ʯ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT ɾΓ͍ͨ͜ͱɿɹΛΧʔτʹొ͢Δ࣌ؒΛ͍ͨ͘͠ ɾ·͜ͱʹɹɹɿɹϢʔβ࣍ͷΛ͕͢͜͞ͱ͕Ͱ͖Δ ɾཧ༝ɹɹɹɹɿɹ݁Ռͱͯ͠Λͨ͘͞Μങͬͯ͘ΕΔՄೳੑ͕ߴ͘ͳΔ *%ΛϢʔβͷΧʔτΛ,FZ໊ʹͯ͠όϯόϯొ͢Δ͜ͱ͕Ͱ͖Δ ɹ,FZɹʮΧʔτz͓ʔ͖ͭzʯ ɹ7BMVFʮ\<*%><*%>ɾɾɾɾ^ʯ
%ZOBNP͕ඞཁͩʂ ϢʔβͷΧʔτΛɹɹɹɹɹɹɹɹɹऔΓग़͢ *%ΛɹɹɹɹɹɹɹɹɹɹɹɹɹɹೖΕΔ ૉૣ͘ Ӭଓ͔༏ઌΛԼ͍͍͛ͯ
Ωʔ͔ΒҰൃͰతͷʹΞΫηεͰ͖Δ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT Ωʔʹʮ໊લʯ ࿈Ͱ͖Δྻ ʹɹʮʯ .BQ ΛӳޠͰݴ͏ͱ ࿈ྻͱɺσʔλʢʣʹҹͱͳΔʮ໊લ ʢΩʔʣʯΛࣗ༝ʹׂΓͯͯཧͰ͖Δσʔλ
ߏͰ͢ɻ ௨ৗͷྻ͕ ͱ͍ͬͨʮ൪߸ʯͰσʔλΛ ཧ͢Δͷʹର͠ɺ࿈ྻʮ໊લʯͰσʔλ Λࢦఆ͢ΔͨΊɺײతͰ͔Γ͍͢ͷ͕ಛ Ͱ͢ɻ ͓ʔ͖ͭ ͡Όʹʔ ·Δ ͐͡; ͢ΘΈ ͻ·Μ ϨϞϯ γϟπ ͍ͪ͝ মച মച Χϝϥ Ϩδ өࣸػ "*ͷຊ ູΜͷຊ εχʔΧʔ ɾɾɾ ՚ݫୌ ΜΔ ञͱᘖᘣ
Ωʔ͔ΒҰൃͰతͷʹΞΫηεͰ͖Δ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT ΩʔͱͰؔΛ࣋ͨͤͨσʔλ͔Β ࿈Ͱ͖Δྻ ΩʔͰʹΞΫηε͢Δ .BQ ΛӳޠͰݴ͏ͱ ͓ʔ͖ͭ ͡Όʹʔ
·Δ ͐͡; ͢ΘΈ ͻ·Μ ϨϞϯ γϟπ ͍ͪ͝ মച মച ോαϒϨ Χϝϥ Ϩδ өࣸػ "*ͷຊ ູΜͷຊ εχʔΧʔ ɾɾɾ ՚ݫୌ ΜΔ ञͱᘖᘣ ͓ʔ͖ͭ ͷ͕ཉ͍͠ TIPQQJOH$BSU\ ͢ΘΈ<l"*ͷຊz zູΜͷຊz zεχʔΧʔz> ͓ʔ͖ͭ<lমചz zমചz> ͡Όʹʔ<l՚ݫୌz zNPOUCFMz zञz zίʔώʔz> ɹɹɿ ^ <41&$>ը໘ʹ͓ʔ͖ͭͷɹΛग़ྗ͢Δ QSJOU TIPQQJOH$BSU<͓ʔ͖ͭ> ग़ྗɹমചɺমച TIPQQJOH$BSU<l͓ʔ͖ͭz>BQQFOE lോαϒϨz ग़ྗɹমചɺমചɺോαϒϨ
Ωʔ͔ΒҰൃͰతͷʹΞΫηεͰ͖Δ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT .BQɺ,FZʹΞυϨεΛ͍࣋ͬͯͯ ࿈Ͱ͖Δྻ 7BMVFͷʹ͍ͪૣ͘ΞΫηεͰ͖Δ .BQ ΛӳޠͰݴ͏ͱ ͓ʔ͖ͭ ͡Όʹʔ
·Δ ͐͡; ͢ΘΈ ͻ·Μ ϨϞϯ γϟπ ͍ͪ͝ মച মച মച Χϝϥ Ϩδ өࣸػ "*ͷຊ ູΜͷຊ εχʔΧʔ ɾɾɾ ՚ݫୌ ΜΔ ञͱᘖᘣ ͓ʔ͖ͭ ͷ͕ཉ͍͠ ͓ʔ͖ͭ ͷ͕ཉ͍͠ ҰൃͰ ΞΫηεͰ͖Δ ͜ΕͩΑʂ ോαϒϨ .BQͷϝϦοτ w σʔλͷҙຯ͕͔Γ͍͢ w ॱ൪ΛؾʹͤͣཧͰ͖Δɻ w ΩʔΛࢦఆ͢Δ͜ͱͰɺ େྔͷσʔλ͔ΒಛఆͷใΛߴͰݕࡧͰ͖Δɻ ʹؔ࿈Λ࣋ͨͤΔ߹ಠࣗʹΛ,FZʹͯ͠ɾɾɾɾ
͠ΧʔτͷΈ͕3%4ͩͬͨΒ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT ొ͢ΔσʔλΛӬଓԽ͢ΔͨΊʹ ςʔϒϧ্ʹϨίʔυΛ ɹ42-Ͱ*OTFSUͨ͠ͷͪ τϥϯβΫγϣϯ֬ఆ͢ΔॲཧΛ࣮֬ʹߦ͏ͨΊͷ ɹʻॲཧ࣌ؒͷͨΊͷίετ͕͔͔Δʼ ͕Χʔτʹొ͞ΕΔͷʹ̑ඵ ͘Β͍ͨͳ͍ͱ͍͚ͳ͍͔͠Εͳ͍ %#ʹೖΕ͍ͯΔͱɹ*/4&354&-&$5Ͱ
ɹɹɹɹɹɹ࣌ؒͱॲཧෛՙ͕͔ͨ͘ͳ͍ͬͯ͘Մೳੑ͕͋Δ
͋·ͧΜ͍ͬͯ͏&$αΠτͰ3%4͜͜ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ
ܾࡁɺͷҾ͖ͯɺૹใͷඥ͚ ɹɹɹɹɹɹ࣮֬ʹӬԕʹܧଓͯ͠ӡ༻ɹར༻ऀͷ69Λ্͍ͤͨ͞ ࡛ۄʹ͞ͳ͍ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ
ߪೖΛ࣮ͨ֬͠ʹσʔλΛ·ͱΊͯཧ͍ͨ͠ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ
ߪೖͨ͠Ϣʔβͷใʮ࣮֬ʹऔҾ͍ͨ͠ʯ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT ɾΓ͍ͨ͜ͱɿɹΧʔτͰߪೖͨ͠ΛͱͲ͚ͯɺۚΛܾࡁ ͍ͨ͠ ɾ·͜ͱʹɹɹɿɹϢʔβૹࢧֹ͍ۚͷ֬ೝ͕Ͱ͖Δɻ ɾཧ༝ɹɹɹɹɿɹ݁Ռͱͯ͠·ͨΛങͬͯ͘ΕΔ 3%4͕ඞཁͩʂ ϢʔβૹใɹɹɹɹɹɹɹɹɹɹɹΛߋ৽ɾ֬ೝ͢Δ
ܾࡁۚͷٻɹɹɹɹɹɹɹɹɹɹɹΛه͢Δ ࣮֬ʹ ߪೖޙใͷӬଓԽΛ༏ઌ
ߪೖΛͨ͠Βɺ࣮֬ʹͦΕͧΕͷσʔλΛ·ͱΊͯҰཡʹཧ͍ͨ͠ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ Χʔτ ͓ʔ͖ͭ ͓ʔ͖ͭ ߪೖه ͓ʔ͖ͭ ૹҾ͖ͯ ͓ʔ͖ͭ ૹॅॴ
͓ʔ͖ͭ ೖۚใ Χʔτ ৴༻औҾ
ߪೖΛͨ͠Βɺ࣮֬ʹͦΕͧΕͷσʔλΛ·ͱΊͯҰཡʹཧ͍ͨ͠ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ Χʔτ ͓ʔ͖ͭ ͓ʔ͖ͭ ߪೖه ͓ʔ͖ͭ ૹҾ͖ͯ ͓ʔ͖ͭ ૹॅॴ
͓ʔ͖ͭ ೖۚใ Χʔτ ৴༻औҾ Χʔτ *% 6TFS/BN F $BSU*% 6 ͓ʔ͖ͭ 6 δϟχʔ 6 6 ߪೖ *% 6TFS/BN F $BSU*% ͓ʔ͖ͭ δϟχʔ *% *UFN/BN F 1SJDF 4BMF মച ോαϒϨ ՚ݫୌ : ૹ ख*% ߪೖ*% 6TFS*% 1SJNFձһ :" 6 : :" 6 / 6 : ͱΧʔτ $BSU*% 6TFS/BN F *UFN*% ͓ʔ͖ͭ ͓ʔ͖ͭ ͓ʔ͖ͭ
ߪೖΛͨ͠Βɺ࣮֬ʹͦΕͧΕͷσʔλΛ·ͱΊͯҰཡʹཧ͍ͨ͠ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ Χʔτ ͓ʔ͖ͭ ͓ʔ͖ͭ ߪೖه ͓ʔ͖ͭ ૹҾ͖ͯ ͓ʔ͖ͭ ૹॅॴ
͓ʔ͖ͭ ೖۚใ Χʔτ ৴༻औҾ Χʔτ *% 6TFS/BN F $BSU*% 6 ͓ʔ͖ͭ 6 δϟχʔ 6 6 ߪೖ *% 6TFS/BN F $BSU*% ͓ʔ͖ͭ δϟχʔ *% *UFN/BN F 1SJDF 4BMF মച ോαϒϨ ՚ݫୌ : ૹ ख*% ߪೖ*% 6TFS*% 1SJNFձһ :" 6 : :" 6 / 6 : ͱΧʔτ $BSU*% 6TFS/BN F *UFN*% ͓ʔ͖ͭ ͓ʔ͖ͭ ͓ʔ͖ͭ লུ
ߪೖͨ͠Ϣʔβͷใʮ࣮֬ʹऔҾ͍ͨ͠ʯ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT ϢʔβૹใɹɹɹɹɹɹɹɹɹɹɹΛߋ৽ɾ֬ೝ͢Δ ܾࡁۚͷٻɹɹɹɹɹɹɹɹɹɹɹΛه͢Δ ࣮֬ʹ ओͳಛͱػೳ • දܗࣜʹΑΔײతͳσʔλཧ ΤΫηϧͷΑ͏ͳදʢςʔϒϧʣΛෳ࡞͠ɺͦΕͧΕͷදʹʮސ٬σʔλʯʮจཤྺʯͱ͍ͬͨಛఆͷใΛཧͯ͠อଘ͠·͢ɻ •
ςʔϒϧؒͷؔ࿈͚ ෳͷදΛʮڞ௨ͷ߲ʢIDίʔυʣʯͰܨ͗߹ΘͤΔ͜ͱͰɺόϥόϥͷσʔλΛΈ߹ΘͤͯෳࡶͳใΛҾ͖ग़͢͜ͱ͕Ͱ͖·͢ɻ [1, 2] • SQLͷ׆༻ σʔλͷݕࡧߋ৽ʹʮSQLʯͱݺΕΔઐ༻ͷݴޠΛ༻͠·͢ɻ͜ΕʹΑΓɺߴͳ݅ࢦఆෳͷදΛ·͍ͨͩσʔλूܭΛޮΑ͘ߦ͑·͢ɻ [1, 2] • ߴ͍σʔλͷ߹ੑʢACIDಛੑʣ σʔλͷໃ६ফࣦΛ͙ͨΊͷػೳ͕ඇৗʹڧྗͰ͢ɻۚ༥γεςϜͳͲɺσʔλͷਖ਼֬ੑ͕ԿΑΓٻΊΒΕΔྖҬͰॏๅ͞Ε·͢ɻ ϦϨʔγϣφϧσʔλϕʔεʢ3%#ʣͱɺσʔλΛʮߦʢϨίʔυʣʯͱʮྻʢΧϥ Ϝʣʯ͔ΒΔදʢςʔϒϧʣܗࣜͰཧ͠ɺ ɹɹɹɹɹɹෳͷදಉ࢜ΛʮؔʢϦϨʔγϣϯʣʯ͚ͮͯѻ͏ΈͰ͢
,FZ7BMVFɹɹͱɹϦϨʔγϣφϧςʔϒϧ ҰཡɹʼɹΧʔτʹՃɹʼɹߪೖɹʼɹҾɹʼɹૹɹʼɹܾࡁਗ਼ࢉɹ IUUQTBXTBNB[PODPNKQCMPHTOFXTDPNQBSJOHEFTJHOBQQSPBDIFTGPSCVJMEJOHTFSWFSMFTTNJDSPTFSWJDFT ɾΓ͍ͨ͜ͱɿɹΛΧʔτʹొ͢Δ࣌ؒΛ͍ͨ͘͠ ɾ·͜ͱʹɹɹɿɹϢʔβ࣍ͷΛ͕͢͜͞ͱ͕Ͱ͖Δ ɾཧ༝ɹɹɹɹɿɹ݁Ռͱͯ͠Λͨ͘͞Μങͬͯ͘ΕΔՄೳੑ͕ߴ͘ͳΔ *%ΛϢʔβͷΧʔτΛ,FZ໊ʹͯ͠όϯόϯొ͢Δ͜ͱ͕Ͱ͖Δ ɹ,FZɹʮΧʔτz͓ʔ͖ͭzʯ ɹ7BMVFʮ\<*%><*%>ɾɾɾɾ^ʯ
ͦͷͨΊʹɹ,74ढ़හʹσʔλΛग़͠ೖΕ͢Δඞཁ͕͋Δ %ZOBNP͕ඞཁͩʂ IUUQTXXXTMJEFTIBSFOFUTMJEFTIPXBXTCMBDLCFMUPOMJOFTFNJOBS BNB[POEZOBNPECBEWBODFEEFTJHOQBUUFSO
ɹɹɹɹ3%#.43%4 "NB[PO3FMBUJPOBM%BUBCBTF4FSWJDF αʔϏεͱͯ͠ఏڙ͞ΕΔ3%#.4ίϯϙʔωϯτɻ&$Πϯελϯεʹ 3%#ΛΠϯετʔϧͨ͠߹ɺ%#ͷΠϯετʔϧόοΫΞοϓ࡞ۀ ࠓ·Ͱ௨ΓࣗલͰߦ͏ඞཁ͕͋Δ͕ɺ3%4Λ༻͢ΔͱɺߏஙࡁΈͷ3%# Λ͙͢ʹར༻͢Δࣄ͕Ͱ͖ɺ·ͨύονͯόοΫΞοϓɺϦΧόϦ "84͕ߦ͏ͨΊɺར༻ऀ3%#ΛαʔϏεͱͯ͠ར༻͢Δࣄ͕Ͱ͖Δɻ ɹɹɹɹ,74%ZOBNP%# "NB[PO%ZOBNP%#
%ZOBNP%#ɺॳ಄ʹൃද͞ΕͨΠϯλʔωοτ࣌ͷΞϓϦέʔ γϣϯͷͨΊʹઃܭ͞ΕͨߴͰεέʔϥϒϧͳ/P42-σʔλετϨʔδͷ αʔϏεͰ͋Δɻ"NB[PO%ZOBNP%#৴པੑɺσʔλٱੑ͕ߴ͍σʔ λϕʔεαʔϏεͰ͋Γɺͦͷσʔλ༰ྔ্࣮࣭ແ੍ݶͰ͋ΓɺΞΫηεੑ ೳ ಡࠐੑೳɺॻࠐੑೳ ΛࣗࡏʹίϯτϩʔϧͰ͖Δͱ͍͏ಛΛ͍࣋ͬͯ Δɻσʔλɺ44% 4PMJE4UBUF%SJWF ʹอଘ͞ΕɺͲͷΑ͏ͳنͰ͋ͬ ͯߴͳύϑΥʔϚϯεΛఏڙͰ͖Δɻ·ͨσʔλࢄετϨʔδʹ֨ೲ ͞Εɺߴ͍৴པੑΛ࣋ͭɻ IUUQTBXTDMPVEEFTJHOQBUUFSOPSHJOEFYQIQ$%1@FBGFBFBFFCFCFEFCDFEFCFIUNM,74@@%ZOBNP%#@"NB[PO@%ZOBNP%# $MPVE%FTJHO1BUUFSO /JOKBPG5ISFFΛݟͯΈΑ
ࠓͷ੍Λ໌ͷݶքͱͯ͠ड͚ೖΕͳ͍ ɾ4Λࢥ͍͍ͭͨ࣌ʹॻ͍ͨઃܭਤ ɾ࡚͞Μ0QFO"*ͷ$&0ɹ ɾ#FESPDLɹ0QFO"*$MBVEF͏͘͝ Ұલ͔ΒΞύϗςϧ🥶Λ༧ͯ͠ ̎̐ʙ̎̓ນு
)VCͱ͍͏ҟੈքۭؒʹ໎͍ࠐΉ +"84ͱ͍͏ίϛϡχςΟʹΛ౿ΈೖΕͨ
ϕου͕̎ͭͳ͜ͱ͋Δ ɾαφͱ࿐ఱ෩࿊̏Օॴ ɾঁੑઐ༻ϑϩΞ ɾ̐'ւ෩ΛΈͳ͕Β'6--ʂɹˍɹ̍'མͪண͍ͨ࿐ఱ ˍɹίʔώʔڇೕ ෦ʹԽহ͋Γ㽂 ચ୕ס૩εϚϗܾࡁˍϩοΫՄೳ ෦ʹ
ळాͰɹ+"84'&45" ݄ͱ͍͑ౙ⛄ ΩϩΩϩΩϩοϐ ༵ʣ ͷͷ͚ࢀ ͳ·͛
݄ͱ͍͑ౙ⛄ ΩϩΩϩΩϩοϐळాʹߦ͘:P IUUQTKBXTVHEPPSLFFQFSKQFWFOUT
݄ͱ͍͑ౙ⛄ ΩϩΩϩΩϩοϐळాʹߦ͘:P དྷ๚ਆ ळా Ͳ͏ɺ"84ͩେ͖ɺ$MPVE'PSNBUJPOͩେ͖ʂ͓ʔ͖ͭͰ͕Μ͢ɻ ݸਓεϙϯαʔͰొͰ͖ͨΜ͢Αɻ ͬͺΓ"84͖ͳօ͞Μͷ࠙ձͬͯ͑͑ΜͩͶ͠ͳ #J[%FW0QTਪਐ෦ͬͯͲ͝Ͱɺ$MPVEˍίϯςφº%FW0QTΤϰΝϯδΣϦετΤάθΫςΟϒϑΣϩʔ͓ͬͯࣄͯ͠ΔΜ͢ɻ օ͞Μ͞ʮΘ͕ΜͶ͜ͱΛΘ͕ΔΑ͏ʹɺ̌Λ̍ʹ͢Δਪਐʯͯ͠ΔΜ͢Αɻ ຖͷҰาҰาΛͭ͘ΔͨΊɺະདྷ͕Βདྷ͔ͨͷΑ͏ʹະདྷΛͭ͘ΔʕʕͦΜͳωίܕϕουϩοΫʹͳΕΔ͝ͱΛເݟͳ͕Βɺ
ϓϥΠϕʔτͰམޠɾΩϟϯϓɾαφˍ+"84ָ͞͠ΜͰΔΜ͢ɻ ΈΜͳ͍͜͏:P 8IBU`T /&595ʂ