在亚马逊云科技AWS利用IaC(基础设施即代码)设计和搭建云原生架构(附免费学习教程和证书)

今天小李哥为大家介绍的是利用IaC(基础设施即代码)设计和搭建亚马逊云科技AWS云原生架构。本篇文章将会介绍如何在亚马逊云科技上搭建云原生Serverless服务,所使用的开发服务介绍,并展示搭建云原生架构的cdk代码。小李哥同时会给大家分享快速学习亚马逊云科技热门、前沿技术的免费学习资源,并且学完了可以领取一门证书。

亚马逊云科技上云原生Serverless架构设计

Lambda 服务介绍

AWS Lambda 是一种无服务器计算服务,允许用户运行代码而无需预置或管理服务器。用户直接上传代码并设置上游触发器即可运行服务,然后 Lambda 会在事件触发时自动执行代码,只需为代码的执行时间付费。Lambda 支持多种编程语言,如 Node.js、Python、Java 等,并可以与其他 AWS 服务(如 S3、DynamoDB、Kinesis 等)无缝集成,是构建事件驱动型应用程序的理想选择。

API Gateway 服务介绍

Amazon API Gateway 是一个全托管的服务,使开发人员能够轻松创建、发布、维护、监控和保护 API。API Gateway 支持 RESTful API 和 WebSocket API,可以与 AWS Lambda、HTTP 端点、AWS 服务和其他后端系统集成。通过 API Gateway,用户可以创建安全、可扩展的 API,并利用内置的流量控制、监控和版本管理功能,从而简化 API 管理。

SQS 服务介绍

Amazon Simple Queue Service (SQS) 是一种完全托管的消息队列服务(云端Message Queue),设计用于解耦和扩展微服务、分布式系统和无服务器应用程序。SQS 提供了标准队列和 FIFO 队列两种类型,前者保证高吞吐量但不保证消息顺序,后者保证消息严格有序和按需一次处理。通过 SQS,您可以可靠地发送、存储和接收消息,确保不同系统组件之间的松耦合和高可用性。

在了解了云原生主流服务后,我们来学习如何使用代码定义和创建亚马逊云科技云基础设施(IaC)。我们使用的工具是AWS SDK,脚本语言为AWS CDK专用语言typescript。

什么是AWS CDK?

AWS Cloud Development Kit (AWS CDK) 是一个开源软件开发框架,允许开发人员使用熟悉的编程语言来定义云基础设施。CDK的出现使得创建和管理 AWS 资源变得更加简便和高效。通过使用 AWS CDK,开发人员可以以代码的形式编写基础设施,从而实现基础设施即代码(Infrastructure as Code, IaC)的实践。

如何在本地安装AWS CDK?

安装CDK需要提前安装好一系列的依赖Node.js, npm和aws cli,安装好上述依赖后,下面上具体的步骤:

安装 AWS CDK

npm install -g aws-cdk

验证安装

cdk --version

使用AWS CDK创建EC2服务器步骤:

初始化 CDK 项目

mkdir my-cdk
cd my-cdk
cdk init app --language typescript


安装必要的 AWS CDK 模块

npm install @aws-cdk/aws-ec2 @aws-cdk/core


 创建并定义lib/my-cdk-stack.ts 文件(ts就是定义云原生架构配置文件)

主应用程序文件(app.ts)

import * as cdk from '@aws-cdk/core';
import { SqsStack } from './sqs-stack';
import { LambdaStack } from './lambda-stack';
import { ApiGatewayStack } from './api-gateway-stack';

const app = new cdk.App();

const sqsStack = new SqsStack(app, 'SqsStack');
const lambdaStack = new LambdaStack(app, 'LambdaStack', sqsStack);
new ApiGatewayStack(app, 'ApiGatewayStack', lambdaStack);

app.synth();

创建 Lambda 函数

import * as cdk from '@aws-cdk/core';
import * as lambda from '@aws-cdk/aws-lambda';

export class LambdaStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // 创建 Lambda 函数
    const myLambda = new lambda.Function(this, 'MyLambda', {
      runtime: lambda.Runtime.NODEJS_14_X,
      handler: 'index.handler',
      code: lambda.Code.fromAsset('lambda'),
    });
  }
}

创建 API Gateway

import * as cdk from '@aws-cdk/core';
import * as apigateway from '@aws-cdk/aws-apigateway';
import { LambdaStack } from './lambda-stack';

export class ApiGatewayStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, lambdaStack: LambdaStack, props?: cdk.StackProps) {
    super(scope, id, props);

    // 创建 API Gateway REST API 并与 Lambda 集成
    const api = new apigateway.RestApi(this, 'MyApi', {
      restApiName: 'My Service',
      description: 'This service serves as an example.',
    });

    const lambdaIntegration = new apigateway.LambdaIntegration(lambdaStack.myLambda, {
      requestTemplates: { 'application/json': '{ "statusCode": "200" }' }
    });

    api.root.addMethod('GET', lambdaIntegration); // GET / 触发 Lambda
  }
}

创建 SQS 队列

import * as cdk from '@aws-cdk/core';
import * as sqs from '@aws-cdk/aws-sqs';

export class SqsStack extends cdk.Stack {
  public readonly myQueue: sqs.Queue;

  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // 创建 SQS 队列
    this.myQueue = new sqs.Queue(this, 'MyQueue', {
      visibilityTimeout: cdk.Duration.seconds(300)
    });
  }
}

云原生课程介绍

本次课程和证书是关于目前云上开发最🔥的Serverless无服务器开发,Serverless服务说白了就是一台服务器,大家可以部署写好的代码,但是服务器是由AWS帮忙维护的,减轻了基础设施维护压力,而且基础设施可以根据并发请求数量自动扩容,保证系统性能。证书名字叫AWS Educate Getting Start with Serverless,内含免费课程和经典AWS实验(没听错,免费给你用AWS做实验,通过10道测试题后拿证书(5分钟就能拿到)。


小李哥同时准备了AWS全部12门证书考试题库和该证书题库,请关注下小李哥私聊获取。

1️⃣ 这张证书包括什么?

▶️ 首先介绍AWS Educate(免费教育计划) 

它是面向在校学生、AWS初学者,帮助他们学习、精通AWS的免费项目。包括包括数百小时的课程+免费实验,实验为真实AWS环境,大家不需要自己付费创建AWS资源,良心推荐。除了这张开发者证书,还有其他9张关于AWS☁️基础、Web系统开发、数据库、网络、DevOps、安全、DeepRacer(AWS 无人驾驶服务)的免费证书可以拿,快跟着小李哥一起也拿下AWS 52张认证!



▶️这张无服务器开发证书有什么?

包括目前无服务开发最热门的几个知识点

➡️ serverless服务 - AWS Lambda

➡️ 云上API管理服务 - API Gateway

➡️ 云消息通知、Pub/Sub服务- SNS

➡️ 云上Message Queue服务- SQS

2️⃣我该如何考试获取免费证书

▶️ 从主页进入课程
▶️ 进入登录界面,输入账号密码并登录


▶️ 点击图中左边栏的DashBoard,点击红框进入课程


▶️ 课程包括1个视频和1节实验(可以不做,点Next直接跳过到最后的测试)


▶️ 考过最后中的Final Assessment(10道题,70%通过)就可以获得证书了

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值