Deep Learning 踩坑日记 - EC2

216 阅读3分钟

申请 aws EC2, 然后进行配置但在这过程中踩了太多的坑。

创建aws 账户后,到EC2 Dashboard。其中黄色方框上的东西要注意

一、EC2 创建实例

  1. 点击 "正在运行的实例",

进入以下界面。 面板里会显示 创建的实例。 也会显示实例的 基本信息, 私有DNS, 共有DNS ,安全组,等等。但是提到的这几个是关键。

2. 一般新账户 是没有 实例的,所以需要点击 启动实例,创建一个新的实例。总共有 7 个步骤来完成。 选择好AMI后一般默认就行,但是在步骤6中 一定要注意!!! 步骤6. 配置安全组。

3. 默认的只有配置了SSH这一条,需要将其配置成如下。

4. 审核后,需要创建新密钥对。文件名为“amazonMachineLearning.pem”, 下载这个文件。存放在本机上。到目前为止实例创建好了。如何 事先没注意 密钥对、安全组。可以返回到EC2 dashboard,从那里进入 更改配置。

二、通过SSH访问服务器

  1. 在EC2 - 实例中 启动 创建好的实例, 实例的状态会由stopped 变成pending。启动会有一小会儿变成running。 这个时候注意,aws给这个实例动态分配了 公有DNS,公有IP。这个是动态改变的。每次启动都要注意改变。

2. 通过ssh连结服务器

有4 部分需要注意,分别用不同颜色的框画了出来,依次为。

  • amazonMachinening.pem 文件的地址

​ 这里需要注意的是但是下载下来的文件地址。

  • amazonMachineLearning.pem

​ 这里需要注意的是文件权限,不然出错。出现 bad 连结。

​ 这里的用户是根据AMI来决定的,用的ubuntu,所以这里用户名为 ubuntu。这里链接可以找到其他的用户名。

  • 服务器地址

​ 这里要注意的是 每次公有DNS是动态改变的,每次登录是记住修改。

三、Jupyter NoteBook 启动

jupyter notebook的启动,在这过程中遇到了许多问题,其中参考了以下资源。

blog.impiyush.com/2015/02/run…

  1. 进入ipython,
from IPython.lib import passwd
passwd()
output:
如下图,将其保存下来。

2.创建签名,来访问证书, 创建后会让输入基本信息,随意输入就行。

mkdir certs
cd certs
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem
  1. 配置

修改jupyter_notebook_config.py 文件

cd ~/.jupyter/
vi jupyter_notebook_config.py
# Notebook config
c.NotebookApp.certfile = u'/home/ubuntu/certs/mycert.pem' #location of your certificate file
c.NotebookApp.keyfile = u'/home/ubuntu/certs/mycert.key' #location of your certificate key
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False  #so that the ipython notebook does not opens up a browser by default
c.NotebookApp.password = u'sha1:68c136a5b064...'  #the encrypted password we generated above
# It is a good idea to put it on a known, fixed port
c.NotebookApp.port = 8888
  1. 运行 jupyter notebook

输入命令后出下以下显示,将https://ip-172-31-34-40:8888/ 复制到浏览器中,其中ip-172-31-34-40 是私有DNS,这个时候去实例描述中,找到公有DNS,将其替换出来 https://公有DNS:8888/。但是这里出现了错误,不能正常访问。

jupyter notebook

5. 经过查找是因为 mycert.pem,mycert.key 文件所有者出现错误。 但是创建后 是 root,但得改成 用户名, 这里改的是 ubuntu。用命令chown,也得用sudo(权限限制)。以下是mycert.pem 文件是已修改,mycert.key 未修改。