构建 NFT 发售系统

构建 NFT 发售系统 日期: 2023-07-12   背景   近年来随着 Web3 概念的火热,Web3 被描述为一个“基于区块链的去中心化生态系统”。吸引了大量互联网工作者不断的探索 Web3 在不同领域应用的落地。在 Web3 中,因为“非同质化代币”(NFT)的出现,使得创作者在数字世界的作品能够具备独一无二的权证而无法复制。NFT 既可以是现实世界中物品在数字世界中的映射,也可以是数字作品本身。创作者的作品有了 NFT 之后,就可以和现实世界中一样买卖、流转、租借。同时,没有中心化的平台也使得创作者能够获得更多的回报。 本文以公有云为依托,阐述了如何快速上线基于以太坊公链,发放非交易类型的虚拟资产 NFT 的无服务化的应用,从而能减少创作者对应用架构底层运维与产品使用学习的投入,达到应用的快速上线与版本的迭代。         方案设计   一般来说,发售系统主要会包含会员/账号管理、铸造、藏品管理、权益管理等模块。会员管理主要包含基础资料、实名认证等功能;藏品管理包含作品/作者介绍、解读、发行记录、额度、作品结构/非结构化等信息。 自从 AWS 推出无服务架构 AWS Lambda 以来,成千上万的用户都受益于此,无需预置或管理任何服务器,就可以快速部署和运行代码。使用 AWS lambda 和 API gateway 可以快速在互联网构建服务,提供给前端用户使用。 Amazon DynamoDB 是一种完全托管式、无服务器的 NoSQL 键值数据库,旨在运行任何规模的高性能应用程序。DynamoDB 提供内置安全性、连续备份、自动多区域复制等功能。借助 DynamoDB,发售系统的会员账户以及藏品系统均可保存在 DynamoDB,同时利用 DynamoDB 多 Region 复制能力,开发者不用维护多区域数据同步的问题,极大地节省了开发的时间,快速将系统部署在全球。    …

基于 Task 颗粒度的监控告警

基于 Task 颗粒度的监控告警 日期: 2023-07-12   服务及场景介绍     Amazon MWAA   Amazon MWAA(Amazon Managed Workflows for Apache Airflow)是 Apache Airflow 的一项托管服务,让您可以使用当前熟悉的 Apache Airflow 平台来编排您的工作流程。您可以获得更高的可扩展性、可用性和安全性,而无需承担管理底层基础设施的运营负担。     Amazon SNS   Amazon Simple Notification Service(Amazon SNS)是一项托管服务,提供从发布者向订阅者(也称为创建者和使用者)的消息传输。发布者通过将消息发送至主题与订阅者进行异步交流,主题是一个逻辑访问点和通信渠道。客户端可以订阅 SNS 主题并使用受支持的终端节点类型接收已发布的消息,例如 Amazon Kinesis Data Firehose、Amazon SQS、Amazon Lambda、HTTP、电子邮件、移动推送通知和移动短信(SMS)。     Amazon Lambda   Amazon Lambda 是一项无服务器事件驱动型计算服务,该服务使您可以运行几乎任何类型的应用程序或后端服务的代码,而无需预置或管理服务器。您可以从 200 多个亚马逊云科技服务和软件即服务(SaaS)应用程序中触发 Lambda,且只需按您的使用量付费。  …

构建容器化 HPC 平台

构建容器化 HPC 平台 日期: 2023-06-15   容器化 HPC 平台优势   HPC 高性能计算(High Performance Computing),是指利用大规模并行化的计算资源来解决大规模、高复杂度的计算问题。HPC 通常用于科学计算、工程计算、大数据分析、量化金融等领域,包括气象预报、地震模拟、基因组分析、人工智能等。传统的 HPC 系统复杂,需要专业人员进行维护和管理;缺乏灵活性,不易适应不同的应用场景;不利于快速迭代和开发,部署和更新成本较高。相比之下,容器化 HPC 具有更好的资源管理和调度、应用程序隔离和安全性、计算资源的灵活性和可伸缩性、应用程序部署和更新的简便和快速性、以及更加灵活和可配置的运行环境等优势。帮助用户更加高效地利用计算资源,提高计算效率和性能,从而推动科学计算和数据分析等领域的发展和应用。         架构图概览         部署步骤   Step 1 – Install Kubernetes Tools Install awscli       Install eksctl       Install kubectl       Install Helm    …

Amazon Fargate使用心得

Amazon Fargate使用心得 日期: 2023-06-14   概述 从 2019 年底开始,EKS 已经支持 Fargate 功能,Fargate 是无服务器的计算单元,支持 Pod 的运行,EKS 集群的数据平面可以完全由 Fargate 承载,免除了维护 EC2 实例的弹性扩展、打补丁、和管理等方面的运维难题,而且 Kubernetes pod 运行在单独隔离的环境中,增强了安全性,下面示例介绍 EKS Fargate 的使用过程。   整体实验的架构图如下:   架构图说明: EKS 是 Amazon 托管的 Kubernetes 服务。 Fargate 中运行 metrics-server,aws-load-balancer-controller,coredns,adot-collector 插件,分别用于收集 pod 指标,管理 Amazon ALB 负载均衡服务,DNS 域名解析服务和日志收集。Nginx pod 用于测试。 CloudWatch 服务将收集和管理 pod 日志和 pod 指标。  …

