AWS云创建EC2与使用注意事项-踩坑记录
AWS
文章 GitHub 地址: 点我
AWS 网络测试地址
测试你本地的网络到亚马逊各个可用区的网络
https://www.cloudping.info/
AWS 测试IP获取
亚马逊提供的各个可用区和地域的网络
http://ec2-reachability.amazonaws.com/
AWS云服务器价格计算器
AWS WEB 价格计算器网址 https://calculator.s3.amazonaws.com/index.html
AWS免费套餐详情
AWS新注册账号,12个月免费套餐详情 https://amazonaws-china.com/cn/free/faqs/
注意是从我们创建账号开始算的,不是从我们使用开始算的。
一 创建 EC2(云服务器)
创建步骤一: 进入 控制台,选择系统镜像
创建步骤二:设置示例类型,配置实例,选择存储,配置安全组,创建实例
创建步骤三 :分配弹性IP,并绑定到主机上。
注意事项
- 数据卷选择需要根据需求选择,选择错了会导致费用比较高,具体比较见下文
- 一定要绑定弹性 IP,如果我们没有绑定弹性 IP,默认在实例重启后,公网 IP 是会变化的,如果我们依赖于公网 IP 提供服务的话,这是会很糟糕的,所以我们需要绑定 弹性IP,默认内网IP是不会发生改变的。
- 默认的登录用户 是
centos
,是通过秘钥登录的(我们创建的时候指定了秘钥)。
EC2 数据卷选择
EBS 各个卷的配置与性能
固态硬盘 (SSD) | 硬盘驱动器 (HDD) | |||
---|---|---|---|---|
卷类型 | 通用型 SSD (gp2 )* |
预配置 IOPS SSD (io1 ) |
吞吐优化 HDD (st1 ) |
Cold HDD (sc1 ) |
描述 | 平衡价格和性能的通用 SSD 卷,可用于多种工作负载 | 最高性能 SSD 卷,可用于任务关键型低延迟或高吞吐量工作负载 | 为频繁访问的吞吐量密集型工作负载设计的低成本 HDD 卷 | 为不常访问的工作负载设计的最低成本 HDD 卷 |
使用案例 | 建议用于大多数工作负载系统启动卷虚拟桌面低延迟交互式应用程序开发和测试环境 | 需要持续 IOPS 性能或每卷高于 16,000 IOPS 或 250 MiB/s 吞吐量的关键业务应用程序大型数据库工作负载,如:MongoDBCassandraMicrosoft SQL ServerMySQLPostgreSQLOracle | 以低成本流式处理需要一致、快速的吞吐量的工作负载大数据数据仓库日志处理不能是启动卷 | 适合大量不常访问的数据、面向吞吐量的存储最低存储成本至关重要的情形不能是启动卷 |
API 名称 | gp2 |
io1 |
st1 |
sc1 |
卷大小 | 1 GiB - 16 TiB | 4 GiB - 16 TiB | 500 GiB - 16 TiB | 500 GiB - 16 TiB |
最大IOPS**/卷 | 16,000*** | 64,000**** | 500 | 250 |
最大吞吐量/卷 | 250 MiB/s*** | 1,000 MiB/s† | 500 MiB/s | 250 MiB/s |
最大IOPS/实例†† | 80,000 | 80,000 | 80,000 | 80,000 |
最大吞吐量/实例†† | 1,750 MiB/s | 1,750 MiB/s | 1,750 MiB/s | 1,750 MiB/s |
管理性能属性 | IOPS | IOPS | MiB/s | MiB/s |
新加坡可用区价格表(时间:2019-05-30)
数据卷类型 | 容量 | IOPS | 最大吞吐量 | |
---|---|---|---|---|
gp2 | 50GB | 150 | 128 MBs/sec | $6/month |
IOPS SSD (io1 ) |
50GB | 150 | 37.5 MBs/sec | $17.7/month |
吞吐优化 HDD (st1 ) |
500GB(最小) | — | 19.53125 MBs/sec | $27/month |
根据上面的对比,建议选择gp2
(性价比高)。AWS
云服务器的硬盘的 IOPS
是跟硬盘有关的。但是 EBS 卷支持生产期间的实时配置更改。您可以在不中断服务的情况下修改卷类型、卷大小和 IOPS 容量。EC2 默认创建的卷的类型是 gp2
。
EC2 创建快照计划任务
在实际生产环境中,定时创建一个快照也是一个对数据备份的好办法,所以接下来我们来讲讲创建快照计划任务。
方法一: 生命周期管理器 官方文档:https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/snapshot-lifecycle.html
之前上面那种方法,有的时候我们设置了,但是发现没有生效,原因是我们选择了对应的 NAME 的值,但是我们没有设置 数据卷的名称,所以它通过这个 NAME 的去找数据卷是找不到的,所以我们需要去数据卷那边设置下与这边快照 NAME 值一致的值。这样就可以了.
方法二: 通过cloudwatch
创建 规则(rules)
通过这种方式创建的快照,是不会自动删除的,就是会将创建的快照一直保存。
设置 root 用户密码
AWS EC2 默认创建的用户是 centos
,是使用秘钥进行登录的,我们考虑到我们需要root
用户,虽然我们不常用到,但是为了以备后期使用,是服务器的安全,我们这里会配置 root
用户密码,但不允许 root 用户远程登录。
具体操作
[centos@ip-172-31-21-255 ~]$ sudo passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[centos@ip-172-31-21-255 ~]$ su root
Password:
[root@ip-172-31-21-255 centos]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@ip-172-31-21-255 centos]#
如果我们需要通过 root 来进行远程登陆的话,可以选择远程登陆使用 密码登陆
# 将 sshd配置文件/etc/ssh/sshd_config 参数 PasswordAuthentication no 更改为 yes
sed -i '/^PasswordAuthentication/s/no/yes/' /etc/ssh/sshd_config
systemctl restart sshd
# 更改之后,我们只能通过密码进行登陆了,而不能通过密钥登陆了。这时我们需要给 centos 设置密码,然后通过密码登陆
如果我们想要通过 root 通过密钥进行远程登陆的话,我们需要先在 xshell 生成密钥,并将公钥存放在 root 用户的 /root/.ssh/authorized_keys
里,然后进行登陆。
生成密钥,并获取公钥(要记住设置的密码,后面要使用)
二、AWS 注意事项
弹性IP限制
注意在每个地域,每个账户的默认可以申请的弹性IP是 5个。如果我们的计划需要使用的弹性IP超过了5个,我们需要提前进行申请,将限制提高。
付费类型
一种是RI,另外一种是OnDemand
RI预付费
OnDemand后付费
EC2实例有两种根设备类型
1、实例存储(本地),系统和磁盘再同一主机上
Instances storage,当删除了实例,数据卷也释放了
2、EBS存储(网盘),EBS可能与云主机不在一台物理机上,可能在其他物理机上。
Elastic Block Storage,当删除了实例,EBS 卷可以单独保存。
EC2 实例数量限制
EC2实例在申请超过20台后,会有数量限制。
AWS 使用RDS注意时区参数
使用 AWS 的 RDS ,记住需要创建一个参数组,默认的参数组是不可以修改的,我们新建的参数组是可以修改的。
设置创建函数的权限
默认在创建定时任务的时候是会报错的。就算管理用户创建也是不行的,因为这个取决于 参数 log_bin_trust_function_creators
我们需要将该参数设置为 1
,也就是开启,这样我们就可以实现拥有创建函数的权限。
AWS ELB
ELB 是不可以设置黑名单的,也是不可以开启 gzip 的。
三、AWS 申请 SSL 证书
我们的域名是在阿里云上面购买的,我们可以在 阿里云上面进行证书申请,当我们在阿里云上面申请后,我们需要,从阿里云导出来后再导入 AWS,这样会比较麻烦,而且后期续订证书也比较麻烦。所以我们就计划直接在 AWS 上面申请 SSL 证书,AWS 是支持的,
在证书管理界面点击 ---》请求证书,然后选择请求公有证书,然后填入我们的要获取证书的域名。要想在 AWS 获取证书,可以通过两种方式验证域名的所有者,
第一是通过
DNS
解析设置指定记录值AWS
会给我们一个 名称和记录值,我们需要在 解析里面添加CNAME
记录,名称值填入到 主机记录,记录值填入到解析的记录值。第二是通过 邮件验证。
邮件验证的话,是会发送到该域名的以下邮件里进行确认
- administrator@your_domain_name
- hostmaster@your_domain_name
- postmaster@your_domain_name
- webmaster@your_domain_name
- admin@your_domain_name
自动续订策略
- 只要证书在使用中且
CNAME
记录保持不变,ACM 便会自动续订证书。 - 电子邮件验证的证书仅可在其原始验证日期的 825 天后续订。825 天之后,域拥有者或授权代表必须请求新的证书,而 DNS 验证的证书将无限期续订。
如果 ACM 无法在生成 CNAME 值后的 72 小时内验证域名,ACM 会将证书状态更改为验证超时。导致此结果的最可能原因是您未使用 ACM 生成的值更新 DNS 配置。要解决此问题,您必须请求新的证书。
有关AWS 的一些其他文章可查看 博客园-宋某人
四、 创建VPC
我们建议我们创建一个自己的 VPC,因为这样方便我们后期的管理,以及个性化设置。
创建 VPC
主要是设置
IPv4 CIDR block
,可以设置为172.16.0.0/16(参考值)
创建子网
创建子网 --》选择VPC --->选择 可用区域 ---》 设置该 VPC 下面的 IPv4 CIDR 块
我们是一个可用区(可用地域)创建一个子网。
创建一个
Internet 网关
并将我们的 将 Internet 网关连接到 VPC创建一个 自定义路由表,将其与我们的子网相连,以便在子网与 Internet 网关之间进行通信。
如果我们想通过 IP 访问我们自定义的 VPC里面的 EC2 的话,我们可以申请一个 弹性IP,然后将这个弹性IP 绑定到我们的 EC2. 然后我们就可以通过公网进行访问了。
AWS云创建EC2与使用注意事项-踩坑记录的更多相关文章
- 华为云kafka POC 踩坑记录
2019/03/08 18:29 最近在进行华为云相关POC验证,个人主要负责华为云DMS kafka相关.大致数据流程是,从DIS取出数据,进行解析处理,然后放入kafka,再从kafka中取出数据 ...
- 阿里云CDN接入踩坑记录
最近负责的系统安全要求接入CDN,避免DDOS之类攻击,然后华丽丽踩了两个大坑.回顾问题原因后,发现还是相关人员都对CDN原理不够熟悉.了解导致. 坑一:默认支持的文件上传最大是300M 问题现象: ...
- 在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰
推荐使用镜像安装Cent OS系统,或者在纯净安装完成之后在完成Apache+MySQL+PHP的时候不要每个单独安装,因为这样会出一些三者之间版本不配的问题,网上各种说法都有,查起来也非常困难,版本 ...
- AWS云EC2(RHEL7)添加网络接口与路由调整
AWS云EC2(RHEL7)添加网络接口与路由调整 Amazon Linux(类似RHEL6,Centos6) 以及 RHEL7 修改MAC地址的说明 RHEL7 Centos7 添加路由 解决RHE ...
- A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设
用户选择云计算平台构建应用程序的一个重要原因是高弹性的云平台和可扩展性. 面向Internet应用程序通常需要支持用户使用大量,但要建立一个高度可扩展.具有一定的挑战,高度可用的应用程序,只有立足AW ...
- Oracle数据库迁移到AWS云的方案
当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本等.很多企业使用云碰到的难题之一是如何将现有的应用迁移到云上,将现有应用的中间件系统.Web系统及其 ...
- AWS学习之EC2
1.AWS简介 AWS(Amazon Web Services )提供了一整套云计算服务,让您能够构建复杂.可扩展的应用程序.如今,成千上万各种规模的客户都在使用这些云计算服务,它们涉及各个行业,包括 ...
- 使用亚马逊云服务器EC2做深度学习(四)配置好的系统镜像
这是<使用亚马逊云服务器EC2做深度学习>系列的第四篇文章. (一)申请竞价实例 (二)配置Jupyter Notebook服务器 (三)配置TensorFlow (四)配置好的系统 ...
- 使用亚马逊云服务器EC2做深度学习(三)配置TensorFlow
这是<使用亚马逊云服务器EC2做深度学习>系列的第三篇文章. (一)申请竞价实例 (二)配置Jupyter Notebook服务器 (三)配置TensorFlow (四)配置好的系统 ...
随机推荐
- Finished with error: ProcessException: Process "D:\FlutterAPP\flutter_appfive\android\gradlew.bat" exited abnormally:
在使用Flutter进行开发是遇到这样一个问题 Finished with error: ProcessException: Process "D:\FlutterAPP\flutter_a ...
- 深入Java源码剖析之Set集合
Java的集合类由Collection接口和Map接口派生,其中: List代表有序集合,元素有序且可重复 Set代表无序集合,元素无序且不可重复 Map集合存储键值对 那么本篇文章将从源码角度讨论一 ...
- LeetCode——Rank Scores
Write a SQL query to rank scores. If there is a tie between two scores, both should have the same ra ...
- Fundebug:JavaScript插件支持错误采样
Fundebug的付费套餐主要是根据错误事件数制定的,这是因为每一个发送到我们服务器的事件,都会消耗一定的CPU.内存.磁盘以及带宽资源,尤其当错误事件数非常大时,会对我们的计算资源造成很大压力. 如 ...
- 团队第五次作业——Alpha2版本
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...
- datagrid editor动态的改变不同行修改列的editor属性
onBeforeEdit: function (row) { let options = $(this).treegrid('options'); options.tempeditor = optio ...
- 前端学习笔记--CSS布局--层定位
1.层定位概述: z-index:前后叠加顺序 2.position属性: 3.fixed: 2.relative: 移动后: static没有往上移动占据box1的位置. 3.absolute: 移 ...
- mysql左连接 右连接 内连接的区别
mysql左连接 右连接 内连接的区别 1.内连接,显示两个表中有联系的所有数据; 2.左链接,以左表为参照,显示所有数据,右表中没有则以null显示 3.右链接,以右表为参照显示数据,,左表中没有则 ...
- day12_7.12递归函数与算法
一.递归函数 递归函数是在函数的调用阶段直接或间接的调用自己. 于是下面就是一个简单的递归函数: def func(): print('我调我自己') func() func() 然而结果会报错,因为 ...
- http中get,post,put,delete方法的用法以及区别
http协议是一种在网络中进行文件传送遵循的协议.一种无状态的协议.http协议服务器端不跟浏览器端建立长久的通信连接. 建立http通信之后,服务端将文件内容传送给浏览器端接收就完成一次请求.当然一 ...