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
TakumaKume_kixs_vol002
Search
Takuma Kume
December 02, 2016
Technology
0
480
TakumaKume_kixs_vol002
九州インフラ交流勉強会(Kixs) Vol.002
https://kixs.connpass.com/
ホスティングにおける柔軟かつ軽量なアクセス制御の必要性とその実装
@takumakume
Takuma Kume
December 02, 2016
Tweet
Share
More Decks by Takuma Kume
See All by Takuma Kume
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
420
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
1.8k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
410
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
4.6k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
1
2k
ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE
takumakume
1
2.3k
GitOpsで実現するPull Request毎のプレビュー環境/Preview environment for each Pull Request by GitOps
takumakume
0
1.5k
Goでkubernetes operatorを実装してアプリのプレビュー環境を作る/go-kubernetes-operator
takumakume
0
160
クラウドネイティブな開発環境への移行/Move to the cloud native development environment
takumakume
1
570
Other Decks in Technology
See All in Technology
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
1
110
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
140
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
Engineer Career Talk
lycorp_recruit_jp
0
190
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
160
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
430
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
890
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Site-Speed That Sticks
csswizardry
0
28
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Done Done
chrislema
181
16k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
4 Signs Your Business is Dying
shpigford
180
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Ruby is Unlike a Banana
tanoku
97
11k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Transcript
ٱถഅ(.01FQBCP *OD भΠϯϑϥަྲྀษڧձ,*94WPM!(.0ϖύϘԬࢧࣾ ϗεςΟϯάʹ͓͚Δॊೈ͔ͭܰྔͳΞΫηε੍ޚͷ ඞཁੑͱͦͷ࣮
ࣗݾհ ٱถ അ (@takumakume) ߴߍଔۀʙ6ؒ ΠϯλʔωοταʔϏεϓϩόΠμͰۈ ωοτϫʔΫʙϛυϧΣΞͷߏங ϓϦηʔϧεΤϯδχΞ 20164݄͔ΒϖύϘʹೖࣾ ϩϦϙοϓʂͷΠϯϑϥΤϯδχΞ
࣍ ϗεςΟϯάʹ͓͚Δॊೈ͔ͭܰྔͳΞΫηε੍ޚͱ mrubyΛ༻͍ͨ࣍ੈΞΫηε੍ޚͷ࣮ ·ͱΊ
ϗεςΟϯάʹ͓͚Δॊೈ͔ͭܰྔͳΞΫηε੍ޚ ͱ
ॊೈ͔ͭܰྔͳΞΫηε੍ޚ
ϗεςΟϯάʹ͓͚ΔΞΫηε੍ޚ ϗεςΟϯάͦͷಛੑ্ɺ͓٬༷ͷ༷ʑͳίϯςϯπΛ͓ ༬͔Γ͍ͯ͠Δɻ தʹҟৗʹߴෛՙʹͳΔͷɺDDoSͷରʹͳΔίϯς ϯπͳͲ༷ʑͰ͋Δɻ ͔͠͠ɺ͜ͷΑ͏ͳҰ෦ͷίϯςϯπʹΑΓɺͦͷαʔόΛ ͝ར༻͍͍ͯΔେଟͷଞͷ͓٬༷͕շదʹ8&#Λར༻Ͱ͖ͳ͘ ͳͬͯ͠·͏͜ͱɺ͋ͬͯͳΒͳ͍ͱզʑߟ͍͑ͯ·͢ɻ
ຊηογϣϯͰͦͷղܾखஈͷ̍ͭͱͯ͠ɺ ϩϦϙοϓʂͰߦ͍ͬͯΔ ଟ͘ͷ͓٬༷ʹ8&#Λշదʹ͝ར༻͍ͨͩͨ͘Ίͷ ࣍ੈΞΫηε੍ޚʹ͍ͭͯ͝հ͠·͢ɻ
ॊೈ͔ͭܰྔͳΞΫηε੍ޚ
ݱঢ়ͷΞΫηε੍ޚͷ՝
͜Ε·Ͱʹར༻ͨ͠ΞΫηε੍ޚखஈ mod_cbandΛར༻ͨ͠ΞΧϯτ୯ҐͰͷτϥϑΟοΫ ੍ޚͱಉ࣌ΞΫηε੍ޚ mod_vhost_maxclientsΛར༻ͨ͠υϝΠϯ୯ҐͰͷ ಉ࣌ΞΫηε੍ޚ ͦΕͧΕ՝͕͋ͬͨ
NPE@DCBOEΛར༻੍ͨ͠ޚʹΑΔ՝ ΞΧϯτ୯ҐͷτϥϑΟοΫͱಉ࣌ΞΫηε੍ݶΛ͍ͯͨ͠ɻ CBandSpeed 10Mb/s 30 30 mod_cbandΛ༗ޮʹ͢Δ͜ͱͰ70%ఔͷύϑΥʔϚϯε ྼԽ͕ੜ͡ɺ੍ޚػߏࣗମ͕ϘτϧωοΫͱͳͬͨɻ
NPE@WIPTU@NBYDMJFOUTΛར༻੍ͨ͠ޚ mod_cbandͷύϑΥʔϚϯεྼԽ͕େ͖͍ͨΊͪ͜ΒΛ࠾༻ɻ ಋೖʹΑΔύϑΥʔϚϯεྼԽ2%ͱߴͳιϑτΣΞɻ ҎԼͷΑ͏ʹυϝΠϯ୯Ґͷಉ࣌ΞΫηε੍ݶΛߦ͏ɻ <VirtualHost *> DocumentRoot /path/to/web ServerName
hoge.example.jp VhostMaxClients 30 </VirtualHost> ͔͠͠ɺ࣍ͷΑ͏ͳύλʔϯͰ՝͕ੜͨ͡ɻ
NPE@WIPTU@NBYDMJFOUTΛͲ͏͍ͬͯΔ͔ ڞ༻8&#αʔό IPHFDPN mod_vhost_maxclientsͷ੍ݶ ZDPN YDPN ஶ͘͠Ϧιʔε༻ྔ͕ภΒͳ͍Α͏ʹେͷϦιʔεׂͱ ͯ͠ɺ֤υϝΠϯʹಉ࣌ଓͷ੍ݶΛ͔͚͍ͯ·͢ɻ
ڞ༻8&#αʔό IPHFDPN ॲཧͷॏ͍ϓϩάϥϜʹΞΫηε͕ूத͠αʔό͕ߴෛՙͱͳͬͨ mod_vhost_maxclientsͷ੍ݶ ZDPN YDPN
ڞ༻8&#αʔό IPHFDPN mod_vhost_maxclientsͷ੍ݶ ZDPN YDPN NPE@WIPTU@NBYDMJFOUTͷ੍ݶΛڧΊΔඞཁ͕͋Δ
ڞ༻8&#αʔό IPHFDPN ZDPN YDPN ੍ݶΛڧΊͨ ܰྔͳίϯςϯπʹΞΫηεͰ͖ͳ͘ͳΔ
ڞ༻8&#αʔό IPHFDPN ZDPN YDPN ຊདྷ੍ޚ͞ΕΔඞཁ͕ͳ͍ϑΝΠϧ·Ͱ ΞΫηεͰ͖ͳ͘ͳͬͯ͠·͏ɻ
ղܾํ๏ ڞ༻8&#αʔό IPHFDPN ZDPN YDPN ϑΝΠϧ୯ҐͰ੍ޚ mod_vhost_maxclients
ղܾํ๏ ڞ༻8&#αʔό IPHFDPN ZDPN YDPN ϑΝΠϧ୯ҐͰ੍ޚ mod_vhost_maxclients αʔόͷෛՙΛԼ͛ͭͭɺ੍ޚʹΑΔӨڹΛۃখԽͰ͖Δɻ
࣌ ࣌ ࣌ ࣌ ࣌ ࣌
࣌ ࣌ ࣌ ͋ΔαʔόͷϦιʔεফඅྔ <>
࣌ ࣌ ࣌ ࣌ ࣌ ࣌
࣌ ࣌ ࣌ શମ ͋ΔαʔόͷϦιʔεফඅྔ <> ಛఆͷϑΝΠϧ ಛఆͷ࣌ؒʹେྔʹΞΫηε͕͋Δ
࣌ ࣌ ࣌ ࣌ ࣌ ࣌
࣌ ࣌ ࣌ શମ ͋ΔαʔόͷϦιʔεফඅྔ <> ಛఆͷϑΝΠϧ ಛఆͷϑΝΠϧͷॲཧͰϦιʔεͷ΄ͱΜͲΛফඅ͠ ఆظతʹଞͷ͓٬༷ͷαʔϏεఏڙʹࢧোΛ͖͍ͨͯͨ͠ɻ
࣌ ࣌ ࣌ ࣌ ࣌ ࣌
࣌ ࣌ ࣌ શମ ಛఆͷϑΝΠϧ ղܾํ๏ <> ෛՙͷߴ͍ϑΝΠϧʹରͯ͠ ࣌ؒࢦఆͰ੍ޚ͢Δ
ॊೈͳΞΫηε੍ޚͷ·ͱΊ ݱঢ়ΑΓࡉ͔͍ɺϑΝΠϧ୯ҐͰΞΫηε੍ޚͰ͖ΔΑ͏ ʹͯ͠ɺ੍ޚʹΑΔӨڹΛۃখԽ͢Δ͜ͱɻ ಛఆͷ࣌ؒͷΈΞΫηε੍ޚΛ༗ޮԽͰ͖Δ͜ͱɻ
ॊೈ͔ͭܰྔͳΞΫηε੍ޚ
ϗεςΟϯάͰ1ͷαʔόΛଟ͘ͷ͓٬༷ʹ͝ར༻͍ͨͩ͘͜ ͱͰ҆Ձʹఏڙ͍ͯ͠Δɻ ࠓޙͰ͖Δ͚ͩ҆ՁʹշదͳαʔϏεΛఏڙ͍ͨ͠ɻ ΞΫηε੍ޚͷػߏ͕ϘτϧωοΫʹͳͬͯɺͦΕΛୡͰ͖ ͳ͘ͳΔɻ ܰྔͳΞΫηε੍ޚͷඞཁੑ
ॊೈ͔ͭܰྔͳΞΫηε੍ޚ ͱ
ϑΝΠϧ୯ҐͰΞΫηε੍ޚͰ͖Δ͜ͱɻ ಛఆͷ࣌ؒଳͷΈΞΫηε੍ޚΛ༗ޮԽͰ͖Δ͜ͱɻ ύϑΥʔϚϯεྼԽΛۃྗى͜͞ͳ͍͜ͱɻ ॊೈ͔ͭܰྔͳΞΫηε੍ޚͱ ͲͷΑ͏ʹ࣮ݱ͢Δ͔ʁ
ϑΝΠϧ୯ҐͷΞΫηε੍ޚ طʹ"QBDIFͷϞδϡʔϧ͕ଘࡏ͢Δɻ
NPE@WMJNJU mod_vlimit https://github.com/matsumoto-r/mod_vlimit ϑΝΠϧσΟϨΫτϦ୯ҐͰಉ࣌ΞΫηε੍ޚΛ͢Δ͜ͱ͕Ͱ͖Δɻ <Files "hoge.php"> VlimitIP 30 /path/to/hoge.php </Files>
ϑΝΠϧ୯ҐͰͷΞΫηε੍ޚΛߦ͏ػೳ͋Δ͕ ࠓճಋೖʹࢸΒͳ͔ͬͨɻ
NPE@WMJNJUΛ࠾༻͠ͳ͔ͬͨཧ༝ ࣌ؒࢦఆͰ੍ݶΛ༗ޮԽͰ͖Δػೳ͕ͳ͍ɻ ApacheͷϞδϡʔϧͳͷͰCݴޠͰ࣮͞Ε͍ͯΔɻ ӡ༻ܥͷπʔϧ࣌ؒͷܦաʹରͯ͠ॊೈͳมߋ͕ཁ ٻ͞ΕΔɻ CݴޠͰͷ։ൃͱͳΔͱ։ൃ্͕͕Δɺ։ൃऀ͕ݶ ΒΕΔɻ
ͰɺͲͷΑ͏ʹ࣮ݱ͢Δ͔ʁ
“mruby” ͳΒղܾͰ͖Δɻ
NSVCZ Rubyͷύύ͜ͱ “Matz” ͞Μ͕։ൃ͍ͯ͠Δɻ লϝϞϦͷΈࠐΈ͚ͷRuby࣮ɻ Cݴޠ͕ۤखͳͻͱͰɺmrubyΛ͑RubyͰΈࠐΈ ։ൃΛߦ͏ࣄ͕Ͱ͖Δɻ
ApacheNginxͰmrubyΛ༻͍ͨΈࠐΈ ։ൃΛ࣮ݱͨ͠ιϑτΣΞ͕ଘࡏ͢Δ
NPE@NSVCZOHY@NSVCZ ฐࣾͷ@matsumotory͕։ൃ͍ͯ͠Δɻ mod_mruby ApacheͰmrubyΛར༻͢ΔͨΊͷϞδϡʔϧ ngx_mruby nginxͰmrubyΛར༻͢ΔͨΊͷ֦ு࣮ CݴޠͰϞδϡʔϧΛ࣮͠ͳ͚Ε࣮ݱͰ͖ͳ͔ͬͨڍಈΛmruby Λ͙ͬͯ͢ʹ࣮Ͱ͖ͯɺ࠷খݶͷύϑΥʔϚϯεྼԽʹཹΊΔ͜ ͱ͕Ͱ͖ΔιϑτΣΞɻ
IUUQTHJUIVCDPNNBUTVNPUPSNPE@NSVCZ mod_mruby -1.5% ngx_mruby +17.5% ੩తίϯςϯπʹର͢ΔύϑΥʔϚϯεܭଌ݁Ռ
mrubyΛ༻͍Ε֦ுੑɺอकੑΛଛͳΘͣ ࠷খݶͷύϑΥʔϚϯεྼԽʹཹΊͯ ιϑτΣΞΛ։ൃ͢Δ͜ͱ͕Ͱ͖Δɻ
NSVCZΛ༻͍ͨ࣍ੈΞΫηε੍ޚͷ࣮
࣮ʹ͋ͨͬͯར༻ͨ͠ιϑτΣΞ
IUUQBDDFTTMJNJUFS ฐࣾͷ @matsumotory ͕։ൃ͍ͯ͠Δɻ https://github.com/matsumoto-r/http-access-limiter mod_mruby͘͠ngx_mrubyͰऔಘͨ͠ҙͷϦΫΤετύϥ ϝʔλΛ༻͍ͯಉ࣌ଓΛΧϯτ͢ΔmrubyϛυϧΣΞ औಘͰ͖ΔϦΫΤετύϥϝʔλʹΞΫηεઌͷϑΝΠϧͷϑϧ ύεΛ࢝ΊɺଓݩͷIPΞυϨεɺURLͳͲΛऔಘͰ͖ΔͨΊ ༷ʑͳ༻్Ͱ༻Ͱ͖Δɻ
ಈ࡞֓ཁ NSVCZ 8PSLFS NSVCZ 8PSLFS NSVCZ IUUQE
ڞ༗ϝϞϦ global mutex ಉ࣌ଓ Χϯλʔ KVS ಉ࣌ଓΧϯλʔ localmemcacheΛ༻͍ͨ Key-Value-Store Ωʔͱͨ͠ϦΫΤετύϥϝʔ λΛݩʹಉ࣌ΞΫηεΛΧ ϯτ͢Δɻ global mutex ֤Worker͔Βಉ࣌ଓΧ ϯλʔΛૢ࡞͢ΔͨΊෆ ߹͕ൃੜ͠ͳ͍Α͏ʹϩο ΫΛߦ͏ɻ KEY /path/to/hoge.php VALUE 1
ಈ࡞֓ཁ NSVCZ 8PSLFS NSVCZ 8PSLFS NSVCZ IUUQE
ڞ༗ϝϞϦ global mutex ಉ࣌ଓ Χϯλʔ KVS ϦΫΤετ ϦΫΤετ NVUFYΛϩοΫ MPDL ϦΫΤετύϥϝʔλΛΩʔ ʹΠϯΫϦϝϯτ ΠϯΫϦϝϯτ KEY /path/to/hoge.php VALUE 1 VOMPDL NVUFYΛΞϯϩοΫ
ಈ࡞֓ཁ NSVCZ 8PSLFS NSVCZ 8PSLFS NSVCZ IUUQE
ڞ༗ϝϞϦ global mutex ಉ࣌ଓ Χϯλʔ KVS ίϯςϯπͷॲཧΛߦ͏ NVUFYΛϩοΫ MPDL σΫϦϝϯτ σΫϦϝϯτ VOMPDL NVUFYΛΞϯϩοΫ KEY /path/to/hoge.php VALUE 0 ίϯςϯπͷॲཧ
ಈ࡞֓ཁͷ·ͱΊ ϦΫΤετ͕͋ͬͨ࣌ʹɺϦΫΤετύϥϝʔλΛmod_mruby ngx_mrubyΛ༻͍ͯऔಘ͢Δɻ ΞΫηε੍ޚΛ͍ͨ͠୯ҐΛΩʔͱͯ͠ɺಉ࣌ଓΛΧϯτ͢Δɻ ෳͷWorker͔ΒΧϯλʔૢ࡞͢ΔͨΊɺglobal mutexΛͬͯ ෆ߹͕ى͖ͳ͍Α͏ʹ੍ޚ͢Δɻ
ػೳՃΛ͢Δ http-access-limiterʹϑΝΠϧຖͷ࠷େಉ࣌ଓͷઃఆ ػೳɺ੍ޚΛ༗ޮԽ͢Δ࣌ؒଳΛઃఆ͢ΔػೳΛՃͨ͠ ͍ɻ mrubyͰॻ͔Ε͍ͯΔͨΊ؆୯ʹػೳՃ͕Ͱ͖Δʂ
ػೳՃΠϝʔδ NSVCZ 8PSLFS NSVCZ 8PSLFS NSVCZ IUUQE ڞ༗ϝϞϦ
global mutex ಉ࣌ଓ Χϯλʔ KVS ੍ޚ݅ localmemcacheΛ༻͍ͨ Key-Value-Store ϑΝΠϧͷϑϧύε͕Ωʔ ࠷େಉ࣌ଓ ੍ݶΛ༗ޮԽ͢Δ࣌ؒଳ KVS ੍ޚ݅
੍ݶ݅ͷσʔλ /path/to/hoge.php { "max_clients" : 30, # ࠷େಉ࣌ଓ "time_slots" :
[ # ༗ޮʹ͢Δ࣌ؒଳ { "begin" : 1200, "end" : 1800 }, { "begin" : 2100, "end" : 2200 } ] } KEY VALUE A AͷؒAQBUIUPIPHFQIQAͷ ࠷େଓΛAA·Ͱʹ੍ݶ͢Δɻ
ػೳՃޙͷಈ࡞֓ཁ NSVCZ 8PSLFS NSVCZ 8PSLFS NSVCZ IUUQE ڞ༗ϝϞϦ
global mutex ಉ࣌ଓ Χϯλʔ KVS KVS ੍ޚ݅ ϦΫΤετ ϦΫΤετ ੍ޚ݅ Λࢀর ੍ޚ݅Λࢀর ɹɹଘࡏ͠ͳ͚Εॲཧऴྃ NVUFYΛϩοΫ MPDL ϑΝΠϧͷϑϧύεΛΩʔʹ ΠϯΫϦϝϯτ ΠϯΫϦϝϯτ ੍͠ݶ͕༗ޮͳ࣌ؒଳͰಉ ࣌ଓ੍ݶΛա͍ͯ͠Ε ΤϥʔΛฦ͢
͍ํ IUUQEDPOG LoadModule mruby_module modules/mod_mruby.so <IfModule mod_mruby.c> # Apacheͷϓϩηε͕ىಈͨ࣌͠ʹϑοΫ͞ΕΔ #
http-access-limiterͷΫϥεΛఆٛɺ࣍ʹىಈ͢ΔWorker͕ࢀরͰ͖ΔΑ͏ʹ͢Δɻ mrubyPostConfigMiddle /etc/httpd/conf.d/access_limiter/access_limiter_init.rb cache <FilesMatch ^.*\.php$> # ΞΫηε͕ൃੜͨ͠ͱ͖ʹϑοΫ͞ΕΔ # ಉ࣌ଓΧϯλΛΠϯΫϦϝϯτ͢Δ # ͞Βʹɺ࠷େಉ࣌ଓΛաͨ͠߹ʹ503ΤϥʔΛฦ͢ͳͲͷΞΫγϣϯΛهड़͢Δɻ mrubyAccessCheckerMiddle /etc/httpd/conf.d/access_limiter/access_limiter.rb cache # ίϯςϯπͷॲཧ͕ऴΘͬͨͱ͖ʹϑοΫ͞ΕΔ # ಉ࣌ଓΧϯλΛσΫϦϝϯτ͢Δ mrubyLogTransactionMiddle /etc/httpd/conf.d/access_limiter/access_limiter_end.rb cache </FilesMatch> </IfModule>
ؾʹͳΔύϑΥʔϚϯε
ಋೖʹΑΔύϑΥʔϚϯεྼԽ 3ˋ
ύϑΥʔϚϯεςετ݁Ռ abΛͬͯύϑΥʔϚϯεΛଌఆ͠·ͨ͠ɻ ςετύλʔϯ ྼԽ httpd 0% httpd + http-access-limiter 3%
httpd + http-access-limiter (੍ݶର) 5% WordPressͷΞΫηε 10ສϦΫΤετ100ଟॏ / CPU24ίΞɾRAM32GB ςετύλʔϯ ྼԽ httpd 0% httpd + http-access-limiter 3% httpd + http-access-limiter (੍ݶର) 30% phpinfo()ͷΞΫηε ࢀߟࢿྉ
ύϑΥʔϚϯεςετ݁Ռʹର͢Δߟ access-limiterͷಋೖʹੜ͡ΔύϑΥʔϚϯεྼԽ3%ͱߴ Ͱ͋Δ͜ͱ͕͔ͬͨɻ DBΛ͏WordPressͰɺΞϓϦέʔγϣϯͷॲཧ͕Φʔό ϔουͱͳͬͯaccess-limiterΛಋೖ͢Δ͜ͱʹΑΔΦʔό ϔουޡࠩఔͱͳͬͨɻ phpinfo()ͷΑ͏ͳܰྔͳॲཧͷ߹ʹɺ੍ݶରͱͨ͠ͱ͖ ʹ3ׂఔύϑΥʔϚϯεྼԽ͕ੜͨ͡ɻ ࢀߟࢿྉ
·ͱΊ
·ͱΊ ϗεςΟϯάڞ༗αʔόͰ͋ΔͷͰɺΑΓଟ͘ͷਓ͕҆Ձ Ͱշదʹ͝ར༻͍ͨͩͨ͘ΊʹΞΫηε੍ޚඞཁɻ ΞΫηε੍ޚͷ୯ҐΛΑΓࡉ੍͔ͯ͘͠ޚʹΑΔӨڹΛۃখ Խ͠ɺదͳΞΫηε੍ޚΛ࣮ݱͨ͠ɻ ࣮ݱखஈͱͯ͠อकੑɺ֦ுੑɺੑೳͷόϥϯε͕Α͍ mrubyΛ༻͍ͨɻ