通过 iptables 的 SNAT 规则实现私有实例轮询使用多公网 IP 访问公网

通过 iptables 的 SNAT 规则实现私有实例轮询使用多公网 IP 访问公网 日期: 2023-05-11   背景说明   众所周知,业务服务器是企业用以提供服务实现盈利的核心,绝大多数情况业务服务器都部署于私有网络中,以保证安全。 在私有网络中的业务服务器提供业务功能时,对网络的诉求会分成两种类型:第一种是经由互联网被访问,可以借助负载均衡器进行服务暴露实现;第二种则是主动访问互联网。 对于第二种类型,如果需要的公网 IP 数量少于或等于 8 个,可以使用 Amazon NAT Gateway 实现;若需要的公网 IP 数量大于 8 个,则需要更加灵活的方案。 本文将介绍两种方案,用于满足“需要的公网 IP 数量大于 8 个”的场景,并在文章的最后,对这两种方案进行优劣势比较。     ─────◆─────     a. 架构图         b. 环境搭建(执行命令的机器需要有足够的权限)   1) 创建网络资源 # 0. 进入screen模式,以保证环境变量不会因为退出Session而消失 screen# 1. 创建VPC ningxia_vpc_id=$(aws…

DMS 任务失败自动尝试恢复

DMS 任务失败自动尝试恢复 日期: 2023-05-11   AWS DMS 任务失败的原因主要有如下: 1.源数据库类故障(包括数据库服务中断、网络通信故障) 2.数据类错误,如转换错误、截断等     对于因源数据库故障导致的AWS DMS任务失败,可以使用Amazon EventBridge接收AWS DMS任务事件(需升级AWS DMS复制实例到3.4.6或更高版本),并与预先定义的Event Pattern进行匹配。如果匹配,使用Amazon Simple Notification Service(Amazon SNS)提供通知服务(比如邮件告警),同时发送事件到AWS Step Functions状态机,自动尝试对AWS DMS任务恢复。     下面架构图展示了方案架构设计:     Amazon EventBridge从AWS DMS接收事件(任务或复制实例) 对于匹配预先定义的Event Pattern的事件,使用Amazon SNS通知服务以邮件进行告警 对于匹配预先定义的Event Pattern的事件,使用AWS Step Functions状态机尝试恢复任务运行   下面将详细介绍EventBridge规则配置、状态机流程和代码示例。     Amazon EventBridge Event Pattern定义如下: {     “source”: [“aws.dms”],    …

如何选择及部署文件网关实现对云中文件存储数据库的快速访问

如何选择及部署文件网关实现对云中文件存储数据库的快速访问 日期: 2023-04-13   【概要】想要访问云中的文件存储数据库,首先要选择合适的文件网关,本文将会以 Amazon FSx 网关为例,教你如何快速缓存式访问云中文件服务器。     使用 Amazon FSx 文件网关   Amazon FSx 文件网关支持多种平台选项。您可以订购硬件设备并将其部署到本地环境中、作为虚拟机部署到本地环境(VMware ESXi、Microsoft Hyper-V、Linux KVM)中,或者作为 Amazon Elastic Compute Cloud (EC2) 实例部署到云中。当您从 Amazon Storage Gateway 管理控制台开始创建网关时,系统将会显示可用的选项,以及各个选项的设置说明。   下面,我选择将一个 EC2 实例作为我的网关。     网关的设置过程非常简单,详见此处的文档,在本文中我将不再累赘重复。基本上,涉及的步骤是首先创建一个网关,然后将其加入到您的域中。然后您需要挂载一个 Amazon FSx 文件系统。在此之后,您的远程客户端将可以使用文件系统上的数据,但重要的区别在于它们将使用网络共享连接到网关,而不是 Amazon FSx 文件系统。以下是在美国东部(弗吉尼亚北部)创建的网关的一般配置。     以下是我的 Amazon FSx 文件系统的详细信息,此文件系统在美国东部(弗吉尼亚北部)的一个 Amazon Virtual Private Cloud (VPC) 中运行,将会挂载到我的网关。     请注意,我在与源 Amazon FSx…

Amazon Web Service 上的 Lake House 架构的初步认识

Amazon Web Service 上的 Lake House 架构的初步认识 日期: 2023-04-13   Lake House 架构的基本思路,认为任何一种号称“万能”的分析方法终会带来与预期相冲突的妥协。换言之,我们不是简单粗暴地将数据湖与数据仓库集成起来,而是把数据湖,数据仓库,以及其他一些专门构建(purpose-built)的数据存储方案集成起来,赋予统一管理与轻松灵活的数据移动。下图所示,为 Amazon Web Service 上的 Lake House 架构。     Amazon Web Service   下面来看 Amazon Web Service 上的 Lake House 架构,将如何帮助我们的客户满足以上各项要求。     可扩展数据湖   Amazon Simple Storage Service (Amazon S3) 之所以成为构建数据湖的最佳场所,凭借的正是其无与伦比的持久性、可用性与可扩展性,出色的安全性、合规性与审计功能,以最低成本提供最强性能的自身定位,丰富的数据导流方法,以及广泛的合作伙伴集成范围。   但是,数据湖的设置与管理往往涉及诸多手动且极为耗时的操作,例如从不同来源处加载数据、监控数据湖、设置分区、启用加密并管理密钥、将数据重整为列格式,以及对访问进行授权与审计等等。为了帮助简化这个过程,我们开发出 Amazon Web Service Lake Formation。Lake Formation 可以帮助我们的客户将云端安全数据湖的构建周期由几个月缩短至数天。Lake Formation 能够从数据库及对象存储中收集并分类数据,将数据移动到 Amazon…

在 EC2 Linux 操作系统上部署 ClamAV 并开启实时防护、集中日志采集和统一告警

在 EC2 Linux 操作系统上部署 ClamAV 并开启实时防护、集中日志采集和统一告警 日期: 2023-03-10   一、背景   计算机信息系统等级保护(俗称等保)的要求之一是应用服务器具有病毒防护手段,并定期升级病毒特征库。这个防护场景通常被称为Endpoint Detection and Response(EDR),也可简称终端防护。EDR一般是采用侵入性的防护方式。所谓侵入性意味着需要在EC2虚拟机内植入专门的Agent才可以进行安全防护。在亚马逊云科技上,可通过Marketplace方式订阅多个第三方厂家的EDR,也可以线下采购。 商用的EDR方案有完整的检测、识别、发现、预防、干预、强化、集中管控等一整套管理功能,不过相对带来的问题是成本较高。在一些非严格等保的场合,如果只是要求实现病毒扫描和防护能力,那么可使用本文介绍的ClamAV方案进行替代。 ClamAV是一个开源的引擎,用于检测病毒、木马、恶意软件和其他威胁。ClamAV支持Windows、Linux和MacOS等系统。Github官网在这里。ClamAV由Talos所有,后者又被Cisco收购,用于为Cisco供应威胁情报。ClamAV社区提供了免费的持续的病毒特征库升级。因此可实现一次部署,长期使用。 本文介绍如何在Amazon Linux 2操作系统上部署,其他系统如Ubuntu安装过程相仿请参考对应文档。     二、安装ClamAV并执行手工扫描 1、安装软件包 注意:ClamAV加载特征库和全盘扫描比较消耗CPU和内存资源,因此建议在不小于4GB内存的机型上安装部署。内存仅为1GB、2GB的机型运行速度可能较为缓慢,甚至出现部分时间假死的情况。 本文采用操作系统自带的软件源。执行如下命令安装。      yum update -y amazon-linux-extras install epel yum install clamav clamd -y     安装好的ClamAV有几个主要组成部分: clamscan:手工扫描程序 clamdscan:依赖后台服务的扫描程序 clamonacc:按需扫描程序(实时监控),对应配置文件 /etc/clamd.d/scan.conf clamd:按需扫描的后台进程,对应配置文件 /etc/clamd.d/scan.conf fleshclam:病毒库升级工具,对应配置文件 /etc/fleshclam.conf clamconf:配置文件生成工具   2、手工更新病毒库 首次安装后,必须先下载病毒库。执行如下命令更新病毒库:  …

在 EKS 中使用 qtree 扩展 ONTAP 存储卷数量上限,实现千万 PVC 数量级持久化存储

在 EKS 中使用 qtree 扩展 ONTAP 存储卷数量上限,实现千万 PVC 数量级持久化存储 日期: 2023-03-08   背景   目前,在已经上线 FSx for NetApp  ONTAP 文件存储服务的AWS各区域中,每个文件系统的卷上限为500个。在多租户场景需求中,客户通常需要创建数千或数万个小型的存储空间供给前端的容器使用,且要求存储空间必须互相隔离且具备配额功能。在此类场景中,对于读写性能的需求通常不会很高,但要求存储卷间数据隔离且支持配额。 FSx for NetApp ONTAP 可以很好的满足功能上的需求,但卷数量上限使得客户不得不寻求将业务数据分散在多套文件系统中或者考虑其他自建存储解决方案,推高运维成本。为了应对此类型的需求,可以使用qtree的方式扩展单个文件系统可支持的PVC数量上限,其优势有: 将每个文件系统支持的PVC数量从500提升到10万 将每个Amazon区域文件系统支持的PVC数量从5万提升到1000万 通过存储超分配有效降低初期配置成本     相关概念   Amazon EKSAmazon Elastic Kubernetes Service (Amazon EKS) 是一项托管服务,可让您在 AWS 上轻松运行 Kubernetes,而无需安装、操作或维护您自己的 Kubernetes 控制面板或节点。Kubernetes 是一个用于实现容器化应用程序的部署、扩展和管理的自动化的开源系统。 Amazon FSx for NetApp ONTAPAmazon FSx for NetApp ONTAP 是一项完全托管的服务,它提供了基于…