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
コンテナに挫折したあなたへ / A Letter to Uncontainerized Apps
Search
Tori Hara
PRO
March 11, 2017
Technology
23
9.3k
コンテナに挫折したあなたへ / A Letter to Uncontainerized Apps
おコンテナが自分たちのアプリやワークフロー、運用にフィットしないのはなんでなのか?
Presented at JAWS DAYS 2017.
Tori Hara
PRO
March 11, 2017
Tweet
Share
More Decks by Tori Hara
See All by Tori Hara
カミナシでの技術的負債返済プロジェクトとその決断 / Beyond tech debts at Kaminashi
toricls
PRO
47
24k
アプリケーション開発者は Amazon ECS あるいは Kubernetes をどこまで知るべきか #AWSDevDay / You build it, you run it
toricls
PRO
56
19k
永続複数ブランチ運用は『単一のコードベース』と言えるのか / What are your justifications for the multi-branches?
toricls
PRO
17
6.3k
緩やかに死んでいくシステム / You won't be in the team forever
toricls
PRO
23
15k
技術的負債とステークホルダと説明責任と / The Debt
toricls
PRO
76
36k
Securing your Amazon ECS applications: Best practices
toricls
PRO
0
900
第2回 AWS Fargate かんたんデプロイ選手権 #AWSDevDay / The Easiest Deployment Championship 2020 - Find your winner for AWS Fargate!
toricls
PRO
18
23k
独りよがりのプラットフォーム / For Whom that Platform Runs
toricls
PRO
99
35k
Containers + EC2 Spot: 特性と実装パターンに学ぶ低コスト & 高可用アーキテクチャ / Practical Guide for Amazon EC2 Spot with Containers
toricls
PRO
13
5.3k
Other Decks in Technology
See All in Technology
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
400
はじめてのOSS開発からみえたGo言語の強み
shibukazu
4
1k
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
200
AWSで始める実践Dagster入門
kitagawaz
1
750
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい勘所を集めてみました! - / How to start Scrum that is not written in the Scrum Guide 2nd
takaking22
2
220
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
680
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
220
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
990
測りにくい成果を測る — BtoB SaaSにおける効果検証への挑戦 / Shirokane Kougyou vol 20
sansan_randd
1
110
20250913_JAWS_sysad_kobe
takuyay0ne
2
250
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
340
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Scaling GitHub
holman
463
140k
Side Projects
sachag
455
43k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
590
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
RailsConf 2023
tenderlove
30
1.2k
Embracing the Ebb and Flow
colly
87
4.8k
Transcript
SUPINF Inc. // twitter.com/toricls ǗȗǪǮƘ؟ƄƌůƗƌƥ Yasuhiro HARA Mar 11, 2017
SUPINF Inc. // twitter.com/toricls AGENDA ▶︎ DockerǗȗǪǮ ▶︎ ɛƜƗƉǗȗǪǮƘ؟ƆƸƛŸ ▶︎
؟ƄƗűƌƮƘ
SUPINF Inc. // twitter.com/toricls ۙڒƛǘȜȏ ůźƶƮƗűƔ
SUPINF Inc. // twitter.com/toricls Docker ƛƀƕƿ֒ű̌ƄƫƄƴų
SUPINF Inc. // twitter.com/toricls Docker୦ŵƓƫƆŸ ǗȗǪǮƕVMƛű https://www.docker.com/what-container
SUPINF Inc. // twitter.com/toricls Docker୦ŵƓƫƆŸ ǗȗǪǮonAWS https://www.docker.com/what-container } { EC2
{ Docker Τϯδϯ { Docker ίϯςφ
SUPINF Inc. // twitter.com/toricls $ ps aux USER PID ...
COMMAND root 3123 ... /agent root 16293 ... puma 3.6.0 (tcp://0.0.0.0:80) [app] ... Docker୦ŵƓƫƆŸ ǗȗǪǮƛȱƕу $ docker ps CONTAINER ID IMAGE COMMAND ... 533c36714f42 my-rails-app:latest "bundle exec rails s ..." ... 5d48c82b7faa amazon/amazon-ecs-agent:latest "/agent" ... # ps aux USER PID ... COMMAND root 1 ... puma 3.6.0 (tcp://0.0.0.0:80) [app] root 18 ... sh ... Docker Container Docker Engine Host OS $ ps aux USER PID ... COMMAND root 3123 ... /agent root 16293 ... puma 3.6.0 (tcp://0.0.0.0:80) [app] ... $ docker ps CONTAINER ID IMAGE COMMAND ... 533c36714f42 my-rails-app:latest "bundle exec rails s ..." ... 5d48c82b7faa amazon/amazon-ecs-agent:latest "/agent" ... # ps aux USER PID ... COMMAND root 1 ... puma 3.6.0 (tcp://0.0.0.0:80) [app] root 18 ... sh ... Docker Container Docker Engine Host OS
SUPINF Inc. // twitter.com/toricls AMI (Amazon ϚγϯΠϝʔδ) Amazon EC2 Πϯελϯε
RUN Docker୦ŵƓƫƆŸ ţLjȅȜǜŤƕţǗȗǪǮŤ RUN Ɨ Docker LjȅȜǜ Docker ǗȗǪǮ
SUPINF Inc. // twitter.com/toricls Docker୦ŵƓƫƆŸ ǗȗǪǮƿ̿ŸƆ Docker Hub / Docker
Registry $ docker pull nginx:latest Ɨ $ docker run nginx:latest
SUPINF Inc. // twitter.com/toricls $ cat Dockerfile $ cat Dockerfile
FROM ubuntu:16.04 RUN \ apt-get update && \ apt-get install -y nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] Docker୦ŵƓƫƆŸ LjȅȜǜƿʊƸ $ cat Dockerfile FROM ubuntu:16.04 RUN \ apt-get update && \ apt-get install -y nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] $ docker build -t my-awesome-nginx . ... ... $ cat Dockerfile FROM ubuntu:16.04 RUN \ apt-get update && \ apt-get install -y nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] $ docker build -t my-awesome-nginx . ... ... $ docker run -p 80:80 my-awesome-nginx ...
SUPINF Inc. // twitter.com/toricls Docker୦ŵƓƫƆŸ DOCKER ƿʎųࢪࣇ ▶︎ ǪǝǬƄƌdžȜǪLJǹDžǓǬƿƊƛƫƫǫǻȑLjƔźƸȁȜǣǷȎǪLJ ▶︎
džǻȎҩࢷЭƛҥ"MAICPDGJC ŹǴȜǜȋȗভࢪƔźƸǬȐȜǙǷȎǪLJ ▶︎ ɤƛǻȑǟǝŸƶ൭ԽƘആƂƹƌҩࢷЭ ▶︎ LjȅȜǜ˪ۍƛহʛ֕ ▶︎ ӒƗűǎȜǴȜǼǧǭƔ൭ఽƘdžǻȎǕȜǛȋȗƿ௲̿ƔźƸʟ٭֕ ▶︎ ऩܵҴڠ֕ ▶︎ ൭ఽƗǫȎǴȎȜǙLjǓȏƥƛ୨θ֕
SUPINF Inc. // twitter.com/toricls Docker୦ŵƓƫƆŸ DOCKER ƿʎųࢪࣇʐŵƝҜ˦ƘƀǀƗƀƕŹ Ruby 2.1
App Ruby 2.3 App Java 8 App EC2 Host Java 7 App
SUPINF Inc. // twitter.com/toricls "Build, Ship, and Run Any App,
Anywhere" https://www.docker.com Docker୦ŵƓƫƆŸ DOCKER ƛௐ́
SUPINF Inc. // twitter.com/toricls ɛƜƗƉǗȗǪǮƘ؟ƆƸƛŸ
SUPINF Inc. // twitter.com/toricls ƗƉǗȗǪǮӐ˥Ƙ؟ƆƸƛŸ "ƗǀŸǗȗǪǮųƎƘƜǹLJǧǬƄƗűƵƚ"
SUPINF Inc. // twitter.com/toricls ǹLJǧǬƄƗűׂƅŹƆƸͳϮƜʈƗƛŸ ȆǤȗƗdžǻȎǕȜǛȋȗ್ࣲƛ ǽǝǬǻȍǓǪLJǝƘ߁ƐƓűƗű Web
SUPINF Inc. // twitter.com/toricls
SUPINF Inc. // twitter.com/toricls ▶︎ ǟǧǬdžǧǻઈ͎̿ƛƌƮƘҫ୭ࣶƗǹǍȜȂǧǬƿʎűřǻȑǜNjǓǬƘډƄż̲ƼƐƌ್ࣲ ਾŹୟƆƸڪƕǗǝǬŹۋӑ͎ƂƹƓűƸ ▶︎ -1ƥƛʓґʜƿڞऺ͎ƄřҩࢷЭƔƛ१݁֕ƿۋш͎ƂƹƓűƸ ▶︎
ȆǤȗƗǓȍNJǭǻȍǧǬǹǍȜȄȥƥƛǫǻȑLjƘౖƄƓŷƷřǙȜǴȜভࢪƱǛǝǪȄভࢪ ŹȧୟƔůƸ ▶︎ ್ࣲࢷЭƕۙࣘࢷЭƛԎࣙƿۋӑೠƘƄřdžǜȎǪLJƿۋш͎ƆƸ৻ৼࣶǫǻȑLjŹΏ੧ ▶︎ ǨȜȏřdžȜǑǪǓǥȇř್ࣲǻȍǓǪLJǝƿшԤƘрۅƆƸƀƕƗżǝǕȜȏdžǧǻƔźƸ 12-Factor AppƘŷžƸ"ટű"džǻȎǕȜǛȋȗƛҥ https://12factor.net/ja see also https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2017-docker-on-aws
SUPINF Inc. // twitter.com/toricls ƔřƖųƆƹƝűűƛŸ ǥȜȄʇ̛ƕǫȎǴȎȜ džǻȎǕȜǛȋȗ ోࣄ Ljȗǹȍݙ ƿڞऺƘƄřʈŹݸžƓűƸƛŸƿƜƐźƷƂƈƸ
ǗȗǪǮƘ ౖƄƌ
SUPINF Inc. // twitter.com/toricls ƔřƖųƆƹƝűűƛŸ ǥȜȄʇ̛ƕǫȎǴȎȜ džǻȎǕȜǛȋȗ ోࣄ Ljȗǹȍݙ ƿڞऺƘƄřʈŹݸžƓűƸƛŸƿƜƐźƷƂƈƸ
ǗȗǪǮƘ ౖƄƌ džǻȎઈʇƛƱోࣄƘƑűƓƜ ̫ƕ12-Factor AppƔڞƂƹƓűƸƛƔ ɟڒƜȵƘǫȎǴȎȜƕLjȗǹȍƛƿƄƫƆ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛǫȎǴȎȜȆǫȏ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮŹࣳМƆƸ̣ƛǫȎǴȎȜȆǫȏ ҩࢷЭ ǷȏǭնƛdžȜǪLJǹDžǓǬƛভࢪƱ ҩƛǫǻȑLj̅ࢪŹ džǻȎǕȜǛȋȗƁƕƘʊƷఢƫƹƓűƸƀƕŹхżř ţȆǫȏŤ͎ƂƹƌƯƛŹůƫƷƗűࢃׄ
ţǫǻȑLjƜۙࣘࢷЭƔgit pullʂʯΈ͍ͨͳਓ ͍ͨΓͯ͠ɺ ׂͱΜͪΌͯ͠Δײ͡
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛǫȎǴȎȜȆǫȏ Registry ǗȗǪǮভࢪǨȜȏ ҩࢷЭ džȜǪLJǹDžǓǬਧźМƛȐǜǝǬȎř
ǗȗǪǮƛҩƿভࢪƆƸǨȜȏŹࣳМƄř ǫǻȑLjƱȎȎȜǝƛȫ࣍Ƙţ˪୭கȆǫȏŤŹ ࣁƫƹƌ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛǫȎǴȎȜȆǫȏ ݔୟ Registry 1. build 2.
ship 2. ship 3. run Docker LjȅȜǜ ҥƘ߁Ɛƌ ҩƿؙु "ҩҥ" ǗȗǪǮভࢪǨȜȏ ҩࢷЭ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛǫȎǴȎȜȆǫȏ ҩҥ Registry 2. ship "ҩҥ"
ǗȗǪǮভࢪǨȜȏ ҩࢷЭ ƀƹƗǀƋ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛǫȎǴȎȜȆǫȏ ҩҥ ▶︎ ௰ƶƈƌű"MAICPLjȅȜǜ ▶︎ ऺʡƄƌű!.3ȅȆȎʎࣄಊ
▶︎ ࢷЭрٵƘƵƸdžǻȎǕȜǛȋȗƛҥʱ ▶︎ ȂNJȗǬƆƸǫLJȐǓǬȎ ▶︎ ˨್ƆƸȁȜǬ ▶︎ ǗȗǪǮƛȱƔ௰ƶƈƸǻȑǟǝƛҩǗȂȗǭřƗƖƗƖ ƖǀƗǗȗǪǮভࢪǨȜȏƿ ʎƐƓƯƨƩΝƅ ƀƛҥƕDockerLjȅȜǜŹ ůƹƝҞ˦ƘΝƅǗȗǪǮƿʈԽƔƯ ௲̿ƔźƸ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛǫȎǴȎȜȆǫȏ ǗȗǪǮভࢪǨȜȏਯƛǫǻȑLjȆǫȏ Docker njȗǜȗ ΤʔδΣϯτత Կ͔
ȊȜǚȜŸƶƛ APIǗȜȏƿ žɥžƸ ȂDZȜǜȇȜࣶƗʈŸ 1. "࣮ߦఆٛ"Λ࣮ߦʂ 3. ࢲͳʹ͔ࣄ͋Γ·͢ʁ 2. ʔ͍ͬͯͯͶ 4. ͜ͷ࣮ߦఆٛΑΖ͘͠ 5. ͜ͷΠϝʔδ͖࣋ͬͯͯ 6. docker pull 7. ͜Μͳײ͡Ͱ run ͯ͠ 8. runʂ ǿǝǬ Q. Ͳ͏Αʁ 9. ΦοέʔͰ͢ A. ॲཧதͰ͢ʔ 10. Ͳ͏Αʁ 11. ͬͯ·ʔ͢ 0. "࣮ߦఆٛ"Λొʂ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮŹࣳМƆƸ̣ƛLjȗǹȍȆǫȏ Java App A Java App
B Rails App A Nginx Name: Java A Name: Java B Name: Rails A ϗετ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮŹࣳМƆƸ̣ƛLjȗǹȍȆǫȏ Java App A Java App
B Rails App A Nginx Name: Java A Name: Java B Name: Rails A Auto-Scaled :D Rails App A Nginx Name: Rails A ϗετ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ Rails App A Nginx Java
App A Java App B Name: Instance Name: Instance ϗετ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ Rails App A Nginx Auto-Scaled
:D Rails App A Nginx Java App A Java App B Name: Instance Name: Instance ϗετ
SUPINF Inc. // twitter.com/toricls ϗετ ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ Rails App A Nginx
Rails App A Nginx Java App A Name: Instance Name: Instance Out of Memory :x
SUPINF Inc. // twitter.com/toricls ϗετ Restarted :D ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ Rails App
A Nginx Rails App A Nginx Java App A Java App B Name: Instance Name: Instance
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
Auto-Scaled :D Auto-Scaled :D
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
New Service :D
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
New Service :D
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
New Service :D ǓȍǝǣȜ˦ʇƛ ȎǡȜǝɆ࢜Ź ƿ௳ŵƌඵ
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
New Instance :D
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
New Service :D
SUPINF Inc. // twitter.com/toricls ǗȗǪǮڪɨƛLjȗǹȍȆǫȏ ǓȍǝǣȜ Cluster-Name: Some Project ෳͷϗετͷू߹
ҩҥƔǗȗǪǮŹքୟƗCPUƱȅȆȎƿ ڞुƆƸƀƕƘƵƷř ţɆ࢜ŤƕűųȅǬȎǓǝƔ ȎǡȜǝƛǝǕȜȎȗǔŹΏ੧ƘƗƐƌ
SUPINF Inc. // twitter.com/toricls Questions?
SUPINF Inc. // twitter.com/toricls ڪŹʉƐƌƶৼźƛȅȆۆźƔƆ
SUPINF Inc. // twitter.com/toricls ǥȜȄʇ̛ǫȎǴȎȜ ▶︎ ǻȑǜNjǓǬƘډƄż̲ƼƐƌ್ࣲਾŹୟƆƸڪƕǗǝǬƿۋӑ͎ƆƸ ▶︎ ȑȜǏȏ್ࣲࢷЭƛݙŹҞ˦ƘƯƄżƜřƨƩ ઈ͎̿ƂƹƓűƸ
▶︎ ൰ƛƵųƘűഭۆƿȃǝƗżҩƄƗűƕ̿ŸƗűdžǻȎǕȜǛȋȗƜřшƛМΙʓґȍLjǺȍȎƱȃǭȏNJNjdžƛۅډŹǥȜȄȅȗ ǴȜŸƶօƂƹřƖǀƖǀ೨ੳ͎ƄƓűż ▶︎ ৻ৼࣶǫǻȑLjٵ̐řٵڪͣʂƔƛǫǻȑLj ƿŵƸʇ̛ƘƆƸ ▶︎ ৻ৼࣶƘǫǻȑLjƿųƌƮƘƜřǫǻȑLjŹઈ͎̿ƂƹƓűƸƀƕƕřǫǻȑLjƘύ഻ŹůƐƌƕźƘҜփƄƓשƈƸƀƕŹಈୟ ▶︎ ǗȜǭƿۆűƌۙɛŹۙࣘࢷЭƛǫǻȑLjƫƔ߲żƼƸ ▶︎ ǗȗǪǮƛ൭űȁȜǣǷȎǪLJƿࣁŸƆƕřքࡔࣶƘǗȜǭǽȜǝƥƛǥNjǧǓLjȗŸƶǫǻȑLjƫƔƛڪŹटਘƂƹƸ ▶︎ ್ࣲࢷЭƛǗȗǪǮŹƊƛƫƫۙࣘƔ̿żƄřƊųƗƸƵųƘdžǻȎǕȜǛȋȗƿʊƐƓűƸƜƇƗƛƔ ▶︎ LjȗǹȍnjȗǜǯdžƜǫǻȑLjƊƹઈʇƿ؇զƆƸƛƔƜƗżřʢഺ֕൭żઈ͎̿ƂƹƌǫǻȑLjڊ߆ƛݙƘӊ֍ƆƸƦź ▶︎ ǫǻȑLjŹэٯƄƌƕźřрƗƯƛƿǫǻȑLjƄƓƄƫƐƌƕźƘƘƖųƱƐƓȎǴȜǬƆƸŸƕŸdžǻȎǕȜǛȋȗnjȗǜǯdžƕ͡ ̰ƄƓટűǵLjǻȍLjȗƿʊƸ ▶︎ űű"MAICPLjȅȜǜƛʊƷڊƿȟਊƘŵƓůſƓƯűűŸƯřLjȅȜǜʊƐƎưƐƓƯűűŸƯ ▶︎ Ɩƹƍž̵̰ƄƓƯύ഻ƜքƇ௲źƸ"ύ഻ƿ௲ƀƂƗűƌƮƛǥNjǧǓʇ̛ƱȏȜȏƿքୟɪȥƘƁƎưƁƎưƱƸ"ƀƕƵƷƯř"ύ഻Ź ࣲࣁƄƌƕźƘۋटƛȎȜǭǣLjȄƔʤބࡱƛdžǻȎǕȜǛȋȗƿǫǻȑLjƔźƸ"ƀƕƛڊŹٵ˒ʫಈୟƔƜƗŸƺųŸƕ
SUPINF Inc. // twitter.com/toricls ǥȜȄʇ̛ǫȎǴȎȜ ▶︎ ǷȏǭřȎȎȜǝřҩŹڞऺƘ̐ആƂƹƌǝǪȜǜƕƄƓ̿ż ▶︎ " ȂLjǔȐȜǛȋȗƜҩǹNjȜǞƔƜƗżȎȎȜǝƕҩƛƘґϺƆƸǝǪȜǜƕؤŵƸƦź
SUPINF Inc. // twitter.com/toricls ▶︎ ǗȜǭǽȜǝŹǴȜǜȋȗভࢪǛǝǪȄƛভࢪȦƘůƸ ▶︎ ȑǔƜݢࠑ̰̌ƘΡż ▶︎ džǻȎǕȜǛȋȗƛ̿рۅƜͳ̡ƕƄƓࢷЭрٵƔࠀƆ
▶︎ ǫǻȑLj˝ƛࢷЭƘʓґƄƌҥʱƕǫǻȑLjƛǗȗǪǑǝǬƿΝƅ"ҥ"ƕƄƓভࢪƆƸƕնƔǶLjLJƐƓƗƸ ▶︎ CE0?GJQƛҥǹDžLjȏƔűųƕƀƺƛ"ۙࣘƍƐƌƶƀƛǫȜǣǽȜǝ"ƛۆźڊƜࡽҥƛǛȜȗƔƑƶżƗƸƪƵ ▶︎ ǴǧǓnjȗǭǙȜǷǝʓґǙȜǷǝř" ƕŸǑȇǧǛȉǝǬȐȜǜƕŸ ƿҴڠƘ̑ƷۊŵƶƹƸƵųƘҩƂƹƓűƸ ▶︎ ۙࣘ" عৼ˝ƿрŵƵųƕƄƌڪƘǷȏǭŸƶƱƷइƆƛƜƐƓűƸ ▶︎ Ԣƛ0?GJQƛҥǹDžLjȏƛŷʊ߆Ƙչųƕř" عৼ˝рۅƛƌƮƘǗȜǭǽȜǝȎȁǜǬȎ Ƙрۅƿ̲ŵƸքୟŹࣲࣁƄƓƄƫų ▶︎ ţȎȎȜǝŤǝǪȜǜƔ" عৼ˝ƛࢷЭрٵƿۆźهŵřţҩŤǝǪȜǜƔdžǻȎǕȜǛȋȗƿ௰ƶƈƸƛŹۓƫƄűƕƜ֒űƫƈǀŸ ▶︎ ǿǝǬȂǛȗƘʈŸƿەմƄƗű ▶︎ ţǿǝǬƛ'.ƜƀƹƔ̿űƓűƸƜƇඵŤƬƌűƗƛƕŸřǿǝǬƘࡽҥƛǫLJȐǓǬȎǹDžLjȏŹਧűƓůƸƜƇඵƕŸ ▶︎ ǫLJǝǓƘǹDžLjȏƿΡź̌ƂƗű ▶︎ ݹƛȎǓnjǝǬŹ۪ƌƕźƘƊƛǹDžLjȏŹґϺƆƸƀƕƿەմƄƗű ▶︎ ୟƜǝǕȜȏdžNJǬƔźƸƵųƘʊƶƹƓűƸƕűųƀƕ ▶︎ ʓґȍLjǺȍȎŹǵǧǕȜǜভࢪǨȜȏƗƖƿʎƐƓLjȗǝǬȜȏƔźƸƵųƘƗƐƓűƸCE SLBJCP džǻȎǕȜǛȋȗ
SUPINF Inc. // twitter.com/toricls ▶︎ ್ࣲࢷЭƕۙࣘࢷЭƛԎࣙŹӒƗű ▶︎ CE್ࣲࢷЭƜ1/*GRCƍžƖۙࣘƜ.MQREPC1/*ƬƌűƗԎࣙƜdžǏȗ ▶︎ ௲̿ఽԽŹఽű
▶︎ ௲̿ڪƘȆȎȆȎ̅ࢪƿƱƸƵųƗƛƜžƌű" ƛȂLjǔȐȜǛȋȗƕŸƜƊƯƊƯ௲̿̅ࢪƔƜƗűQCCǥȜȄʇ̛ඹǫȎǴȎȜ ▶︎ ǛǔǮȏ1'%2#0+ƕŸ ƿžƐƓƎưǀƕǔȐȜǝǹȏƘ৮ɅƔźƸ ▶︎ ઈఄƛݮ੧ƿȁȜǬƿƅƓ˨್ƆƸ džǻȎǕȜǛȋȗ
SUPINF Inc. // twitter.com/toricls ోࣄ ▶︎ ǗȗǪǮƛҩভࢪŹƔźƓűƸ ▶︎ ǨȜȏƜѝźƗƯƛƿʎŵƝűűƕ֒ų ▶︎
51ȊȜǚȜƛМΙřȂǝǣȜDzȜǭਯƛভࢪǗǝǬƿױƐƓƔƯ#!1ɪуƛƿŵƸƌƮƘƜƊƹई֊ƛࢪࣇŹքୟ ▶︎ ভࢪǣǝǓƯҩƘ௰ƶƈƸ"MAICPLjȅȜǜƕΝƅƯƛƿʎƐƓų ▶︎ ǗȜǭǽȜǝřҥʱƗƖŹ˦ƓΝƅƍŹřǗȗǪǮƿ௰ƶƈƸڪƛǗȂȗǭƍžųࣶƗ ▶︎ džǻȎǕȜǛȋȗҩŹ@SLBJCCVCAP?GJQQƔř" ȂLjǔȐǛȜǛȋȗŹ@SLBJCCVCAP?GJQB@KGEP?RCƬƌűƗ ▶︎ ȅǬȎǓǝƛഁƿųnjȜǜNjȗǬƯǗȗǪǮƔƱƹƸƕűƺűƺҊƄűCE"?R?BME +?AICPCJ ▶︎ ȑǔഁ ▶︎ ǗȗǪǮƛկ̫Ɯ௰ƐƓűƸǻȑǟǝƛݢࠑ̰̌ƿƖƀŸƘǝǬȎȜȃȗǔƆƸƕƀƺƫƔ ▶︎ Ɗƛ˝ƛௐ́Ɯ̘ƛdžǻȎǕȜǛȋȗ?UQJMEQ $JSCLRBƘƼƈƸ ▶︎ ƖƀƔǗȗǪǮŹ̿űƓűƸŸƼŸƶƗűƀƕƿ̣لƘోࣄ୯ƆƸƀƕƿҴƆƸ ▶︎ ƖƀƔ̿żŸƼŸƶƗűƀƕƿҴƔźƸ ▶︎ ƖƀƔƯ̿ŸƈƸ ▶︎ ҰࣲࣁڪƛռڔƘୟƆƸȎȜǭǣLjȄƿटਘƔźƸ ▶︎ ƼȜű
SUPINF Inc. // twitter.com/toricls ోࣄ ▶︎ !'!"ඵ৻ৼࣶǫȎǴȎȜඵƱƶƗűƛǤȅǠǧǣLj ▶︎ !.3ȅȆȎƛ̫ƷզƓƕŸƿƎưǀƕƱƐƓř׆ƫƄƱŸƗǗȗǪǮƿ̿ŸƆ ▶︎
ƀƀƛ̫ƷզƓƿƎưǀƕƱƹƓƗűƕǗȗǪǮƛ̙ࣄƘƵƸǗǝǬ̹࢜Źۋш͎ƔźƗű ▶︎ ƊƯƊƯΝƅǿǝǬƔ̿űƓűƸǗȗǪǮƂǀƌƎƘƕƐƓయֳ ▶︎ "MAICPnjȗǜȗƛǻȑǟǝઈʇƯःӇǗȗǪǮভࢪǨȜȏƛnjȜǜNjȗǬŹȟਊƘ̿űƓűƸМΙƜƊƹƯःƄƌڊŹƬǀƗԬƈ ▶︎ %MJ?LEƔۆŸƹƌdžǻȎƛƵųƘͣȟƛǴLjǮȎƔ̿ʊƆƸdžǻȎǕȜǛȋȗƔƯřǗȗǪǮ͎ƄƓǫǻȑLjƆƸ ▶︎ SGJB 1FGN 0SLƿɤƛdžǻȎǕȜǛȋȗƕ˪୭கȆǫȏ ƔŵƸƀƕƘƵƸోࣄǗǝǬƛʃ߾ ▶︎ ҢٰதɇŹ௲źƸƛƔůǀƫƷ߲żƜ୬ƹƗű
SUPINF Inc. // twitter.com/toricls Thank you :D