RStudio Server Amazon Machine Image (AMI)

IMPORTANT NOTE! ... The default password is no longer rstudio , but rather is set to the instance ID of the instance you have launched for greater security (thanks to Colin Gillespie for security report)

< Back to homepage

Amazon’s EC2 platform provides a convenient environment for rapidly procuring computational resources in the cloud. As a Statistician, my interest is specifically in statistical computation with R and the advent of RStudio Server has made it a hand-in-glove fit with the cloud.

To get started with the Amazon cloud, you must first signup for an AWS account if you don’t already have one. To use the AMIs described on this page, you simply click your chosen AMI ID which will take you through to the Amazon web interface and preselect the correct region and AMI. Simply ensure that your ‘security group’ settings allow incoming HTTP (port 80) traffic and then copy-and-paste the ‘Public DNS’ for your running instance to a web browser address bar to bring up the login page.

Click here for a simple video guide to using the AMIs listed here, or for more detailed information read on.

What is this?

If you want to run a server in the Amazon cloud, you have to select what system you are going to bootup. This is made easy by a vast array of system images (or AMIs) which pre-pacakge a system ready for you to boot on your own custom virtual server. Many of these are simply base operating system installs, such as Debian or Ubuntu, but others add on pre-configured extra software into the image to reduce time-to-getting-stuff-done! I have created an AMI specifically targeted at R and RStudio Server with the goal of making it a 1 minute job to get going for anyone with an AWS account.

In particular, many common tools and dependencies are built-in. Features include:

30GB EBS storage — compact, but enables storage of more sizeable datasets. Defaults to fast SSD storage (faster, zero IO costs, only $1 per month in most regions)

storage — compact, but enables storage of more sizeable datasets. Easy to use Dropbox integration to up/down-load files and data. Setup can be completed entirely through RStudio in the web browser by running a single function. Selective syncing supported so that large Dropbox accounts don’t sync everything. Unlink and relink to new account supported.

Full LaTeX support enabling R Markdown, Sweave and regular document compiles within RStudio.

Java 8 JRE enabling full support for H2O and Spark.

GDAL dependencies for GIS packages.

dependencies for packages. GSL and CURL libraries.

and libraries. Database support: ODBC drivers installed. RMySQL package precompiled and installed.

Git and Subversion support out of the box.

MCMC samplers: Stan (RStan) installed and ready to use for Hamiltonian Monte Carlo sampling. JAGS (and rjags) installed and ready to use for Gibbs sampling. Greta supported for GPU MCMC sampling via Tensorflow support.

samplers: CUDA and cuDNN. Enables immediate use of GPU instances (e.g. p2.* instances) without any setup. Tensorflow and Keras deep learning libraries can be accelerated using nVidia GPUs on the GPU compute instances, just 3 lines of R code each to setup: # Tensorflow install.packages("tensorflow") library("tensorflow") install_tensorflow(version = "gpu") # Keras install.packages("keras") library("keras") install_keras(tensorflow = "gpu") You will then be prompted to install Miniconda: say "Yes" to this option. See the RStudio Keras page and RStudio Tensorflow page for details on using from R. Also preinstalled Magma GPU linear algebra libraries for accelerated matrix decompositions.

Swap space for compiling of large packages on constrained memory instances (such as rugarch).

Arbitrary precision arithmetic and number theory libraries supported out of the box: GMP MPFR FLINT

Optimised BLAS for automatically faster matrix operations than base R libraries (OpenBLAS).

Julia?

From May 2016 to September 2018 there was experimental support for Julia (and Python). Julia is an exciting new technical computing language which is very high performance. A lot of R programmers may be interested in levereging both languages, so the AMIs included a web interface (Jupyter) which enabled using Julia immediately.

Unfortunately, with the recent package management system changes, I have had difficulties including the lastest Julia release. This is because Jupyter requires all users to have access to IJulia prior to login, meaning a global package set. This was possible in earlier versions of Julia, but at the time of writing, I have been unable to make the same work with the newest Julias. If you would like to see this functionality return, please contribute to this thread at the Julia community where I have detailed the previous solution and current problems.

Why an RStudio AMI ?

The RStudio team have done a phenomenal job with making it simplicity itself to install, but there are still several motivating factors which led to me creating this AMI:

Although simple, it still takes several minutes to install R and RStudio after the virtual machine is going and this adds up if you do it often.

More time consuming is getting all the extras one may want such as LaTeX, Git, etc installed.

Time consuming and fiddly is getting CUDA setup to leverage GPU computing.

Of course, ‘simple’ is subjective and there are those who don’t know Linux, but want to use RStudio on a server without ever touching a Linux command line.

