- Aws的密钥只能下载一次,下载后请小心保存
EC2
如何删除EC2实例
- 先选中要删除的实例,Stop,再Terminate,这个时候虽然实例还在,但其实已经删除了,大概等个10分钟左右就没了
EC2实例扩容
- 首先先关机
Actions -> Instance State -> Stop
- 进入卷管理:
Elastic Block Store -> Volumes
- 选择需要更改的磁盘:
Modify Volume
,然后输入大小 - 重启实例,并进入终端
- 使用
df-h
查看当前磁盘容量
EC2配置Cloudwatch
添加自定义指标
需要在服务器安装aws CLI工具,不同操作系统安装方式见Installing, updating, and uninstalling the AWS CLI version 2 on Linux
还需要编写自定以脚本,脚本如下:
1 | !/bin/bash |
编写完自定义脚本后添加可执行权限chmod +x watch.sh
,然后可以手动执行一下看看能不能成功,执行完一次过后cloudwatch后台在创建指标的时候就能选择这些指标了。我们可以定时执行这个脚本:
1 | crontab -e |
S3
使用js sdk操作AWS3
1 | import AWS = require('aws-sdk') |
开放S3桶的公共访问权限
- 需要在Bucket的
Permissions
上进行以下设置
1 | Block public access (bucket settings)关闭以下几个权限 |
ACM/AWS Certificate Manager
- AWS的公有SSL/TLS证书是免费的,不过因为ACM管理私钥,所以只能在AWS上面使用。获取步骤还算简单,添加一个CNAME记录,一会儿就好了
- 只能用于集成了ACM服务的EC2实例,例如(ElasticLoad Balancing [ELB]或Amazon CloudFront分配)
Route 53
- AWS的域名管理
- 可以为同一个域名设置多个托管区域(hosted zone),例如针对同一个域名在测试环境和生产环境分别配置不同的DNS,只需要更改本地的名称服务器就能切换到不同的DNS上去,这样使用感觉有点复杂了
ELB/Elastic Load Balancing
- ELB支持多种负载均衡器
- 应用负载均衡器(Application Load Balancer):对HTTP/HTTPS请求进行负载均衡
- 网络负载均衡器(Network Load Balancer):对网络/传输协议(第4层-TCP、UDP、TLS)以及极端性能/低延迟的应用程序进行负载均衡
- 网关负载均衡器(Gateway Load Balancer):IP层
(Classic Load Balancer):应用程序在EC2 Classic网络中构建而成,AWS上已经变成灰色了,看来已经放弃了
- 可以直接在EC2管理页面创建负载均衡器,点击
Load Balancer
即可进行创建,如果需要选择ACM管理的SSL证书,可以直接在第二步选择 - 需要注意的是,创建后需要将域名的DNS记录指向负载均衡器的DNS名称,这样才能正确到负载均衡器上
- 负载均衡器的目标组可以只选择80端口,服务器上也可以只开启80端口,只有在负载均衡器的监听器上面需要监听443,转发到目标组就行了
API Gateway
- Creating a Serverless Contact Form on AWS: 使用API Gateway + SES服务创建一个serverless API用于网页的用户表单搜集
- 如何启用 CloudWatch Logs 以对 API Gateway REST API 或 WebSocket API 进行问题排查:
映射模板语法
1 | 这是一个使用EMS发送email的模板 |
API Gateway权限设置/Resource Policy
- 有多种访问策略:AWS Account Allowlist/IP Range Denylist/Source VPC Allowlist
- 如何排查API Gateway中的HTTP 403禁止访问错误
- 如何排查与 API Gateway 私有 API 终端节点的连接问题?
- 我从 VPC 连接到 API Gateway API 时,为什么会收到 HTTP 403 禁止错误?
实现仅自己的EC2(指定的VPC)能访问接口其他地方不能访问接口
Resource Policy添加如下策略:
1
2
3
4
5
6
7
8
9
10
11{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-west-2:账户ID:API的ID/APi的Stage/*/*"
}
]
}进入我们想配置的EC2绑定的VPC的配置页面选择左侧菜单栏的
Endpoints(终端节点)
,创建一个新的终端节点。服务类别选择AWS服务,服务名称选择API Gateway的执行服务com.amazonaws.us-west-2.execute-api
,终端节点类型为Interface
,然后VPC就是我们需要的VPC,子网可以全选,取消选择Enable DNS name
禁用私有DNS,其他默认。创建完成后需要等几分钟才能生效
RDS
MySQL
SES/Simple Email Service电子邮件发送和接收服务
CodeDeploy/Pipeline
- CodeDeploy日志位置:
/var/log/aws/codedeploy-agent/codedeploy-agent.log
- 部署日志位置:
/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log
CodeDeply Agent
安装方式见https://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html
开发
TroubleShooting
- InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Missing credentials : 需要重启一下agent:
sudo service codedeploy-agent restart