入门系列1—如何创建服务器并用命令行登录
当我们有了账户之后,就需要开启我们想要的服务器,并在其上安装我们的生信分析流程了,并且还需要使用命令行本地登录云端服务器进行实际的各类操作。
-- D.C
创建EC2机型(Elasic Compute Cloud)
登录账户,来到你的控制面板console,在服务(services)下搜索EC2,点击进入EC2的控制界面。
映入眼帘的就是EC2的dashboard,可以看到几台实例(instance)在跑,用了多少个弹性IP地址,有多少个快照。。。我们直接点击启动实例(Launch instance)按钮,选择启动实例:
- step1: 选择一个亚马逊机器镜像(AMI)。 其实就是根据你的需求,选择一个你用的顺手的操作系统,这个系统将会安装在你选择的机器上。这里我选择Amazon Linux 2 AMI (HVM), SSD Volume Type, 点击select。
- step2: 选择一个实例类型。 这里就要根据你的分析流程,选择合适的CPU和内存数,aws的实例总体分为5类,作为常规生信分析来说一般选择R系列和C系列,当然m系列也可以。因为我们是教学,所以选择新用户注册免费一年的
t2.micro
机型, 点击下一步:配置实例。
怎么理解名字? 比如m5.2xlarge
表示这是个m系列机型,拥有8个vCPU,32GiB内存, 你一定会问怎么算的,好吧,字母x
代表4,2x
就代表2x4=8个vCPU, 而m系列机型的CPU和内存比是1:4,所以将8x4=32GiB就算出来了。那其他系列呢?
系列 | vCPU/内存 | 特点 |
---|---|---|
m | 1:4 | 通用型,常规军 |
c | 1:2 | 计算优化型,CPU比较牛b |
r | 1:8 | 内存优化型,吃内存的分析就找他 |
更多信息请参照: 实例类型
- step3: 配置实例。 这里有很多选项,看官可能看到头疼,但是在入门阶段你可以不用修改任何地方!直接点击下一步:添加存储。
有个地方说下Purchasing option
: 对了!这里就是让你选择是否以竞价的方式去拍你想要的服务器资源,可以省很多钱哦~ 但请注意,t系列不支持竞价。选择之后,就会出现你选择的实例当前的竞价价格,并且会让你出一个你能接受的最大价格, 比如下图中就可以选择出4.51元,这台机器就会给你用啦~ 但请注意,因为这是闲置资源给你用,一旦资源吃紧,这台机器可能会被系统强制回收,所以务必确保你的分析任务容忍随时打断的哦! btw, 我曾经测试过32vCPU,256G的spot连开一周未被回收,各位自行判断了 :)
- step4: 添加存储。 对了,这里就是让你添加磁盘了,默认SSD,调整你想要的磁盘大小,比如
30G
,还要注意有个选项特别重要Delete on Termination
, 默认打勾,那么你在terminate你的机器的时候,系统也会自动帮你把磁盘给释放了,意味着你的数据会随之消失,所以自己想好哦。然后我们点击下一步:加标签。
- step5: 添加标签。 这一步很重要,想象下你有100台机器列表显示在你面前,你是否还能清楚的知道哪台机器是做什么的?所以打标签,做笔记很重要!添加你想要的标签,点击下一步:配置安全组。
- step6:配置安全组。默认新建一个新的安全组规则,如果你以前已经创建过和这台机器一样用途的安全组,你可以选择已存在的安全组。关于安全组这个概念,简单理解的话,就是给你的机器穿的一层安全马甲,它规定哪些协议的数据可以进来和出去,通过各种端口。 比如我们要ssh到这台机器,就得把tcp协议打开(默认),如果你还要http访问,那就点击
Add Rule
来添加http访问规则。It's up to you! 点击下一步:检查和启动(Review and Launch )。
- 检查一遍没问题,点击启动。这里跳出来的弹窗无比重要,用过putty,xshell等CLI登录过服务器的同学都知道,一般我们需要指定一个key文件才能验证登录,这里就是让你对这台机器创建一个key pair文件(或指定以前创建过的key文件),在
Key pair name
里命名你的key文件,点击Download Key Pair
文件保存到本地,点击 启动实例 。
- 实例正在启动,我们可以点击上图中的实例ID:
i-xxxxxxx
查看这台机器的状态,下图显示,这台机器已经正常running,并通过了状态检查,。还记得刚才的tag标签么?点击右上角的齿轮 图形,选中显示你设定的标签,就可以在面板上看到啦,请养成好习惯,以后创建的机器都要添加这几个标签哦~
- 条件过滤看到你想要的实例:上方的搜索框有Add filter 字样,鼠标移动过去点击,会出现下拉过滤菜单,方便你找到特定的机器哦!
至此,如何在aws启动一台你想要的机器就大功告成了!但是机器在云端跑了,而我只能远观而不可亵玩么?怎么可能,花了这么多功夫不就是为了亵玩么?兄弟们跟我上!
如何登(亵)入(玩)云服务器EC2
-
找到你下载的key文件,比如我的是
mytest.pem
。 -
打开你的本地ssh工具,比如我的是gitbash, 进到你key所在的文件夹下:
$ ls *.pem
mytest.pem
- 在aws控制台上,选中你启动的那台机器,点击Connect ,跳窗的信息会详细告诉你如何亵玩你的机器,你只要copy就好,实在是太方便了! 为了满足我们等宅男,aws真是用心良苦。
$ chmod 400 mytest.pem
$ ssh -i "mytest.pem" ec2-user@ec2-不-告-诉-你.cn-northwest-1.compute.amazonaws.com.cn
The authenticity of host 'ec2-不-告-诉-你.cn-northwest-1.compute.amazonaws.com.cn (不-告-诉-你)' can't be established.
ECDSA key fingerprint is SHA256:SSxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ec2-不-告-诉-你.cn-northwest-1.compute.amazonaws.com.cn,不-告-诉-你' (ECDSA) to the list of known hosts.
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
3 package(s) needed for security, out of 24 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-不-告-诉-你 ~]$
- 至此,你已经成功进入了服务器,接下来就随便你了。
[ec2-user@ip-不-告-诉-你 ~]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=54.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=54.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=46 time=54.8 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=46 time=54.8 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=46 time=54.8 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=46 time=54.9 ms
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5007ms
rtt min/avg/max/mdev = 54.849/54.877/54.908/0.192 ms
- PS: pem文件可以用于登录,也可以在winscp里设置用于和EC2的数据交互。如果用putty,需要先将pem格式转换为ppk格式,点我