Having the full tool stack through to linking a Dropbox account in about 5 seconds means that I can go from zero to having a 36-core machine with over 200GB of RAM with all my code and data synced to a fully functional R environment with all supporting tools in a matter of minutes.

of with all my code and data synced to a fully functional R environment with all supporting tools in a matter of minutes. At the time of writing I couldn’t find any with the standard Amazon search tools and — in the great open-source tradition — that seems like an itch I should scratch!

AMI Release History

Check back for updates as I will be periodically removing old AMIs because I can’t afford indefinite storage for them. For historical purposes, the AMI release history is recorded here (scroll right to see all):

Release EU West

Ireland EU West

London EU West

Paris EU Central

Frankfurt EU North

Stockholm Canada

Central US East

Virginia US East

Ohio US West

N. California US West

Oregon South America

São Paulo Asia Pacific

Singapore Asia Pacific

Tokyo Asia Pacific

Hong Kong Asia Pacific

Seoul Asia Pacific

Sydney Asia Pacific

Mumbai RStudio 1.3.1073

R 4.0.2

CUDA 10.1/cuDNN 7.6.5

Available 64-bit

HVM ami-05bf201d51b1db642 ami-0b4be5cd9e848fabb ami-005af3b164a016fac ami-076abd591c4335092 ami-0fa80e7cbbc94e3b7 ami-0bdd24fd36f07b638 ami-0f2290fdad793f863 ami-07083dcdc7b7e0160 ami-01c4bf25032f468d5 ami-0dc8133a777c1be2c ami-0b900643456dfb4d9 ami-0cba549926c171ab2 ami-00b6908a3a1faec83 ami-9191d2e0 ami-00c627e2e3173aeb7 ami-0c48131b082d5cb01 ami-0136f51bfeac09417 RStudio 1.2.1335

R 3.6.0

CUDA 10.0/cuDNN 7.5.1

Available 64-bit

HVM ami-0754449f54adcc62d ami-0e9e5245fffe34a3e ami-08cd0f9ecf5f0a4c2 ami-059a2456bd2027e31 ami-e2a32b9c ami-09b8f2f441fc21b6f ami-0226a8af83fcecb43 ami-09aea2adb48655672 ami-02bf650155c44b475 ami-01a01f46103fb6737 ami-07f82aa15f5fad682 ami-09bb08039459e1c05 ami-045e320c21be5a5f1 ami-5887ff29 ami-040cb826eb4885a0b ami-097dd79c1a626b807 ami-01172262fc72d4421 RStudio 1.1.456

R 3.5.1

CUDA 9/cuDNN 7.2.1

Available 64-bit

HVM ami-003a0987ccad642ec ami-0f530f457cea9b2ce ami-0a4c5ca7ecce53941 ami-0cccb5af1db2d3ec6 N/A* ami-0ccb91fcd3d2460f3 ami-061a59e27c8da0b93 ami-02c913b115ea9a608 ami-0a1ff58b80bb08791 ami-01d45add662773bed ami-0c01705f39d74fd21 ami-07a45f81350cb6584 ami-06a92d022f66c8d3f N/A* ami-03a8b41683339583b ami-0e2d6f76fea7e91a9 ami-043085dbe393188c4 RStudio 1.1.383

R 3.4.2

Julia 0.6.0

CUDA 8/cuDNN 6

Available 64-bit

HVM ami-93805fea ami-bf6b76db N/A* ami-a80db3c7 N/A* ami-75c17911 ami-fd2ffe87 ami-3b0c205e ami-7291a312 ami-bca063c4 ami-c9344da5 ami-5b9bde38 ami-9cbe65fa N/A* ami-1280257c ami-6735d805 ami-63cb880c RStudio 1.0.153

R 3.4.1

Julia 0.6.0

Retired 64-bit

HVM ami-f0df2489 ami-dfdbcbbb N/A* ami-0e5cf661 N/A* ami-7245fb16 ami-69909f12 ami-12d1f277 ami-ee56628e ami-013dd679 ami-6307740f ami-a13b59c2 ami-2ea35b48 N/A* ami-3b5f8755 ami-75b0aa16 ami-2a3c7845 RStudio 1.0.143

R 3.4.0

Julia 0.5.2

Retired 64-bit

HVM ami-cbd3c6ad ami-57021533 N/A* ami-4421f92b N/A* ami-6b5ee20f ami-65206673 ami-fe98bf9b ami-fe42629e ami-82ccade2 ami-07bcd26b ami-c6db5da5 ami-849fa4e3 N/A* ami-f867ba96 ami-d45246b7 ami-5ed2af31 RStudio 0.99.903

