AWS EC2使用过程总结

步骤1:开通AWS账号

  • 需要一个邮箱、一个信用卡账号;
  • 有第一年的免费试用,EC2每个月免费试用750小时;
  • 注册完成后,得到实例管理平台:

步骤2:开通EC2实例

步骤3:开通网关和安全组,使外部可以访问

在任何一台电脑的浏览器输入云服务器的公网ip xx.xx.xx.xx:5000 都会得到云服务器的响应。(若没有得到响应,检查一下云服务器的安全组,是否增加有规则 0.0.0.0/0的端口TCP:5000 放通)

子步骤3.1 开通安全组中的ICMP端口,使之能ping通

  • 安全组中需要把入站和出站设置到位
    AWS EC2使用过程总结_第1张图片
    AWS EC2使用过程总结_第2张图片

子步骤3.2 开通防火墙的入站和出站协议

  • 如果想简单粗暴,直接全部关闭,这种方式存在安全漏洞
    AWS EC2使用过程总结_第3张图片
  • 开通部分的端口和规则
    入站规则中允许ICMP,新建规则
    AWS EC2使用过程总结_第4张图片
    AWS EC2使用过程总结_第5张图片
    AWS EC2使用过程总结_第6张图片
    AWS EC2使用过程总结_第7张图片
    AWS EC2使用过程总结_第8张图片
  • 开通特定范围的入站和出站端口
    AWS EC2使用过程总结_第9张图片
    AWS EC2使用过程总结_第10张图片
    AWS EC2使用过程总结_第11张图片
    AWS EC2使用过程总结_第12张图片
    AWS EC2使用过程总结_第13张图片

子步骤3.3 打开测试机器的telnet功能

  • Telnet是什么?
    telnet是teletype network的缩写,现在已成为一个专有名词,表示远程登录协议和方式,分为Telnet客户端和Telnet服务器程序
    AWS EC2使用过程总结_第14张图片
    AWS EC2使用过程总结_第15张图片
  • Telnet的使用
    AWS EC2使用过程总结_第16张图片

步骤4:Python Anaconda服务、应用服务部署

子步骤4.1:部署anaconda web服务

下载安装anaconda

https://www.anaconda.com/products/distribution
官网下载anaconda即可,jupyter内嵌在anaconda里,安装过程没什么好说的,点点点就完事了,注意这里要勾选上,否则cmd无法直接访问。
AWS EC2使用过程总结_第17张图片

如何配置anaconda,使之可以外网访问

这里非常的重要,也很容易出问题,之前因为一个空格,活生生的改了一晚上,硬是没有找出问题来。具体的配置步骤如下:
1.在桌面左下角点击开始》Anaconda3》Anaconda Prompt,输入

jupyter notebook --generate-config

得到如下存储地址
AWS EC2使用过程总结_第18张图片
2.在Anaconda Prompt输入

ipython
from notebook.auth import passwd
passwd()

回车,然后设置密码,写两遍(输入时看不见且不显示*号)
AWS EC2使用过程总结_第19张图片
out[2]后面的这段乱码就是你的密码,复制一下保存下来
C:\Users\Administrator.jupyter\jupyter_notebook_config.py
用记事本打开这个python文件
添加如下几行命令:

c.NotebookApp.password = u'  '  # 在u后的引号内输入上一步复制的密码
c.NotebookApp.ip='*'   
c.NotebookApp.open_browser = False 
c.NotebookApp.port =39     #可自行指定一个端口, 访问时使用该端口

之前是因为多了个空格,怎么都没有找到,所以无法排除错误
AWS EC2使用过程总结_第20张图片
同时,还需要给JSON文件修改一下密码
AWS EC2使用过程总结_第21张图片

4.之前已经开通了范火墙的端口范围了,这里不再开通了;

5.在服务器命令行中输入jupyter notebook开启
AWS EC2使用过程总结_第22张图片
6.在本地就可以通过浏览器访问 http:// 公网ip:port(例如:http://127.0.0.1:39)远程访问jupyter

如:http://13.49.102.116:8888/tree?

