add jupyterhub-deployment-aws

This commit is contained in:
charnpreetsingh
2017-05-05 12:55:59 -07:00
parent 475c0a3144
commit 8c8b532ffd

View File

@@ -1,12 +1,13 @@
# JupyterHub Deployment on AWS # JupyterHub Deployment on AWS
Documentation on deploying JupyterHub on an AWS EC2 Instance using NGINX Plus.
>CAUTION: Document is a work-in-progress. Information found on this page is partially incomplete and may require additional research. Documentation on deploying JupyterHub on an AWS EC2 Instance using NGINX Plus.
>CAUTION: Document is a work-in-progress. Information found on this page is partially incomplete and may require additional research.
## Setting Up Amazon EC2 Instance ## Setting Up Amazon EC2 Instance
### AMI ### AMI
Choose one of the following Amazon Machine Images that are compatible with NGINX Plus: Choose one of the following Amazon Machine Images that are compatible with NGINX Plus:
* NGINX Plus Amazon Linux AMI (HVM) * NGINX Plus Amazon Linux AMI (HVM)
* NGINX Plus Ubuntu AMI (HVM) * NGINX Plus Ubuntu AMI (HVM)
@@ -16,21 +17,21 @@ Choose one of the following Amazon Machine Images that are compatible with NGINX
Refer to the [NGINX AMI Installation Guide](https://www.nginx.com/resources/admin-guide/setting-nginx-plus-environment-amazon-ec2/) for more information. Refer to the [NGINX AMI Installation Guide](https://www.nginx.com/resources/admin-guide/setting-nginx-plus-environment-amazon-ec2/) for more information.
### Instance Type & Storage ### Instance Type & Storage
Instance type selection depends heavily on memory usage. Amazon Compute Optimized instances are recommended. Instance type selection depends heavily on memory usage. Amazon Compute Optimized instances are recommended.
As a rule of thumb consider **100-200 MB/user** plus **5x-10x the amount of data you are loading from disk**, depending on the kind of analysis. After selecting your instance, you can add more memory and select memory type (GP2/IO1) in the 'Add Storage' page. As a rule of thumb consider **100-200 MB/user** plus **5x-10x the amount of data you are loading from disk**, depending on the kind of analysis. After selecting your instance, you can add more memory and select memory type (GP2/IO1) in the 'Add Storage' page.
(Pictured below: c4.2xlarge) (Pictured below: c4.2xlarge)
![Instance Type](images/instance.png) ![Instance Type](images/instance.png)
### Configure Security Group ### Configure Security Group
The standard HTTPS and HTTP ports (80, 443) need to be opened to allow JupyterHub to be proxied by NGINX. The standard HTTPS and HTTP ports (80, 443) need to be opened to allow JupyterHub to be proxied by NGINX.
Additionally, in order to enable Docker containers to connect to JupyterHub port 8081 will need to be opened. Open a new 'Custom TCP Rule' and set the Source in CIDR Block Notation to: Additionally, in order to enable Docker containers to connect to JupyterHub port 8081 will need to be opened. Open a new 'Custom TCP Rule' and set the Source in CIDR Block Notation to:
> <Netword IP Address>/24 > <Netword IP Address>/24
Below is a reference image for the security group set-up. Depending on specific use-cases, port rules may differ and likely should not be open to 'anywhere'. Your network IP will also differ. Below is a reference image for the security group set-up. Depending on specific use-cases, port rules may differ and likely should not be open to 'anywhere'. Your network IP will also differ.
![Security Group](images/security.png) ![Security Group](images/security.png)
@@ -39,7 +40,6 @@ Refer to the [Amazon EC2 Security Groups for Linux Instances Page](http://docs.a
---- ----
## To-Do Sections ## To-Do Sections
- [x] Setting Up Amazon EC2 Instance - [x] Setting Up Amazon EC2 Instance
- [ ] Setting Up JupyterHub & Web Server on EC2 VM - [ ] Setting Up JupyterHub & Web Server on EC2 VM
- [ ] Setting Up Docker Spawner - [ ] Setting Up Docker Spawner