R 3.3.1

Julia 0.4.6

Retired 64-bit

HVM ami-b1b0c3c2 N/A* N/A* ami-ca46b6a5 N/A* N/A* ami-8fe18f98 N/A* ami-c0b8f5a0 ami-6a52840a ami-55079639 ami-ce9c47ad ami-1f79b17e N/A* ami-41f4212f ami-b9093fda N/A* RStudio 0.99.896

R 3.3.0

Julia 0.4.5

Retired 64-bit

HVM ami-ca149fb9 N/A* N/A* ami-6ec92401 N/A* N/A* ami-0acd2067 N/A* ami-ada2dbcd ami-c78875a7 ami-af26afc3 ami-3f9a4c5c ami-90dd39f1 N/A* ami-6e68a000 ami-72def211 N/A* RStudio 0.99.491

R 3.2.3

Retired 64-bit

HVM ami-e95df59a N/A* N/A* ami-52edf33e N/A* N/A* ami-7f9dc615 N/A* ami-d1e792b1 ami-1d7f657c ami-50f1703c ami-b277bad1 ami-2549744b N/A* N/A* ami-a54a6fc6 N/A* RStudio 0.99.484

R 3.2.2

Retired 64-bit

HVM ami-776d5a00 N/A* N/A* ami-88bab895 N/A* N/A* ami-753e7c10 N/A* ami-b733f5f3 ami-0ea84c3d ami-2b24b336 ami-22b6a070 ami-a449d2a4 N/A* N/A* ami-1170382b N/A* RStudio 0.99.447

R 3.2.1

Retired 64-bit

HVM ami-0c13557b N/A* N/A* ami-4c360d51 N/A* N/A* ami-47a6622c N/A* ami-a7cc3ae3 ami-55353265 ami-99c34e84 ami-f4dbdda6 ami-bca606bc N/A* N/A* ami-d57336ef N/A* RStudio 0.98.1103

R 3.2.0

Retired 64-bit

HVM ami-a76705d0 N/A* N/A* ami-f8a995e5 N/A* N/A* ami-628c8a0a N/A* ami-45c72a01 ami-a9596d99 ami-cb1b9ed6 ami-a4cef3f6 ami-84539484 N/A* N/A* ami-2581fc1f N/A* RStudio 0.98.1103

R 3.1.3

Retired 64-bit

HVM ami-a544dad2 N/A* N/A* ami-bc0538a1 N/A* N/A* ami-bc5877d4 N/A* ami-e7a140a3 ami-73ad8143 ami-6907bf74 ami-2897a67a ami-47f90f47 N/A* N/A* ami-65ec9c5f N/A* RStudio 0.98.1091

R 3.1.2

Retired 64-bit

HVM ami-368c3241 N/A* N/A* ami-5275454f N/A* N/A* ami-a0c7a6c8 N/A* ami-01dcce44 ami-418fde71 ami-6314a47e ami-2978577b ami-58636c59 N/A* N/A* ami-3f84ec05 N/A* RStudio 0.98.1060

R 3.1.1

Retired 64-bit ami-ae05a1d9 N/A* N/A* N/A* N/A* N/A* ami-4e4ce226 N/A* ami-47f3fa02 ami-614b0b51 ami-fb9832e6 ami-46012514 ami-658da164 N/A* N/A* ami-ef6a09d5 N/A* RStudio 0.98.501

R 3.1.0

Retired 64-bit ami-2f7d8658 N/A* N/A* N/A* N/A* N/A* ami-7376691a N/A* ami-a6b68fe3 ami-b00c6680 ami-ed2785f0 ami-4a356618 ami-b3b5ccb2 N/A* N/A* ami-0b41d931 N/A* RStudio 0.98.501

R 3.0.3

Retired 64-bit ami-470ff130 N/A* N/A* N/A* N/A* N/A* ami-930f18fa N/A* ami-76e9d733 ami-04c7ae34 ami-abdc7eb6 ami-f06131a2 ami-4599e444 N/A* N/A* ami-d9cb53e3 N/A* RStudio 0.97.551

R 3.0.1

Retired 64-bit ami-6bfeed1f N/A* N/A* N/A* N/A* N/A* ami-69fa8d00 N/A* ami-2387a966 ami-1ffd6d2f ami-1c832601 ami-7cc28c2e ami-b747ccb6 N/A* N/A* ami-05b7243f N/A* RStudio 0.97.320

R 2.15.3

