【AWS/Udacity】 AWS云架构师-第二次提交
这是我在AWS云架构师在线课程中学到的笔记。
设定目标
成本监控
免费目标
-
- AWS Elastic Beanstalk – Rapid application deployment
-
- AWS Cloud Formation – AWS Branded Infrastructure as Code service
-
- Auto-Scaling – Scaling EC2 instances up/down or in/out based on your application requirements
- AWS IAM – User and access management
计算工具
AWS 价格计算器的服务种类并不是很完善。
优化
EBS 和 EFS
EC2和EBS一起使用
AWS初学者必须掌握的内容。AWS的基础服务|索尼
5分钟了解Amazon EBS | 纳雷科姆AWS配方
图表
私可以提供以下一种汉语的本地化表达:
透明图表
很抱歉,但是您提供的信息太少,无法进行准确的中国语言翻译。能否提供更多上下文或明确的意思,以便我可以帮助您?
AWS 命令行界面
安装
我只安装了以下pkg文件:
https://awscli.amazonaws.com/AWSCLIV2.pkg
在macOS上安装AWS CLI版本2 – AWS命令行界面
建立RDS
aws rds create-db-instance \
--allocated-storage 20 --db-instance-class db.t2.micro \
--db-instance-identifier myinstancename \
--engine postgres \
--master-username myname \
--master-user-password secret99 --no-publicly-accessible
AWS-CLI的初始设置备忘录- Qiita
土壤改良
Terraform 入门 – Qiita
使用 Terraform 进行变量操作 – Qiita
安装
安装Terraform | Terraform – HashiCorp学习
基本命令
初始化 terraform
计划 terraform
应用 terraform
销毁 terraform
实施
# TODO: Designate a cloud provider, region, and credentials
provider "aws" {
access_key = "[access_key]"
secret_key = "[secret_key]"
region = "us-east-1"
}
# TODO: provision 4 AWS t2.micro EC2 instances named Udacity T2
resource "aws_instance" "Udacity" {
count = "1"
ami = "ami-[id]"
instance_type = "t2.micro"
tags = {
name = "Udacity"
}
}
如果构建EC2的情况
provider "aws" {
access_key = "access_key"
secret_key = "secret_key"
region = "us-east-1"
}
resource "aws_instance" "Udacity" {
count = "4"
ami = "ami-id"
subnet_id = "subnet-id"
instance_type = "t2.micro"
tags = {
name = "Udacity"
}
}
文件 – HashiCorp 的 Terraform
摧毁
[亚马逊AWS][Terraform]若要只删除特定项目,可以使用 Terraform destroy -target – ADACHIN 服务器研究所
在使用lambda表达式构建的情况下
resource "aws_iam_role" "iam_for_lambda" {
name = "iam_for_lambda"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
data "archive_file" "lambda_zip" {
type = "zip"
source_dir = "../test"
output_path = "../test.zip"
}
resource "aws_lambda_function" "udacity_lambda" {
filename = "${data.archive_file.lambda_zip.output_path}"
function_name = "lambda_handler"
role = "${aws_iam_role.iam_for_lambda.arn}"
handler = "lambda_function.lambda_handler"
runtime = "python3.6"
}
Terraform 在部署 Lambda [Python] 时的最佳实践 | Developers.IO
变量
由于Terraform可以读取所有的.tf文件,因此不需要特别导入或任何额外操作。
使用AWS学习Terraform | Developers.IO
通过Apex解决在Terraform中管理Lambda带来的麻烦-附带Datadog Logs示例- PSYENCE:MEDIA
输出
如果想了解EC2实例的公共IP以及其他配置环境后分配给资源的属性值,可以使用output命令来实现。这是在AWS上使用Terraform入门的有用方法。
存档
存档:存档文件 – HashiCorp的Terraform
添加环境变量
使用Terraform来设置 AWS Lambda (Node.js)的环境变量 – Qiita
ARN可以以以下方式进行本土化:
建筑工 程馆 (ARN: Architecture Engineering Pavilion)
智能 保 险运营中 心 (ARN: Intelligent Insurance Operations Center)
军 事航天研究院 (ARN: Military Aerospace Research Institute)
全球企业咨询服务 (ARN: Global Enterprise Consulting Services)
身心健康评估 (ARN: Physical and Mental Health Assessment)
亚马逊资源名称(ARN)- AWS总体参考
AWS ARN总结- 掘金
云监控
在Qiita上构建使用Terraform搭建Lambda(定时启动)的解决方案。
扮演角色
sts:Assume Role 是一种将个人AWS账户的API权限委托给第三方的机制。
这样可以避免安全上的负面遗产。引用自Carpe Diem的Assume Role用途和优势。
当有退休者或其他人员离职时,这非常方便。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
Principal指的是要授予服务的对象。
IAM角色全面理解 〜 AssumeRole的真实身份 | Developers.IO
请参考
(Translation: Please refer to)
整个建筑结构/体系
总结了理解AWS基础的基本系统配置图- Qiita
通过设计示例学习AWS构建原则- 理解Web应用程序体系结构的最佳实践- 工程师中心|思考年轻Web工程师的职业生涯!
使用AWS构建Mastodon服务器 | Solutionware开发博客
通过无服务器架构构建付费直播服务
写架构笔记的窍门
如何创建架构图册
无服务器架构
【演讲资料】区分目的、无服务器架构的教科书!在这种情况下应该是这样!【架构20连发】#cm_osaka | Developers.IO
【AWS】只要看这个就能理解Cognito – 带有认证功能的无服务器架构的创建 – Qiita