主要参考:https://zhuanlan.zhihu.com/p/440080687

子步骤4.2:部署flask服务,使之可以外网访问

  • Falsk:小而轻,极容易上手,第三方提供的组件多,加起来可以完全覆盖Django。
  • Flask应用构建示例
    1.安装flask
pip install Flask

2.验证是否已经安装成功,若import没有报错,即是已经安装成功:

import flask

3.我用的是jupyter notebook环境,写一个简单的flask程序:

#export
# 【整体流程】
# 在app.py程序文件中,app是flask的实例,功能就是接受来自web服务器的请求,
# 1、浏览器将请求给web服务器,web服务器将请求给app ,
# 2、app收到请求,通过路由找到对应的视图函数,然后将请求处理,得到一个响应response
# 3、然后app将响应返回给web服务器,
# 4、web服务器返回给浏览器,
# 5、浏览器展示给用户观看,流程完毕。
 
# 【1、初始化】
# 所有的Flask都必须创建程序实例
# web服务器把客户端所有的请求都转发给这个程序实例,程序实例是Flask的对象
# 一般情况下用如下方法实例化
# Flask类只有一个必须指定的参数,即程序主模块或者包的名字,__name__是系统变量,该变量指的是本py文件的文件名
 
 
from flask import Flask
 
app = Flask(__name__)
 
 
 
# 【2、路由和视图函数】
# 客户端发送url给web服务器,web服务器将url转发给flask程序实例,程序实例
# 需要知道对于每一个url请求启动哪一部分代码,所以保存了一个url和python函数的映射关系。
# 处理url和函数之间关系的程序,称为路由
# 在flask中,定义路由最简便的方式,是使用程序实例的app.route装饰器,把装饰的函数注册为路由
 
 
@app.route('/')
def cdc_say():
    return "Hello, Flask !"
 
@app.route('/angela')
def angela_say():
    return "Hi, I'm angela !"
 
@app.route('/alex')
def alex_say():
    return "Hay, I'm alex !"
 
 
# 【3、程序实例用run方法启动flask集成的开发web服务器】
#  __name__ == '__main__'是python常用的方法,表示只有直接启动本脚本时候,才用app.run方法
#  如果是其他脚本调用本脚本,程序假定父级脚本会启用不同的服务器,因此不用执行app.run()
#  服务器启动后,会启动轮询,等待并处理请求。轮询会一直请求,直到程序停止。
 
if __name__ == '__main__':
 
    print('dd',__name__)
 
    app.run()
 
# app.run( )

4.跑起来,得到如下结果:
AWS EC2使用过程总结_第23张图片
在Chrome浏览器地址栏输入: http://127.0.0.1:5000/
如果无法访问,多半是因为anaconda的问题,可以直接保存为Python文件,然后用Python命令来跑。

主要参考:https://blog.csdn.net/qinwolf_/article/details/128762630

子步骤4.3:部署Django服务,是之可以外网访问

子步骤4.4:构建IBM qiskit开发环境

参考地址:
https://qiskit.org/documentation/partners/qiskit_ibm_runtime/getting_started.html

pip install qiskit
pip install qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService
# Save an IBM Quantum account.
QiskitRuntimeService.save_account(channel="ibm_quantum", token="MY_IBM_QUANTUM_TOKEN")

token的生成地址如下:
https://quantum-computing.ibm.com/account?needs_refill=true

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
program_inputs = {'iterations': 1}
options = {"backend_name": "ibmq_qasm_simulator"}
job = service.run(program_id="hello-world",
                options=options,
                inputs=program_inputs
                )
print(f"job id: {job.job_id()}")
result = job.result()
print(result)

job的运行结果如下:

其他注意事项

  • 同时开通安全组和防火墙的CIMP、TCP端口,才有效;
  • Anaconda的config.py文件中不能多空格;
  • 设置anaconda远程访问需要配置两处密码;
  • AWS每次关机后,IP值会变,公网IP,所以需要重新找到对应的IP;

你可能感兴趣的:(aws,服务器,EC2,python,anaconda)