SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said...
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"
My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"
DemonstrationDemonstrationDemonstrationDemonstrationDemonstration
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<- detectCores()
cl�<- makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<- foreach(ntree�= rep(40,�36),�.combine�=�combine,
.export�= "spam",�.packages�= "randomForest")�%dopar% {
randomForest(type�~ .,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220
☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS
How to build?How to build?How to build?How to build?How to build?
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
How to run?How to run?How to run?How to run?How to run?
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs?
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.
How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?
make�distcleanmake�distcleanmake�distcleanmake�distcleanmake�distclean
Try it!Try it!Try it!Try it!Try it!
https://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-r
License of photos #1License of photos #1License of photos #1License of photos #1License of photos #1
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
License of photos #2License of photos #2License of photos #2License of photos #2License of photos #2
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0

Mais conteúdo relacionado

Semelhante a Kick-R: Get your own R instance with 36 cores on AWS

Kite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenterKite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenterVasilis Gavrielatos
 
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQLAWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQLGrant McAlister
 
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...Amazon Web Services
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveAmazon Web Services
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced BasicsDoug Jones
 
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...Amazon Web Services
 
(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWSAmazon Web Services
 
Podlove Podcast Validator
Podlove Podcast ValidatorPodlove Podcast Validator
Podlove Podcast ValidatorLars Windauer
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardSV Ruby on Rails Meetup
 
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8XSolve
 
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibilityre:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL CompatibilityGrant McAlister
 
Apache Spark for Library Developers with William Benton and Erik Erlandson
 Apache Spark for Library Developers with William Benton and Erik Erlandson Apache Spark for Library Developers with William Benton and Erik Erlandson
Apache Spark for Library Developers with William Benton and Erik ErlandsonDatabricks
 
TDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyTDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyFabio Akita
 
Traceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thTraceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thCarsten Sandtner
 
Virtual Machine for Regular Expressions
Virtual Machine for Regular ExpressionsVirtual Machine for Regular Expressions
Virtual Machine for Regular ExpressionsAlexander Yakushev
 
Sending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old schoolSending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old schoolNahidul Kibria
 
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)Robert Stupp
 
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDBBuilding a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDBCody Ray
 

Semelhante a Kick-R: Get your own R instance with 36 cores on AWS (20)

Kite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenterKite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenter
 
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQLAWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
 
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
 
Let's Get to the Rapids
Let's Get to the RapidsLet's Get to the Rapids
Let's Get to the Rapids
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep Dive
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced Basics
 
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
 
(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS
 
Podlove Podcast Validator
Podlove Podcast ValidatorPodlove Podcast Validator
Podlove Podcast Validator
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
 
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8
 
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibilityre:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
 
Apache Spark for Library Developers with William Benton and Erik Erlandson
 Apache Spark for Library Developers with William Benton and Erik Erlandson Apache Spark for Library Developers with William Benton and Erik Erlandson
Apache Spark for Library Developers with William Benton and Erik Erlandson
 
TDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyTDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em Ruby
 
Traceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thTraceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14th
 
Virtual Machine for Regular Expressions
Virtual Machine for Regular ExpressionsVirtual Machine for Regular Expressions
Virtual Machine for Regular Expressions
 
Sending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old schoolSending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old school
 
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
 
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDBBuilding a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
 
Rails on Oracle 2011
Rails on Oracle 2011Rails on Oracle 2011
Rails on Oracle 2011
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Kick-R: Get your own R instance with 36 cores on AWS

  • 1. Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd.
  • 2. One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said... ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"
  • 3. My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"
  • 4. DemonstrationDemonstrationDemonstrationDemonstrationDemonstration data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<- detectCores() cl�<- makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<- foreach(ntree�= rep(40,�36),�.combine�=�combine, .export�= "spam",�.packages�= "randomForest")�%dopar% { randomForest(type�~ .,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) ☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220 ☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS
  • 5. How to build?How to build?How to build?How to build?How to build? $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup
  • 6. How to run?How to run?How to run?How to run?How to run? $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
  • 7. How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs? M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.
  • 8. How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment? make�distcleanmake�distcleanmake�distcleanmake�distcleanmake�distclean
  • 9. Try it!Try it!Try it!Try it!Try it! https://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-r
  • 10. License of photos #1License of photos #1License of photos #1License of photos #1License of photos #1 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
  • 11. License of photos #2License of photos #2License of photos #2License of photos #2License of photos #2 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0