Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
スキマ時間でもコードが書きたい
Search
tututen
October 19, 2019
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スキマ時間でもコードが書きたい
Spoke by Developers.IO 2019 in Sapporo.
tututen
October 19, 2019
More Decks by tututen
See All by tututen
今いるチームの紹介
tututen
0
240
Pythonを使ってターミナル上でアニメーションを動かそう
tututen
0
2.6k
Jupyterを触ろう
tututen
0
360
Other Decks in Technology
See All in Technology
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
150
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.7k
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
210
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.5k
beyond jj: config & tools ecosystem
indirect
0
5.3k
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
340
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
870
あけおめLINE 傾向とその対策
nasa9084
0
180
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.8k
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
140
AI coding 整合正規方法
philipz
0
340
Featured
See All Featured
Everyday Curiosity
cassininazir
0
320
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
ラッコキーワード サービス紹介資料
rakko
1
4.9M
Scaling GitHub
holman
464
140k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
Why Our Code Smells
bkeepers
PRO
340
58k
It's Worth the Effort
3n
188
29k
Transcript
εΩϚ࣌ؒͰίʔυ͕ॻ͖͍ͨ ࣄۀ։ൃ෦ɹ։ൃνʔϜ ొஃऀԣࢁจਓ
ࣗݾհ
ࣗݾհ wԣࢁจਓ !UVUVUFO wࣄۀ։ൃ෦։ൃνʔϜ w&$ɺ$3.͚ͷ CBDLFOENJDSPTFSWJDFT w+"7"ϓϩάϥϚ w͖ͳ৯αʔϞϯʂ
w࠷ۙڕհྨͷෆړͷχϡʔε͕ʜ
࠷ۙίʔυॻ͍ͯΔํʁ
ίʔυΛॻ͘ͷ͕͓ࣄͷํʁ
࠷ۙϓϩμΫτίʔυॻ͍ͯΔํʁ
࠷ۙͷ͓ࣄ wաڈ࡞ͨ͠αʔϏεͷҾ͖ܧ͗ࢿྉ࡞ wϚΠΫϩαʔϏεຊ൪Ξοϓσʔτ࡞ۀखॱॻ࡞ wϚΠΫϩαʔϏεʹରͯ͠ͷෛՙࢼݧ wϦϦʔε࡞ۀʢ࣋ͪճΓ੍ʣ wۃكʹCVHpY
จॻΛͨͨ͠ΊΔ͓ࣄଟΊ +BWBΛॻ͓͘ࣄ͕΄΅ͳ͠
࠷ۙͷ͓ࣄ wաڈ࡞ͨ͠αʔϏεͷҾ͖ܧ͗ࢿྉ࡞ wϚΠΫϩαʔϏεຊ൪Ξοϓσʔτ࡞ۀखॱॻ࡞ wϚΠΫϩαʔϏεʹରͯ͠ͷෛՙࢼݧ wϦϦʔε࡞ۀʢ࣋ͪճΓ੍ʣ wۃكʹCVHpY
\จॻ +BWB^Λॻ͘ࣄҎ֎
ຊൃදͷ͍ͭͯ wຊൃදొஃऀͷࠓ͋Δٕज़͔Β೧ग़ͨ͠ղ๏ wࠓճ͢༰ɺʮ࠷దղʯͰܾͯ͠ແ͍ wʮͬͱ͍͍ํ๏͕͋ΔΑʂʯͬͯͱ͖ϋογϡλάΛͭ ͚ͯπΠʔτ͍ͯͩ͘͠͞ʂʂʢݟ·͢ɺ࣌ʹฉ͖·͢ʣ
հࣄྫ w$BTFσʔλೖܦաΛݟ͍ͨ w$BTF&$4ͷλεΫͷࢮҼ͕͠Γ͍ͨ w$BTF*TTVFͷͬͯΔNJMFTUPOFΛ֬ೝ͍ͨ͠
Case 1 σʔλೖܦաΛݟ͍ͨ
$BTFσʔλೖܦաΛݟ͍ͨ wఆͨ݅͠Λ࿙Εͳ͘ొͰ͖Δ͔ͷ֬ೝ wೖ·Ͱͷ࣌ؒΛࢀߟͱͯ͠ܭଌ͍ͨ͠ w%#ͱ&4ͱͷԆ͕͋ΔͳΒଌఆ͍ͨ͠ wσʔλೖͷεϧʔϓοτ͕ೖ࠷தʹམͪͳ͍͔ɺͬ͘͟ Γ֬ೝ͍ͨ͠ wંΕઢάϥϑͰ֬ೝ͍ͨ͠ʂ
ߏਤ
ߏਤ DBͱESͷ͕݅ Ұக͢Δ͔ͷ֬ೝ
ίʔυͰΔ͜ͱɾΒͳ͍͜ͱ wCBTIͰఆظతʹ%#ͱ&4ΛQPMMJOH͢Δ wඵຖʹऔಘ͍ͨ͠ɻ͔͠͠ɺ݅૿͑Δ͝ͱʹ݅औಘ࣌ ʹ%#ɼ&4ڞʹԆ͕େ͖͘ͳΓɺඵຖ͔ΒͣΕΔɻ ΏΔ͘ʮTMFFQʯͰQPMMJOH͢ΔʹͱͲΊ͓ͯ͘ wશࣗಈԽΛࢦ͢Θ͚Ͱແ͍ͷͰɺ άϥϑΛ࡞ΔͷίʔυͰؤுΒͳ͍ wUTWͰϑΝΠϧʹॻ͖ग़ͤ(PPHMF4QSFBETIFFUͰάϥϑ Λ࡞Δ͜ͱ͕Ͱ͖Δ
EBUFίϚϯυͰ+45औಘ $ date +"%Y/%m/%d %H:%M:%S %Z" 2019/09/xx 02:44:38 UTC
$ TZ=JST-9 date +"%Y/%m/%d %H:%M:%S %Z" 2019/09/xx 11:44:54 JST w&$ͷλΠϜκʔϯΛมߋͤͣʹEBUFίϚϯυΛ+45Ͱ ֬ೝ͢ΔখٕEBUFίϚϯυͷ಄ʹҎԼΛ͚ͭΔ 5;+45PS5;"TJB5PLZP
%#ɺ&4ͷDPVOUΛऔಘ͢Δ 1 # DB 2 DB_COUNT=$(mysql -uroot -p${PASSWD} \
3 -h${AURORA_ENDPOINT} ${DB_NAME} \ 4 -N -e 'select count(*) from '${TABLE_NAME}) 5 6 # ES 7 ES_COUNT=$(curl -s -H"Content-Type:application/json" \ 8 "http://${ES_ENDPOINT}:9200/${ES_INDEX_NAME}/_search" \ 9 -XPOST -d'{}' | jq '.hits.total') 10
ඵ͓͖ʹQPMMJOH͢Δ 1 LOG_NAME=count.log 2 if [ -f ${LOG_NAME} ];
then 3 rm ${LOG_NAME} 4 fi 5 6 while :; do 7 8 # ͜͜ʹDBͱESͷcountΛऔಘ͢ΔॲཧΛೖΕΔ 9 10 printf "%s\t%s\t%s\n" \ 11 "$(TZ=JST-9 date +'%m/%d %H:%M:%S JST')" \ 12 "${DB_COUNT}" "${ES_COUNT}" | tee -a ${LOG_NAME} 13 sleep 5 14 done
࣮ߦ݁ՌʢTBNQMFʣ 09/xx 02:09:12 JST 14492481 7606726 09/xx 02:09:21 JST
14498630 7610508 09/xx 02:09:30 JST 14504525 7611873 09/xx 02:09:39 JST 14510488 7615665 09/xx 02:09:49 JST 14516415 7618484 09/xx 02:09:58 JST 14522609 7620923 09/xx 02:10:07 JST 14528732 7624223 09/xx 02:10:16 JST 14535006 7627025 09/xx 02:10:26 JST 14541305 7630306 09/xx 02:10:35 JST 14547499 7633213
࣮ߦ݁ՌʢTBNQMFʣ 09/xx 02:09:12 JST 14492481 7606726 09/xx 02:09:21 JST
14498630 7610508 09/xx 02:09:30 JST 14504525 7611873 09/xx 02:09:39 JST 14510488 7615665 09/xx 02:09:49 JST 14516415 7618484 09/xx 02:09:58 JST 14522609 7620923 09/xx 02:10:07 JST 14528732 7624223 09/xx 02:10:16 JST 14535006 7627025 09/xx 02:10:26 JST 14541305 7630306 09/xx 02:10:35 JST 14547499 7633213
࣮ߦ݁ՌʢTBNQMFʣ 09/xx 02:09:12 JST 14492481 7606726 09/xx 02:09:21 JST
14498630 7610508 09/xx 02:09:30 JST 14504525 7611873 09/xx 02:09:39 JST 14510488 7615665 09/xx 02:09:49 JST 14516415 7618484 09/xx 02:09:58 JST 14522609 7620923 09/xx 02:10:07 JST 14528732 7624223 09/xx 02:10:16 JST 14535006 7627025 09/xx 02:10:26 JST 14541305 7630306 09/xx 02:10:35 JST 14547499 7633213 σʔλͷಉظ͕શମతʹԆ͕େ͖͘ɺ ऴ൫&4ͷσʔλ͕ߥͿ͍ͬͯΔͷͰɺ &4ଆʹͳΜΒ͔ͷݪҼ͕͋Γͦ͏ ͬͯͷ͕ਪଌͰ͖ͨΓ͠·͢
࡞ͬͯΈͯ w&4ͷΠϯελϯελΠϓͰͷੑೳҧ͍ͰೖԆʹݟ͑ͯ ௐ͔ͬͨ͢͠ wදܭࢉΞϓϦͷάϥϑ࿑ͤͣݟ͍͢ wσʔλྔ͕૿͑ͯདྷΔͱඵຖʹͳΒͳ͍ wEBUFίϚϯυͷ5;͔Βྡྷ
Case 2 ECSͷλεΫͷࢮҼ͕Γ͍ͨ
$BTF&$4ͷλεΫͷࢮҼ͕͠Γ͍ͨ w&$4Ͱಈ͍ͯΔ&41045͢ΔαʔϏεͷλεΫ͕େྔʹࢮ͵ wதʹ࣌ؒෛՙݕূ͍ͯ͠ΔͨΊɺλεΫͷ4501ใ͕ ".$্͔Βফ͍͑ͯΔ wˢIܦա͢Δͱফ͍͑ͯΔ wʮݕূ͍ͨ݁͠Ռʯ͕ग़ͳ͍ݪҼ͕Θ͔Βͳ͍ͷͰɺௐࠪ͠ͳ ͍Θ͚ʹ͍͔ͳ͍ wத࣌ؒΓ͍ͭͯࢹͨ͘͠ͳ͍ʢ༡ͼ͍ͨʣ
ߏਤ ͜ͷαʔϏεͷλεΫ͕ Α͘མͪΔ
λεΫͷ4501ใ ݱࡏʣ ఀࢭݪҼͷใ͕1࣌ؒܦͭͱ ফ͑ͯɺ͑ͳ͘ͳΔ
ίʔυͰΔ͜ͱɾΒͳ͍͜ͱ wఆظ࣮ߦͷબࢶ৭ʑ͋ΔͩΖ͏͚Ͳɺख࣋ͪͷثͰҰ ൪ѻ͍͍҆"84-BNCEBʢ1ZUIPOʣ "NB[PO $MPVE8BUDI&WFOUT Ҏ߱$8&WFOUT w&YJUͨ͠λεΫͷϑΝΠϧϨετΞͰ͖ͨΒ͋ͱ͋ͱௐ ͍͚ࠪ͢͠ΕͲɺख࡞ۀ͔ͭͬͯͨΒͷӡ༻Ͱ
wϝʔϧݸਓతʹຒΕͤ͞Δࣗ৴͕͋ΔͷͰɺࣾνϟο τɺࠓճ4MBDL௨ͯ͠ϩάΛ͢ ※ड৴τϨΠͷΠϝʔδը૾Ͱ͢→
"84-BNCEBͬͯ௨͠Α͏ w"84$-*Ͱӈͷใ͕औΕΔ͔֬ೝ wMJTUUBTLT͔Β4UPQͨ͠UBTL"SOΛऔಘ wEFTDSJCFUBTLT͔Β4UPQͨ͠ใΛҾ͖ग़ͤΔͷΛ֬ೝ w"84$-*ͰͰ͖Δ͜ͱCPUPͰͰ͖Δ͜ͱ w௨*ODPNJOH8FCIPPLTΛ͍4MBDL wIͰফ͑ΔͳΒ͝ͱ$8&WFOUTͰఆظ࣮ߦ͠ɺલճ࣮ ߦ͠௨͓͑ͨ͠UBTL"SOΛ4ʹอଘ
"84$-*CPUP aws ecs list-tasks \ --cluster ${CLUSTER_NAME} \ --service-name
${SERVICE_NAME} \ --desired-status "STOPPED" ecs = boto3.client("ecs") resp = ecs.list_tasks( cluster=CLUSTER_NAME, serviceName=SERVICE_NAME, desiredStatus="STOPPED") wTVCDPNNBOEΛTOBLF DBTFʹมͨ͠ϝιου ໊ʹͳͬͯΔ wύϥϝʔλ໊ΛDBNFM DBTFʹมͨ͠Ҿʹ ͳ͍ͬͯΔ wSFTQʹKTPO͔ΒQZUIPO ͷEJDUMJTUʹม͞Ε ͨσʔλ͕ฦͬͯ͘Δ
࣮ߦ݁Ռ
࣮ߦ݁Ռ 4MBDLʹϩά͕ΔͷͰɺͲ͏ͯ͠λεΫ͕ࢮΜ͔ͩͲ͏͔͕Θ͔Δɻ ͜ΕΒͷใΛݩʹ࣍ճҎ߱ͷෛՙࢼݧͰىಈύϥϝʔλλεΫͷϝϞϦྔΛ ௐͨ͠ΓɺDPOUBJOFS*OTUBODF"SOΑΓDPSFEVNQΛճऩͰ͖ͨΓͨ͠ɻ
࡞ͬͯΈͯ wࢮΜͩλεΫͷௐ͕͍ࠪͩͿָʹͳͬͨ wಋೖલλεΫ͕ࢮΜͩ͜ͱʹؾ͍ͮͨͱ͖ʹ౿Έ͔Β &$4ͷϗετΠϯελϯεݸʹରͯ͠ɺ44)ϦϞʔτί ϚϯυΛୟ͍ͯϗετΛ୳ͨ͠ wಛఆͷαʔϏε͚ʹ࡞ͬͨͱ͜Ζɺ্ͷਓ͔ΒʮશαʔϏ ε༻ͷཉ͍͠ʯͱ͍͏͕Ͱͨ ʢ࣌ؒΛݟ͚ͭͯରԠ͍ͨ͠ͳʔʣ
Case 3 IssueͷͬͯΔmilestoneΛ֬ೝ͍ͨ͠
$BTF*TTVFͷͬͯΔNJMFTUPOFΛ֬ೝ͍ͨ͠ wຖिϦϦʔε࡞ۀ͕͋Δ w୲࣋ͪճΓɺೋਓͰ࡞ۀ͢Δ w࡞ۀͷதʹݸ͋ΔϦϙδτϦͷNJMFTUPOFΛ֬ೝ͠ɺ ͬͨ*TTVFΛҠಈ͠ɺNJMFTUPOFΛDMPTF͢Δ࡞ۀ͕͋Δ wʮ͑ɺͳʹͦΕ໘͍͘͞ɻ͏ͪͷ൪͕དྷΔલʹͬͯΔ NJMFTUPOF͚ͩݟΕ͍͍Α͏ʹ͍ͨ͠ʯ
ίʔυͰΔ͜ͱɾΒͳ͍͜ͱ w࠷ॳCBTIͷGPS PQFOίϚϯυͬͯϒϥβʹશ෦දࣔͯ͠ HSFQͯ͠୳ͦ͏ˠݸͷλϒΑΖ͘͠ͳ͍ w"84-BNCEB (JU)VC"1*WΛ͍ɺ֤ϦϙδτϦͷNJMFTUPOF ͱɺNJMFTUPOFʹͬͯΔ*TTVF13Λऔಘ wผͷCPUͷίʔυʢOPU࡞ऀʣ͕͋ΔͷͰೝূ෦ྲྀ༻ w͜ΕΒͷใΛ4MBDLʹ௨
w*ODPNJOH8FCIPPLTͷ63-$BTFͷΛྲྀ༻ wNJMFTUPOFʹ͍ͬͯΔ*TTVFͷҠಈɺNJMFTUPOFΛด͡Δॲཧ࣮͠ ͳ͍ʢʹ֬ೝϦϦʔε୲ऀ͕Δʣʢཧ༝ޙड़ʣ
ߏਤ w࣌Ͱಈ͔͢ͷͰ$8&WFOUT Ͱ࣮ߦ wखಈͰ࣮ߦ͍ͨ͠ཁʹԠ͑ TMBTIDPNNBOE "1* (BUFXBZͷ࿈ܞʢޙՃʣ wJDPOΛมߋͰ͖Δ͜ͱΛ͍͍ ͜ͱʹ̍MBNCEBෳͯ͠Δ
࣮ߦ݁Ռ
࣮ߦ݁Ռ ϦϦʔε*TTVF13ͷ "TTJOFFͷਓʹϦϓϥΠ͕ͭ͘Α
࣮ߦ݁Ռ ϦϦʔεNJMFTUPOFͷDMPTF ʹ͍ͭͯ֬ೝ͢ΔΑ
࡞ͬͯΈͯ wධ͕Α͔ͬͨ͠ɺࣗͰͬͯΈͯͱͯศརͩͬͨ wࣗͷϦϦʔεલʹཉ͍͠ػೳ͕Ͱ͖ͯͯͦͷͷ͏ͪʹ࣮ͨ͠Γ wࣗಈͰTFNWFS͚ͭΔػೳͱ͔ߦ͚ͦ͏ͩΑͶɺͱ͍͏ໝ͕͔ͲͬͨΓ w·͊ɺ՝ͨ͘͞Μ w༵Ҏ֎ʹϦϦʔε͕ൃੜ͢Δͱ৭ʑͱ่յ͢Δ wॲཧతʹʮ*TTVFʢ13ʣΛ࣍ͷNJMFTUPOFҠಈ͢Δʯͱ͍͏ॲཧ࣮ ͨ͠Γ͢Δ͕ɺۦ͚ࠐΈ*TTVFΛݟಀ͢Մೳੑ͕͋ͬͨͷͰɺॲཧʹΈ ࠐΜͰ͍ͳ͍
ۦ͚ࠐΈ͓ئ͍ʢ*TTVFʣ ΊΑ͏ʂ
·ͱΊ
·ͱΊ wෛՙࢼݧͷதʹίʔυॻ͚Δͱ͜ΖʢTIFMMɺCPUʣ͕ͨ ͘͞Μ͋Δ wશࣗಈԽޙʑָ͕͔͚ͩͲɺൃల్্ͰΓ͗͢Δͱ ӡ༻ʹࢧো͕ͰΔ͔ʁʹ΄Ͳ΄Ͳ͕େࣄ wίϐϖͩΖ͏͕ͳΜͩΖ͏ָ͕Λ͢Δ w࡞Εͦ͏ͳΒαΫοͱ࡞ͬͯΈΔ wҊ֎େͨ͠࡞ۀ͡Όͳͯ͘ଞͷਓʹ͞ΔՄೳੑ͕͋Δ
None