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
tatsushim
January 25, 2018
Technology
1
3k
日本のママをコンテナで支える
X-Tech JAWS 【第2回】~9割のX-Techと1割の優しさで切り拓く未来~ の登壇資料
https://xtechjaws.doorkeeper.jp/events/67869
tatsushim
January 25, 2018
Tweet
Share
More Decks by tatsushim
See All by tatsushim
DockerとAmazon SageMakerで実現した機械学習システムのプロダクション移行
tatsushim
0
26k
コミュニティサービスにおける機械学習のためのアノテーション
tatsushim
0
2.1k
コネヒトが考える技術選択の仕方について
tatsushim
0
21k
コネヒトが考えるサービスづくりに必要な技術とその考え方について
tatsushim
2
3.1k
word2vecで女性向けQ&Aサイトを解析してみた
tatsushim
0
6.2k
独身男性のためのデータドリブン講座
tatsushim
0
6.8k
Other Decks in Technology
See All in Technology
Datadogとともにオブザーバビリティを布教しよう
mego2221
0
130
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
460
プロセス改善による品質向上事例
tomasagi
1
1.6k
FastConnect の冗長性
ocise
1
9.6k
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
410
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
12
4.5k
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
670
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
320
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
320
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
950
Ask! NIKKEIの運用基盤と改善に向けた取り組み / NIKKEI TECH TALK #30
kaitomajima
1
450
Googleマップ/Earthが一般化した 地図タイルのイマ
mapconcierge4agu
1
200
Featured
See All Featured
Building Adaptive Systems
keathley
40
2.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Scaling GitHub
holman
459
140k
The Invisible Side of Design
smashingmag
299
50k
A better future with KSS
kneath
238
17k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Unsuck your backbone
ammeep
669
57k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
$POOFIJUP*OD$50!UBUTVTIJN ϚϚͷҰาΛࢧ͑Δ ຊͷϚϚΛίϯςφͰࢧ͑Δ
ࣗݾհ
w ίωώτגࣜձࣾ w ڞಉۀऀऔక$50 w ઐػցֶश w 4BOTBOגࣜձࣾʹ໊ͯΞϓϦ ʮ&JHIUʯͷ্ཱͪ͛
w ,%%*άϧʔϓʹ.ˍ"͞ΕάϧʔϓೖΓ ౡాୡ࿕ !UBUTVTIJN
None
ਓͷੜ׆ʹͳͯ͘ͳΒͳ͍ͷΛͭ͘Δ
ΠϯελάϥϜͰϚϚΑΓϚϚϦͷํ͕λά͚͕ଟ͍
ϚϚϦͷΛͰࢧ͖͑ͯ·ͨ͠
Amazon S3 ElastiCache CloudFront Amazon SES Amazon RDS Amazon CloudWatch
Amazon SNS Amazon Route 53 ECS ALB GitHub Docker Docker Build Notification push ECS Scheduled Task ACM WAF Services(API, Admin, Etc…) ECR TravisCI Slack Sentry pingdom papertrail BigQuery fluentd
ίϯςφʹḷΓ͍ͭͨಓͷΓͱ ࠓίϯςφͰͲͷΑ͏ʹຊͷϚϚΛ ࢧ͍͑ͯΔ͔ʹ͍͓ͭͯ͠·͢
w ϚϚϦͷΠϯϑϥͷྺ࢙ w &$ظ w ࣗલ"VUP4DBMJOHظ w &#ظ w &$4ظ
w ίϯςφಋೖͷಓͷΓ w ͷཧͱղܾͷͨΊͷπʔϧબఆ w ಋೖϑΣʔζ w &$4Խͯ͠ྑ͔ͬͨ͜ͱ w ͜Ε͔Β w 'BSHFUFͷظ w ΠϯϑϥΤϯδχΞͷࣄΛͳ͘͢
ϚϚϦͷΠϯϑϥͷྺ࢙
&$ظ ˠͷαʔϏε্ཱͪ͛
EC2 instance web app server
EC2 instance web app server ·͔͞ͷ&$ʘ ?P? ʗ
• ࠷খߏ • MySQLApacheશ෦ೖΓ • ͪΖΜσϓϩΠπʔϧͳΜ͔ͳ͍ͷͰ ʮσϓϩΠ͠·͢ʂ(ʆŋωŋ´)ʎʯ sshͰαʔόʔʹೖͬͯΛֻ͚߹͍ git
pull origin master ࠷ॳEC2 1ͷߏ͔Βελʔτ
EC2 instance web app server ϚϚϦ(WebϝσΟΞ)ͷΠϯϑϥ
EC2 instance web app server ϚϚϦ(ΞϓϦ)ͷΠϯϑϥ
࣌ͷϚϚϦͷΠϯϑϥʢ·ͱΊʣ EC2 instance web app server EC2 instance web
app server
• 2िؒͰΞϓϦΛͭͬͯ͘ϦϦʔε • ͱʹ͔͘εϐʔυʂ • ͦΕͧΕMySQLApacheશ෦ೖΓ • ͪΖΜσϓϩΠπʔϧͳΜ͔ͳ͍ͷͰ(ry •
खಈʹΑΔஆ͔Έͷ͋ΔσϓϩΠϑϩʔ ֤αʔϏε1ͣͭ
• ͜ͷͱ͖·ͩαʔϏεͷԾઆݕূத • ͦͦαʔϏε͕৳ͼͳ͍ͱ ҆ఆͨ͠Πϯϑϥඞཁͳ͍ • (*ᵕᴗᵕ).ŇoO ( Ͱࠓ͕ࣝ͋Δঢ়ଶͰͭ͘Δ
ͳΒ࠷ॳ͔ΒALBೖΕͨߏͰΓ·͢ʣ αʔϏεͷػೳՃ͕༏ઌʂʂ
• ςϨϏऔࡐʢͱ͘μωʂʣ๒ʹεέʔϧ ͰରԠ • ඵ͘Β͍ͷ࿐ग़ͰҰॠͰઍμϯϩʔυ ͞Εͯয͕ͬͨɺແࣄࡹ͚ͨ • ֶੜىۀͰ͓ۚͳ͔ͬͨͷͰैྔ՝ۚͰ ॿ͔ͬͨ
AWSͷԸܙΛॳظ͔Βड͚͍ͯͨ
• ͓͍͖ͬΓ୯Ұো • ͍ͬͯ͏͔ʮʯ • DBͷӡ༻େม • όοΫΞοϓεΫϦϓτࣗલͰߏங •
εέʔϧΞοϓ࣌ʹαʔϏεΛࢭΊΔ ඞཁ͕͋Δɺͦͷଞͨ͘͞Μʘ(^o^)ʗ EC2 1ߏͷͭΒΈ
ࣗલ"VUP4DBMJOHظ
EC2 instance web app server EC2 instance web app server
EC2ظ
EC2 instance web app server EC2 instance web app server
Amazon RDS Availability Zone #1 RDSಋೖ
Elastic Load Balancing Amazon RDS Amazon EC2 Amazon EC2 Availability
Zone #1 Amazon EC2 Amazon EC2 Availability Zone #1 Elastic Load Balancing Amazon EC2 Amazon EC2 Availability Zone #1 Amazon EC2 Amazon EC2 Availability Zone #1 Amazon S3 ElastiCache CloudFront Amazon SES ࣗલAutoScalingߏங
Elastic Load Balancing Amazon EC2 Elastic Load Balancing Amazon EC2
Amazon S3 ElastiCache CloudFront Amazon SES Amazon RDS Amazon CloudWatch Amazon SNS Amazon Route 53 GitHub Sentry BigQuery fluentd fluentd pingdom papertrail ֤छϚωʔδυαʔϏεΛಋೖ
• ͜ͷλΠϛϯάͰEC2ʹ͋ͬͨDBΛRDS Ҡߦ • ֤छϚωʔδυαʔϏεಋೖ • Ճ͑ͯAutoScalingΛߏஙͨ͜͠ͱͰ αʔϏεͷ֦େʹ͑ΕΔΑ͏ʹͳͬͨ ࣗલͰAutoScalingΛߏங
• AMIͱLaunch Configurationͷཧ͕͠ΜͲ͍ • AMIʹؔͯ͠ChefͷProvisioning ToolΛͬͯ ɺ݁ہͦΕͷཧ͕େมͰॻ͍ͯଐਓԽ͢Δ • ݁Ռͱͯ͠ΠϯϑϥΤϯδχΞ͕
ϛυϧΣΞߋ৽ͷϘτϧωοΫʹͳΔ • ಉ͡ίϚϯυ(yumͳͲ)ͰೖΔιϑτͷόʔδϣϯ ͕มΘͬͯͨΓɺͰ͖ͳ͘ͳͬͯͨΓ ࣗલAutoScalingͷͭΒΈ
&#ظ &MBTUJD#FBOTUBML
Elastic Load Balancing Amazon EC2 Amazon S3 ElastiCache CloudFront Amazon
SES Amazon RDS Amazon CloudWatch Amazon SNS Amazon Route 53 GitHub Sentry BigQuery fluentd fluentd pingdom papertrail Elastic Beanstalk
Elastic Load Balancing Amazon EC2 Amazon S3 ElastiCache CloudFront Amazon
SES Amazon RDS Amazon CloudWatch Amazon SNS Amazon Route 53 GitHub Sentry BigQuery fluentd fluentd pingdom papertrail Elastic Beanstalk /FX
• AMIͱAutoScale Configͷཧ͔Β։์ • ebίϚϯυʹΑͬͯdeploy toolͳͲ͕Ұ௨Γ ἧ͍ͬͯΔ • 1ߏங͢ΕΞϓϦέʔγϣϯʹඞཁͳཁ
ૉΛαΫͬͱͭͬͯ͘͘ΕΔ͠ɺͦͷηοτ ΛؙͬͱίϐʔͰ͖Δ Elastic BeanstalkҠߦ
• EBͷ͕ࣝඞཁ • EBಠಛͷ֓೦ • ApplicationͱEnvironmentͷؔ • deploy࣌ͷڍಈ •
.ebextensionsͷॻ͖ํ Elastic BeanstalkͷͭΒΈ
• ϩʔΧϧڥͰͷEBڥ࠶ݱ͕͍͠ • ্ཱ͕ͪΔΠϯελϯεEB༻ʹΧελϚ Πζ͞ΕͨAmazon Linux • ैͬͯ͜ΕΒΛݕূ͢ΔͨΊʹຖdeploy͠ ͳ͍ͱ͍͚ͳ͍
• ݁Ռɺݕূ͕ΧδϡΞϧʹͰ͖ͳ͍ͷͰ݁ہ EBʹ͍ͭͯଐਓԽ͕ͪ͠ Elastic BeanstalkͷͭΒΈ
• ϛυϧΣΞͷར༻͕ຯʹ੍ݶ͞ΕΔ • ࣌php7.1͍͔͕ͨͬͨ7.0·Ͱ͠ ͔ఏڙ͞Ε͍ͯͳ͔ͬͨ • PHP × nginxͳ͍
• ʢ´-`ʣ.ŇoOʢϚωʔδυαʔϏεͳͷͰ ͠ΐ͏͕ͳ͍෦Ͱ͋Δʣ Elastic BeanstalkͷͭΒΈ
Elastic BeanstalkͷPHPαϙʔτ SFGIUUQTEPDTBXTBNB[PODPNKB@KQFMBTUJDCFBOTUBMLMBUFTUEHDPODFQUTQMBUGPSNTIUNMDPODFQUTQMBUGPSNT1)1
࡞͞ΕΔϦιʔε܈ͷ໊લ͕ͻͲ͍ͷͰϚ ωδϝϯτίϯιʔϧ͕ԚΕΔ Elastic BeanstalkͷͭΒΈ
&$4ظ
• ͭͬͨ͘VM͕ಥવյΕΔ • VM࡞Γ͕͠ॏ͍ • ෳαʔϏε্ཱͪ͛ΔͱCPUΛѹഭͯ͠ ϩʔΧϧ։ൃڥ͕ॏ͍ • ຊ൪ͱඍົʹڥࠩҟ͕ൃੜ
ϩʔΧϧ։ൃڥ(Vagrant)ͷͭΒΈ
• ίϯςφͳΒڥͷͭ͘Γ͠ϥΫ • ෳαʔϏε্ཱͪ͛ͯVMͱൺͯCPU Λѹഭ͠ͳ͍ • ϩʔΧϧͷڥΛͦͷ··ຊ൪ʹ͍͚࣋ͬͯ ΔͷͰڥࠩҟ͕ͳ͍ DockerͷಋೖͰͭΒΈΛղফ
Amazon S3 ElastiCache CloudFront Amazon SES Amazon RDS Amazon CloudWatch
Amazon SNS Amazon Route 53 ECS ALB GitHub Docker Docker Build Notification push ECS Scheduled Task ACM WAF Services(API, Admin, Etc…) ECR TravisCI Slack Sentry pingdom papertrail BigQuery fluentd
՝ͨ͘͞Μ͋Γ·ͨ͠
ίϯςφಋೖͷಓͷΓ
ͷཧͱ ղܾͷͨΊͷπʔϧબఆ
• ͭͬͨ͘VM͕ಥવյΕΔ • VM࡞Γ͕͠ॏ͍ • ෳαʔϏε্ཱͪ͛ΔͱCPUΛѹഭͯ͠ ϩʔΧϧ։ൃڥ͕ॏ͍ • ຊ൪ͱඍົʹڥࠩҟ͕ൃੜ
ϩʔΧϧ։ൃڥͷͭΒΈ(࠶ܝ)
• Πϯϑϥͷಠ͕ࣗࣝಛఆͷϝϯόʔʹภΔ • ϛυϧΣΞͷΠϯετʔϧͳͲͰΠϯϑϥ ΤϯδχΞ͕࡞ۀϑϩʔ্ͷϘτϧωοΫʹ ͳΔ • ϚωʔδυαʔϏεͷ੍ݶʹΑΓར༻͍ͨ͠ ϛυϧΣΞɾπʔϧ͕͑ͳ͍͜ͱ͕͋
Δ ͜Ε·ͰͷΠϯϑϥͷ՝
• Πϯϑϥͷಠ͕ࣗࣝಛఆͷϝϯόʔʹภΔ • ϛυϧΣΞͷΠϯετʔϧͳͲͰΠϯϑϥ ΤϯδχΞ͕࡞ۀϑϩʔ্ͷϘτϧωοΫʹ ͳΔ • ϚωʔδυαʔϏεͷ੍ݶʹΑΓར༻͍ͨ͠ ϛυϧΣΞɾπʔϧ͕͑ͳ͍͜ͱ͕͋
Δ ͜Ε·ͰͷΠϯϑϥͷ՝ ͜ΕΒΛ౿·͑ͯ ཧͷΧλνΛߟ͑Δ
• ઃఆϑΝΠϧ͕gitཧ͞Ε͓ͯΓϒϥοΫ ϘοΫε͕ͳ͍ • ϛυϧΣΞ,OS,ϓϥάΠϯͷόʔδϣϯ ઃఆϑΝΠϧͰཧ • ͦΕΒΛΞϓϦέʔγϣϯΤϯδχΞ͕ਖ਼͠ ͘ཧղͰ͖͍ͯΔ
ཧͷΧλνᶃ
• ։ൃऀίϚϯυҰͭ͘Β͍ͷϨϕϧͰɺͬ͞ ͱϩʔΧϧڥΛ্ཱͪ͛Δࣄ͕ग़དྷΔ • ୭Ͱಉ͡ڥཱ͕ͯΒΕΔ • ։ൃऀ/σβΠφʔؔͳ͘ • ຊ൪ಉ͡ઃఆϑΝΠϧ͔Β࡞ΒΕͨΠϝʔ
δ͕σϓϩΠ͞Εɺ։ൃڥͱຊ൪ڥʹશ ࠩ͘ҟͷͳ͍ঢ়ଶ ཧͷΧλνᶄ
DockerʹനӋͷཱ͕ͬͨ
DockerʹനӋͷཱ͕ͬͨ அ࣠ӡ༻ؚΊͯ νʔϜͰҭͯΒΕΔ͔Λݕূ
ಋೖϑΣʔζ
ʮ৽͍͠πʔϧΛೖΕΔ࣌খ࢝͘͞ΊΔʯ ಋೖํ
• खݩͰಈ͘ڥΛ࡞Δ • ಛఆͷϝϯό(1,2໊)ʹςεττϥΠͯ͠ Β͏ • ͍͖ͳΓશମల։͢Δͱ։ൃ͕ࢭ·ͬͯ͠·͏ • χʔζΛͯ͢ચ͍ग़͢
• VMॏ͍ɺյΕΔɺڥࠩҟ…(ůŐ`)řŕ ᶃ۩ମతͳχʔζΛચ͍ग़͢
• ͷಛఆޙɺͦͷղܾࡦΛݕ౼ • 1ͭ1۪ͭʹ௵ͯ͠ɺղܾํ๏Λݕূ͍ͯ͠ ͘ • Ex. Docker for
Mac ͱ VM on Dockerͷݕূ • Dockerؔ࿈ͷ͕ग़͙ͨ࣌͢ʹΩϟον Ξοϓͯ͠௵͍ͯ͘͠ ᶄղܾํ๏Λݕূ
• શମద༻ͷલʹϋϯζΦϯͷ࣌ؒΛͭ͘Δ • جຊૢ࡞ͷυΩϡϝϯτFAQ༻ҙ • Ҿ͖ଓ͖ɺDockerؔ࿈ͷ͕ग़ͨ࣌͢ ͙ʹΩϟονΞοϓͯ͠௵͍ͯ͘͠ ᶅϝϯόʔʹڞ༗
• Pull RequestΛΞϓϦέʔγϣϯΤϯδχΞ ʹૹΔ • ใΛΠϯϑϥΤϯδχΞͷதͰด͡ͳ͍Α ͏ʹ͢Δ • ٯʹPull
RequestΛૹͬͯΒ͏ͷΛखॿ͚ ͢Δ ᶆਁಁͤ͞Δ
• DockerfileΠϯϑϥͷ࣋ͪͰͳ͘ɺΈΜ ͳͰҭ͍͖͍ͯͯͨͱ͍͏ؾ͕࣋ͪ։ൃऀʹ Θͬͨ • ࣗͰ৽αʔϏεDockerͰ࡞Γ࢝ΊΔϝϯ ό͕ग़͖ͯͨ • ϛε͕͋ͬͨࡍʹɺ͙͢ʹDockerfileͷमਖ਼
Λࢦఠͯ͘͠Εͨ ݁Ռ
×
Amazon S3 ElastiCache CloudFront Amazon SES Amazon RDS Amazon CloudWatch
Amazon SNS Amazon Route 53 ECS ALB GitHub Docker Docker Build Notification push ECS Scheduled Task ACM WAF Services(API, Admin, Etc…) ECR TravisCI Slack Sentry pingdom papertrail BigQuery fluentd
Amazon S3 ElastiCache CloudFront Amazon SES Amazon RDS Amazon CloudWatch
Amazon SNS Amazon Route 53 ECS ALB GitHub Docker Docker Build Notification push ECS Scheduled Task ACM WAF Services(API, Admin, Etc…) ECR TravisCI Slack Sentry pingdom papertrail BigQuery fluentd νʔϜͰίϯςφΛ ҭͯͨ݁Ռ
ECSԽͯ͠ྑ͔ͬͨ͜ͱ
• ίϯςφͳΒڥͷͭ͘Γ͠ϥΫ • ෳαʔϏε্ཱͪ͛ͯVMͱൺͯCPU Λѹഭ͠ͳ͍ • ϩʔΧϧͷڥΛͦͷ··ຊ൪ʹ͍͚࣋ͬͯ ΔͷͰڥࠩҟ͕ͳ͍ DockerͷಋೖͰͭΒΈΛղফ(࠶ܝ)
• ΠϯϑϥࣝͷϒϥοΫϘοΫεԽղফ • ϛυϧΣΞͷΠϯετʔϧΞϓϦέʔγϣ ϯΤϯδχΞ͕ࣗ༝ʹͰ͖ΔΑ͏ʹͳͬͨ • ϚωʔδυαʔϏεͷ੍ݶʹΑΓར༻Ͱ͖ͳ ͍ϛυϧΣΞɾπʔϧ͕ͳ͘ͳͬͨ ϘτϧωοΫͷղফ
• EC2ͷϝϯςφϯε͔Βͷ։์ • Ex. ઌͷCPU੬ऑੑʹΑΔڧ੍restart • Jobͷ࣮ߦ͝ͱʹίϯςφ্ཱ͕͕ͪΔͷͰɺ EC2 on
Cronͷͱ͖ؾʹ͍ͯͨ͠CPUϦιʔε ΛؑΈ࣮ͨߦλΠϛϯάͳͲߟ͑Δඞཁ͕ͳ ͘ͳͬͨ • ංେԽ͢Δcrontabͷཧෆཁʹ ECS Task Scheduledʹͯ͠ྑ͔ͬͨ͜ͱ
Route53Λར༻ͨ͠ՃॏϦιʔεϨίʔυηοτΛ ར༻ͨ͠τϥϑΟοΫࢄΧφϦΞϦϦʔεతʹ ͏ࡍʹศརͳͷͰΦεεϝ ECSҠߦ࣌ͷTips
͜Ε͔Β
• ECSΛ͍ͬͯͯ݁ہ֎ଆͷEC2Πϯε λϯεΛҙࣝ͠ͳ͍ͱ͍͚ͳ͍ • 1ͭͷEC2ΠϯελϯεͷதʹԿݸίϯςφ ΛཱͯΔ͔ɺϦιʔεͷׂͲͷఔ͔ … • FargateͦΕʹର͢ΔղʹͳΓͦ͏
AWS Fargateͷظ
• ຊޠͷFargateʹݴٴͨ͠ϒϩάΛݟͯ AWSͷUSνʔϜ͕ʮ͜ΕͳΜͯॻ͍ͯ͋Δ ͷʁʯͬͯJPνʔϜʹฉ͍ͯ͘ΔΒ͍͠ • “Fargate”άάΒϏϦςΟ͕ߴ͍ͷҰҼʹ ͋Γͦ͏ • ΈΜͳͰϒϩάॻ͍ͯFargateΛ
Tokyo Regionʹ͖࣋ͬͯ·͠ΐ͏:D FargateΑʂ
• ͳΜ͔ͩΜͩɺضৼΓͱͯ͠Πϯϑϥͷ ࣄΛϝΠϯͰߦ͏ਓඞཁͩͬͨΓ͢Δ • ͰɺࠓͷίωώτͷνʔϜͳΒίϯςφʹ ؔͯ͠ΞϓϦέʔγϣϯΤϯδχΞ͚ͩͰ ݁͢Δੈք͕ͭ͘ΕΔͱ৴͍ͯ͡Δ • ͦ͜·ͰίϯςφɾΠϯϑϥٕज़ΛʮνʔϜ
ͰҭͯΔʯͷʹͯ͠ɺࣗͨͪͷࣄΛͳ ͘͢ͱ͜Ζ·ͰΓ͍ͨ ΠϯϑϥΤϯδχΞͷࣄΛͳ͘͢
·ͱΊ
• ϚϚ͚No.1ΞϓϦͷϚϚϦͷAWS ʹࢧ͑ΒΕ͖ͯ·ͨ͠ • ࠓຊͷϚϚίϯςφʹࢧ͑ΒΕ͍ͯ·͢ • ίωώτͰɺ͜Ε͔ΒίϯςφɾΠϯϑ ϥٕज़ΛʮνʔϜͰҭͯΔʯΧϧνϟʔʹ͠ ͍͖ͯ·͢
·ͱΊ
͏ͪΐͬͱΛฉ͍ͯΈ͍ͨͱ ࢥͬͨํؾܰʹ͓͕͚͍ͩ͘͞ ͘͠!UBUTVTIJNʹ%.Ͱ
$POOFIJUP*OD$50!UBUTVTIJN ϚϚͷҰาΛࢧ͑Δ ͝ਗ਼ௌ༗͏͍͟͝·ͨ͠%