【AWS/Udacity】 AWS云架构师-第二次提交

这是我在AWS云架构师在线课程中学到的笔记。

设定目标

image.png

成本监控

免费目标

    • 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

广告
将在 10 秒后关闭
bannerAds