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
ホスティングにおける安定運用のためのアクセスコントロール手法
Search
Takuma Kume
October 07, 2017
Technology
3
2.6k
ホスティングにおける安定運用のためのアクセスコントロール手法
ペパボ・はてな技術大会〜インフラ技術基盤〜@福岡
「ホスティングにおける安定運用のためのアクセスコントロール手法」
https://pepabo.connpass.com/event/65932/
Takuma Kume
October 07, 2017
Tweet
Share
More Decks by Takuma Kume
See All by Takuma Kume
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
62
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
590
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
2.1k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
480
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
4.9k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
1
2.2k
ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE
takumakume
1
2.5k
GitOpsで実現するPull Request毎のプレビュー環境/Preview environment for each Pull Request by GitOps
takumakume
0
1.7k
Goでkubernetes operatorを実装してアプリのプレビュー環境を作る/go-kubernetes-operator
takumakume
0
170
Other Decks in Technology
See All in Technology
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
230
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
0
740
2.5Dモデルのすべて
yu4u
2
880
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
5
2.6k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
7.2k
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
18
6.9k
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
760
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
370
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
140
7日間でハッキングをはじめる本をはじめてみませんか?_ITエンジニア本大賞2025
nomizone
2
1.9k
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.8k
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
200
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.8k
Six Lessons from altMBA
skipperchong
27
3.6k
Adopting Sorbet at Scale
ufuk
74
9.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Designing Experiences People Love
moore
140
23k
Navigating Team Friction
lara
183
15k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Writing Fast Ruby
sferik
628
61k
Scaling GitHub
holman
459
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Code Review Best Practice
trishagee
67
18k
Transcript
ٱถഅ(.01FQBCP *OD ϖύϘɾͯͳٕज़େձʙΠϯϑϥٕज़ج൫ʙ ϗεςΟϯάʹ͓͚Δ҆ఆӡ༻ͷͨΊͷ ΞΫηείϯτϩʔϧख๏
ࣗݾհ ٱถ അ (@takumakume) 20164݄͔ΒϖύϘʹೖࣾ ΠϯϑϥΤϯδχΞ
ϩϦϙοϓʂ ֹ݄ԁ͔Βར༻Ͱ͖Δʂ ສαΠτҎ্ӡ༻தʂ ඵؒສઍϦΫΤετΛॲཧʂ
ϗεςΟϯάʹ͓͚Δ҆ఆӡ༻ͷͨΊͷ ΞΫηείϯτϩʔϧख๏
࣍ wϗεςΟϯάαʔϏεͷ҆ఆӡ༻͕؆୯Ͱͳ͍ཧ༝ w͜Ε·ͰͷΞΫηείϯτϩʔϧख๏ͷհͱ՝ w՝Λղܾͨ͠৽͍͠ΞΫηείϯτϩʔϧख๏ͷհ w·ͱΊ
ຊͷεϥΠυͰɺߴෛՙͷαΠτʹରͯ͠ ΞΫηε੍ޚΛ࣮ࢪ͢Δख๏ʹ͍ͭͯͷհΛ ͠·͢ɻ ͯ͢ͷతɺαʔϏεͷ҆ఆӡ༻ͱɺΑΓ ଟ͘ͷ͓٬༷͕շదʹ͝ར༻͍͚ͨͩΔΑ͏ʹ ͢Δ͜ͱ͕೦಄ʹ͋Γ·͢ʂ
ϗεςΟϯάαʔϏεͷ҆ఆӡ༻͕ ؆୯Ͱͳ͍ཧ༝
ͦͷલʹɺͱ͋Δ8FCαʔϏεͷαʔόͷ $16༻ΛݟͯΈ·͢ɻ
$16༻ ͱ͋Δ8FCαʔϏεͷ$16༻ ࣌ ࣌ ࣌
࣌ ࣌ ࣌ ΰʔϧσϯλΠϜ னٳΈ όονॲཧ ͱ͋Δ8FCαʔϏεͷ$16༻
ΰʔϧσϯλΠϜ னٳΈ όονॲཧ $16༻ 8FCαʔϏεͷ߹λʔήοτ࣮Λ Ѳ͍ͯ͠ΔͨΊɺΛ૾͍͢͠
ͰɺϗεςΟϯάαʔόͷ $16༻ΛݟͯΈ·͢ɻ
࣌ ࣌ ࣌ ࣌ ϗεςΟϯάαʔόͷ$16༻
ϗεςΟϯάαʔόͷ$16༻ Կ͔͕ಈ͍͍ͯΔ
ϗεςΟϯάαʔόͷ߹ɺ ༷ʑͳϓϩάϥϜ͕࣮ߦ͞ΕΔͨΊෛՙͷ ݪҼ༷ʑͰରԠ͠ʹ͍͘
༷ʑͳෛՙͷݪҼ ੬ऑੑ ੬ऑੑͷ͋Δ$.4ͳͲΛܦ༝ͯ͠ෆਖ਼ͳॲཧ͕࣮ߦ͞ΕΔɻ ߈ܸ αʔόͨΓͷαΠτ͕ଟ͍ͨΊ߈ܸͷରʹͳΓ͍͢ɻ ϢʔβϓϩάϥϜ ϗεςΟϯάͰࣗ༝ʹϓϩάϥϜͷ࣮ߦ͕Մೳͳڥɻ େྔʹϦιʔεΛফඅ͢ΔϓϩάϥϜ͕࣮ߦ͞ΕΔ͜ͱ͕͋Δɻ ͳͲʜ
͜ΕΒʹରͯ͠Կͷରࡦ͠ͳ͍߹ αʔόߴෛՙͳঢ়ଶͱͳΓ αʔϏεͷఏڙ࣭͕Լͯ͠͠·͏
͜Ε·ͰͷΞΫηείϯτϩʔϧख๏
NPE@WIPTU@NBYDMJFOUT "QBDIFIUUQE 7JSUVBM)PTU # httpd.conf <VirtualHost *> DocumentRoot /path/to/web ServerName
www.example.jp VhostMaxClients 3 </VirtualHost> w"QBDIFͷϞδϡʔϧ w7JSUVBM)PTUຖͷ࠷େಉ࣌ଓΛ੍ݶ͢Δ͜ͱ͕Ͱ͖Δ 8FCΞΫηε
NPE@WIPTU@NBYDMJFOUT "QBDIFIUUQE 7JSUVBM)PTU ಛఆͷ7JSUVBM)PTUͷภΓΛࢭ ॏ͍εΫϦϓτͷଟॏ࣮ߦΛࢭ 8FCΞΫηε w"QBDIFͷϞδϡʔϧ w7JSUVBM)PTUຖͷ࠷େಉ࣌ଓΛ੍ݶ͢Δ͜ͱ͕Ͱ͖Δ
NPE@WIPTU@NBYDMJFOUTʹΑΔ੍ݶͷࣗಈԽγεςϜ 04 IUUQE MPH DPOpH (PMBOH ࣗಈ੍ޚγεςϜ ᶃࢹ ᶄղੳ
ᶅઃఆ ᶆө ࢹ ɾϩʔυΞϕϨʔδ ɾ)551Ϩεϙϯε ղੳ ઃఆ ݪҼαΠτʹಉ࣌ଓ੍ݶΛઃఆ ө IUUQEͷHSBDFGVMSFTUBSUΛ࣮ߦ ϩά͔ΒෛՙݪҼͷαΠτΛಛఆ ෛՙͷߴ͍αΠτʹࣗಈతʹ੍ݶΛߦ͏γεςϜΛ(PMBOHͰ։ൃ
͜Ε͚ͩͰߴෛՙରࡦ͕ ෆेͩͬͨ
՝
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ өʹHSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧॏ͘ϨεϙϯεԆͷݪҼʹ ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ өॲཧ
ಉ࣌ଓ੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ࣮ࢪ͍ͨ͠ɻ ੍ݶखஈ
ཁٻ͕૿͑Δʹ࿈ΕͯطଘͷιϑτΣΞ ͷΈͰ՝Λղܾ͠ʹ͘͘ͳͬͨ
͜Ε·Ͱɺ՝͕͋Δͷͷ ίʔυʹམͱ͠ࠐΜͰ͍͘εϐʔυ͕ ͔ͬͨɻ
ӡ༻πʔϧʑਐԽ͕ඞཁͰ͋Δ
࠷ॳ͔ΒᘳͳιϑτΣΞΛ࡞Δ ͜ͱͰ͖ͳ͍ ਐԽ͍ͤ͢͞ج൫Λ࡞Γ͍ͨʂ
NPE@NSVCZ ✕
NPE@NSVCZͱʁ wฐࣾͷ!NBUTVNPUPSZ͕։ൃ͍ͯ͠ΔIUUQEͷϞδϡʔϧ wϓϩηεͷىಈϦΫΤετͷλΠϛϯάͳͲΛܖػʹ NSVCZͷεΫϦϓτΛ࣮ߦͰ͖Δɻ wϦΫΤετύϥϝʔλΛऔಘͨ͠Γҙͷεςʔλείʔ υΛฦͨ͠ΓͰ͖Δɻ
NPE@NSVCZΛબΜͩཧ༝
NPE@NSVCZΛબΜͩཧ༝ ߴͳॲཧ$ݴޠͷϥΠϒϥϦΛ͍͍ͨ߹NSCHFN ͱ͍͏֦ுػೳΛͬͯ$ݴޠͰͷ࣮ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ͍Λ ։ൃޮ͕Α͍3VCZߏจͰΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ ʢैདྷ.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ
NPE@NSVCZΛબΜͩཧ༝ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ͍Λ3VCZߏจͰ ΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ3VCZ։ൃޮ͕ྑ͍ɻ ʢैདྷ.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ ߴͳॲཧ$ݴޠͷϥΠϒϥϦΛ͍͍ͨ߹NSCHFN ͱ͍͏֦ுػೳΛͬͯ$ݴޠͰͷ࣮ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ ֦ுੑɺอकੑΛଛͳΘͣ ޮΑ͘։ൃՄೳ
NPE@NSVCZΛબΜͩཧ༝ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ͍Λ3VCZߏจͰ ΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ3VCZ։ൃޮ͕ྑ͍ɻ ʢैདྷ.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ ߴͳॲཧ$ݴޠͷϥΠϒϥϦΛ͍͍ͨ߹NSCHFN ͱ͍͏֦ுػೳΛͬͯ$ݴޠͰͷ࣮ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ ਐԽ͠ଓ͚Δ͜ͱ͕Ͱ͖Δ
NPE@NSVCZΛ࣠ͱͨ͠ ৽͍͠ΞΫηείϯτϩʔϧख๏
IUUQBDDFTTMJNJUFSͱ͍͏ ιϑτΣΞͷΞʔΩςΫνϟΛϕʔεʹ ৽͍͠ΞΫηείϯτϩʔϧج൫Λ։ൃ
IUUQBDDFTTMJNJUFS NSVCZΛͬͯϦΫΤετύϥϝʔλΛݩʹಉ࣌ଓΛΧϯτ͢Δ IUUQE NPE@NSVCZ ᶃlFYBNQMFDPNzʹΞΫηε 1)1$(*ͳͲ ,74 ,FZ FYBNQMFDPN
7BMVF ಉ࣌ଓ Χϯλʔ ᶄΠϯΫϦϝϯτ ᶅॲཧ ᶆσΫϦϝϯτ ͜ͷΑ͏ͳྲྀΕͰಉ࣌ଓΛΧϯτ͢Δ
IUUQBDDFTTMJNJUFSΛͬͯղܾͰ͖Δ͜ͱ
IUUQBDDFTTMJNJUFSΛͬͯղܾͰ͖Δ͜ͱ ੍ޚ୯Ґ NPE@NSVCZͰऔಘͰ͖ΔϦΫΤετύϥϝʔλΛ શͯར༻Ͱ͖Δɻ ઃఆө NSVCZΛͬͯ؆୯ʹɺHSBDFGVMSFTUBSUΛඞཁͱ ͠ͳ͍өํ๏Ͱ࣮͢Δ͜ͱ͕Ͱ͖Δɻ
IUUQBDDFTTMJNJUFSΛϕʔεʹ ՃػೳΛ࣮
੍ݶ༰ͷཧ
੍ݶ༰ͷཧ ੍ݶର͝ͱͷಉ࣌ଓΛཧ͍ͨ͠ʂ IUUQE IPHFDPN GVHBVTFSͷυϝΠϯ ϦΫΤετ IPHFDPNͷಉ࣌ଓ ·Ͱʹ͍ͨ͠ʜ GVHBVTFSͷಉ࣌ଓ
·Ͱʹ͍ͨ͠ʜ
੍ݶ༰ͷཧ IUUQBDDFTTMJNJUFSͷΞʔΩςΫνϟʹ੍ݶ༰Λཧ͢ΔػೳΛ࣮ IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ
ಉ࣌ଓ Χϯλʔ ʴ 1)1 $(*
੍ݶ༰ͷཧ IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ಉ࣌ଓ
Χϯλʔ ,FZ7BMVF IPHFDPN GPPDPN ,74 1)1 $(* ੍ݶ༰Λอ͢ΔͨΊͷ,74Λ४උ ੍ݶ༰Λࢀর
੍ݶ༰ͷཧ IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ಉ࣌ଓ
Χϯλʔ ,FZ7BMVF IPHFDPN GPPDPN ,74 1)1 $(* ੍ݶ༰Λࢀর ,74 ,FZ7BMVF IPHFVTFS GPPVTFS ϗετ୯Ґ ΞΧϯτ୯Ґ ੍ݶ୯ҐΛ૿͍ͨ࣌͠,74Λ૿ͤྑ͍
ࣗಈ੍ޚγεςϜͱͷ࿈ܞ
ࣗಈ੍ޚγεςϜͱͷ࿈ܞ IUUQE NPE@NSVCZ ,FZ7BMVF IPHFDPN GPPDPN ,74 (PMBOH ࣗಈ੍ޚγεςϜ
IPHFDPN NBY@DMJFOUT GPPDPN NBY@DMJFOUT ᶃ੍ݶใͷ:".-ϑΝΠϧΛੜ ᶄ:".-ΛಡΈࠐΈ ᶅ,74ॻ͖ࠐΈ ෛՙͷݕ ϩάͷղੳ ݪҼͷಛఆ HSBDFGVMSFTUBSUͷΑ͏ʹॏ͍ॲཧෆཁ
,74ʹॻ͖ࠐΊྑ͍ͷͰʁ z:".-Λϩʔυ͢Δzͱ͍͏൚༻తͳΠϯλʔϑΣΠεʹ ͢Δ͜ͱͰɺผͷ੍ޚγεςϜ͕࡞ΒΕͯ؆୯ʹ࿈ܞͰ͖Δɻ ,74ͷഉଞ੍ޚNPE@NSVCZͰ࣮͍ͯ͠Δ ⇛֎෦͔Βॻ͖ࠐΈΛ͠Α͏ͱ͢ΔͱλΠϛϯάʹΑͬͯ ɹΤϥʔʹͳΔ
୯ൃͰେྔͷ$16ϦιʔεΛফඅ͢Δ ϓϩάϥϜͷରࡦ
DHSPVQ
DHSPVQͱ ϓϩηεΛάϧʔϓԽͯ͠$16ϝϞϦɺσΟεΫ*0ͷ ੍ޚΛߦ͏ɺ-JOVYΧʔωϧͷػೳ ৄ͘͢͠ͱ͕࣌ؒΓͳ͍ͷͰׂѪ͠·͢ʜ
ಛఆͷϦΫΤετͷΈΛରͱͯ͠ DHSPVQʹΑΔ$16ͷ੍ݶΛ͍ͨ͠ʂ
ಛఆͷϦΫΤετͷΈDHSPVQͰ੍ޚ͢Δ IUUQEXPSLFS IUUQEXPSLFS IUUQEXPSLFS ίϯςϯπॲཧ ίϯςϯπॲཧ ϦΫΤετ ϦΫΤετ $16ͷ੍ݶΛ͍ͨ͠
ϦΫΤετ ࣗʹDHSPVQͷ੍ݶΛ࣮ࢪ NSVCZ ίϯςϯπॲཧ ࣗΛݩͷDHSPVQʹ͢ NSVCZ $16੍ݶ
ಛఆͷϦΫΤετͷΈΛରͱͨ͠ DHSPVQʹΑΔ$16ͷ੍ݶΛ࣮ݱͨ͠ʂ
՝ʹ͍͓ͭͯ͞Β͍
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ өʹHSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧॏ͘ϨεϙϯεԆͷݪҼʹ ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ өॲཧ
ಉ࣌ଓ੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ࣮ࢪ͍ͨ͠ɻ ੍ݶखஈ
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ NPE@NSVCZ͔Βऔಘͨ͠ϦΫΤετύϥϝʔλΛ ݩʹ͋ΒΏΔ୯ҐͰ੍ޚΛߦ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨɻ
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ NSVCZΛͬͯ,74ʹσʔλΛ࣋ͭ͜ͱͰ࠶ಡࠐΈॲཧ͕ ඞཁͳ͘ͳͬͨɻ өʹHSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧॏ͘ϨεϙϯεԆͷݪҼʹ
ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ өॲཧ
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ DHSPVQʹΑΔ$16ͷίϯτϩʔϧΛߦ͏͜ͱͰղܾͨ͠ɻ ಉ࣌ଓ੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ࣮ࢪ͍ͨ͠ɻ
੍ݶखஈ
·ͱΊ
·ͱΊ ϗεςΟϯάαʔόͷ҆ఆӡ༻؆୯Ͱͳ͍ʂ ՝Λղܾ͢ΔͨΊʹNPE@NSVCZΛ༻͍ͨ $16Ϧιʔεͷ੍ޚख๏ͱͯ͠ɺϦΫΤετຖͷ DHSPVQʹΑΔ$16Ϧιʔε੍ޚΛ࣮ݱͨ͠ʂ ֦ுੑɾอकੑɾੜ࢈ੑͷߴ͍ΞΫηείϯτϩʔϧ ج൫Λ։ൃͨ͠ʂ
܅ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