Retired 64-bit ami-4ab7bf3e N/A* N/A* N/A* N/A* N/A* ami-0ed24c67 N/A* ami-90705dd5 ami-6868fd58 ami-9b33e886 ami-4cfab71e ami-5151d050 N/A* N/A* ami-2848d912 N/A* RStudio 0.97.245

R 2.15.2

Retired 64-bit ami-e6b5b892 N/A* N/A* N/A* N/A* N/A* ami-f129ab98 N/A* ami-4686a703 ami-d677ffe6 ami-f3fc24ee ami-9d0745cf ami-d0fd46d1 N/A* N/A* ami-1f48df25 N/A* RStudio 0.95.256

R 2.14.1

Retired 32 bit ami-4b3c023f N/A* N/A* N/A* N/A* ami-13f1207a N/A* ami-61174e24 ami-5852df68 ami-504b944d ami-e02460b2 ami-50863051 N/A* N/A* N/A* 64 bit ami-0b3c027f N/A* N/A* N/A* N/A* ami-a5f120cc N/A* ami-6b174e2e ami-5c52df6c ami-524b944f ami-e82460ba ami-58863059 N/A* N/A* N/A* RStudio 0.94.110

R 2.14.0

Retired 32 bit ami-438cb137 N/A* N/A* N/A* N/A* ami-83a961ea N/A* ami-47530c02 ami-848c01b4 N/A* ami-b4dda7e6 ami-30e65131 N/A* N/A* N/A* 64 bit ami-1184b965 N/A* N/A* N/A* N/A* ami-53be763a N/A* ami-f74e11b2 ami-9c8f02ac N/A* ami-28d1ab7a ami-7ee3547f N/A* N/A* N/A* RStudio 0.92.94

R 2.13.1

Retired 32 bit ami-a06e5dd4 N/A* N/A* N/A* N/A* ami-2b77b642 N/A* ami-1d411c58 N/A* N/A* ami-08770c5a ami-ee893cef N/A* N/A* N/A* 64 bit ami-b86e5dcc N/A* N/A* N/A* N/A* ami-2d77b644 N/A* ami-1f411c5a N/A* N/A* ami-0a770c58 ami-ec893ced N/A* N/A* N/A*

* N/A since these data centres were not yet open when the images were built.

Regions, 32-bit, 64-bit, HVM ???

There are a lot of AMIs to maintain because Amazon have a relatively complicated set of options for running virtual servers. Recently that has simplified so that the only major choice to make is what region you would like to run in, because all instance types now support 64-bit and HVM (the highest performance).

Choosing a region close to you should help reducing latency. More advanced users may choose the cheapest region for a spot instance.

Once you have chosen, simply click on the link above to be taken straight to the AWS launch page and login to your account.

Usage

Simply launch an instance using the appropriate AMI ID (above) for your region and ensure that the security group you setup allows (as a minimum) inbound HTTP (port 80) traffic. Once your instance moves from the “pending” to “running” state, then copy and paste the public DNS address or IP address from the instance properties to your browser and you should receive an RStudio login page. The default login details are:

Username: rstudio Password: <Your instance ID>

You will then be in and able to use R straight away. It is highly recommended you change the password immediately and an easy means of doing this is explained upon login in the script that is loaded there. However, users who are comfortable with Linux can follow the usual procedure for changing system user passwords via SSH or the Terminal tab within the RStudio interface if they prefer. Advanced users should also note that the rstudio user can use sudo.

Likewise, publicly visible Shiny apps can be accessed at /shiny/username (e.g. /shiny/rstudio for the default user). To make shiny apps visible, they should be placed in a folder named ShinyApps in the user’s home directory.

The AMI now ships with a package called RStudioAMI preloaded. Currently this contains two main areas of functionality:

The ability to change the login password for the rstudio user by using the passwd() function, without having to resort to SSH.

Support for setting up Dropbox syncing. The function linkDropbox() makes it easy to link the server to a Dropbox account, so that files and data can be incredibly easily synced in and out. Simply load the package, run the linkDropbox() function and follow the instructions (there may be a pause while everything is setup). Note, this will initially begin syncing your entire Dropbox. If this is large then it could take some time and may run out of space due to the small EC2 EBS drive space, so it is highly recommeneded to selectively sync just some folders. To achieve this, use excludeSyncDropbox() to specify what to exclude and includeSyncDropbox() to include items to sync. Note that a common usage pattern would be to initially run excludeSyncDropbox("*") to exclude everything from syncing and then to sync just the appropriate folder (say, myFolder ), follow this with a call includeSyncDropbox("myFolder") . These sync functions take several seconds to run.



Share Follow

Comments

Please enable JavaScript to view the comments powered by Disqus.