迁移阿里云 ECS Windows 到 AWS EC2

一、前言

企业引入多云战略后,需要将一部分云资源从某云服务商迁移到另一个,这时候就需要依赖云厂家提供的迁移工具。不过,阿里云在Windows操作系统上做了一个限制,不允许Windows的虚拟机转换为镜像。这个信息的出处在阿里云官网的这里。如下截图。

针对Linux系统可以直接export为镜像文件,然后传输到AWS云上,但Windows系统不能导出。这可能是出于对微软License管理的角度。由此给迁移造成了难度。

如果应用部署不是特别复杂,建议在AWS上直接创建新的空白的Windows,然后部署应用,将应用的配置文件等打包通过S3复制到AWS上运行。

如果原有应用不便于重新部署,例如应用开发、维护团队已经离场,开发团队人员变更、甚至解散,无法为迁移提供技术支持,那么可以采用本文的方法:即使用其他第三方工具将阿里云上的Windows提取为镜像,然后导入AWS迁移。注:导入镜像时候,默认将采用AWS提供的Windows Server License运行。

Continue reading “迁移阿里云 ECS Windows 到 AWS EC2”

为EC2 G3机型的GPU实例安装Windows下3D驱动

注意:本篇编写于2019年,当时云端GPU机型较少,目前在针对3D设计、3D游戏、仿真等场景的最佳机型为G5,或者也可选上一代G4机型。在远程管理协议的选择上,推荐使用NICE DCV替代之前普遍使用的RDP和VNC。Windows场景可参考这篇,Linux场景可参考这篇

一、背景

GPU实例的用法分成两种,一种是偏向桌面图形的加速和渲染的,AWS提供了G3、G4系列,配合M60等图形加速卡;一种是偏向机器学习的训练、推理等场景,AWS提供了P2、P3系列,配合V100加速卡。

如果是机器学习场景,请使用AMI镜像中的deep learning镜像,Windows和Linux版本都可以。镜像会预装好多个机器学习框架,做到开箱即用。在创建实例的时候,可以选择输入关键字来搜索镜像。如下截图。

Continue reading “为EC2 G3机型的GPU实例安装Windows下3D驱动”

使用Aurora Global DB做Cross-Region DR切换

一、概述

AWS RDS Aurora for MySQL是兼容MySQL和PostgreSQL的云原生数据库。Aurora支持创建普通的跨区域只读副本,但不承诺复制延迟;Aurora也有一项专门用于跨区域业务容灾的特性:Global DB,跨Region数据复制在1秒左右。

Aurora Global DB的文档参考这里

使用Aurora Global DB也存在一些限制,例如MySQL版本必须是5.6版本等。由于很多用户对Aurora实施跨region复制和DR切换能够达到的效果没有直观感受,这里特意录制一段视频为大家讲解。视频的配音采用Amazon Polly语音合成。Polly产品的文档参考这里

Continue reading “使用Aurora Global DB做Cross-Region DR切换”

使用多账号+Organization区分不同部门的费用

一、前言

前文提到过,实现费用分割的方法之一是加tag,即Billing Dashboard里边的Cost Allocation Tag功能。配置说明参考上篇文章。在运行一段时间之后,看效果如下。

使用Tag区分费用的一个主要挑战就是,部分资源不支持标记tag,无法按照tag进行费用拆分。不支持的主要内容包括:Route53/WAF等。在使用比较重且较贵的Aurora RDS服务中,RDS实例消耗的CPU、内存是根据实例规格计费的,是可以使用tag区分费用的。但是,RDS生成的磁盘IO是不支持加tag的。如果有多个Aurora,不能区分哪一个数据库发生的IOPS,这是一点很大的局限。

Continue reading “使用多账号+Organization区分不同部门的费用”

使用Cloudwatch Agent监控系统运行情况

一、前言

1、背景

AWS对EC2的监控通过Cloudwatch在虚拟化层完成,也就是KVM的Hypervisor层完成。这一层,只能看到CPU占用率、磁盘IO、网络流入流出等数据,不能看到虚拟机Guest OS层面的数据。例如看不到内存使用率,看不到C盘使用率,系统进程数等。为了打开系统级监控,需要安装Cloudwatch的agent。如下图为监控效果。

Continue reading “使用Cloudwatch Agent监控系统运行情况”

使用TAG区分AWS费用账单

一、划分费用的方法

为了区分不同部门、不同业务线的费用,如下两个常见方法:

  1. 使用AWS Organization功能,创建独立的子账户,然后自动合并付款。缺点是自账户创建、认证、密码策略、管理维护稍微步骤多一些。详细文档参考这里
  2. 使用Tag区分。在当前账号下,创建资源都填写对应的资源标签。

本文描述的是方法2也就是Tag(标签)。详细文档参见这里的链接

Continue reading “使用TAG区分AWS费用账单”

执行 yarn application 连接失败且超时的错误解决

在AWS EMR使用多个Master高可用部署场景下,需要创建3台Master节点上。登录到其中一台节点,运行如下命令:

yarn application -list

在某些场景下会遇到如下报错。报错信息:

WARN ipc.Client: Failed to connect to server: ip-172-31-22-134.cn-northwest-1.compute.internal/172.31.22.134:8032: retries get failed due to exceeded maximum allowed retries number: 0
java.net.ConnectException: Connection refused
Continue reading “执行 yarn application 连接失败且超时的错误解决”

创建跨Region VPC Peering

一、前言

公有云各区域间都是完全隔离的,互通默认是通过Internet访问。如果有大量复制数据的需求,一般可以通过S3、RDS底层的跨区域复制实现,这种方式是通过AWS的全球骨干网传输,数据不暴露在Internet上。当然,跨区域复制这些,中国区不支持。原因大家懂的。

如果要方便操作,有一批EC2分别位于两个Region,EC2虚拟机之间要互通,那么在通过Internet就麻烦了。最佳实践就是跨Region的VPC Peering。注意,中国区也不支持。

如下图,VPC Peering示意图。

Continue reading “创建跨Region VPC Peering”

使用AWS CLI查看RDS性能参数

本文描述了如何通过AWS CLI查询Amazon Aurora MySQL的监控性能。

一、背景

Amazon Aurora MySQL通过Cloudwatch监控提供了一系列参数,主要参数名称可通过控制台获得。如下截图。

在对接AWS的使用SDK开发之前,可以先用AWS CLI进行验证,明确要查找的参数后,再进行代码工作。下面描述操作方法。

Continue reading “使用AWS CLI查看RDS性能参数”

使用Athena的排查ELB后的网站错误

一、排查思路

遇到网站访问错误,例如网站报告504错误,建议分段排查。如果网站有多个服务商组成,例如在AWS之前使用了CDN、WAF等,这需要分段排查。思路如下。

1、分段排查,分成 域名解析 -> 第三方WAF -> AWS ELB -> AWS EC2 几段。

2、各段打开LOG,根据LOG报错排查。

为了方便调查,这里将使用AWS Athena快速检索网站日志。

Continue reading “使用Athena的排查ELB后的网站错误”

Google Cloud Engine (GCE)与AWS的GPU产品对比

一、前言

看到下边这张图,能想起什么?

我第一时间想起,1991年卡梅隆导演《终结者2》中,研发Skynet原型的Cyerdyne Systems的Miles Dyson,他平时996周末在家还要007时候,桌面上那个神经网络模型,配合上1991年的电脑,5.25英寸软盘。。。

Continue reading “Google Cloud Engine (GCE)与AWS的GPU产品对比”

使用 AWS 云服务搭建 WordPress 博客 (中篇)- 全站SSL配置完成

点击这里阅读本文上篇

一、前言

全站SSL来啦!

这是用AWS搭建Wordpress的第二篇文章,重点讲述使用AWS的DNS服务(Route53)+ 证书服务(ACM)实现SSL防护主站和S3图床。配置过程也踩了不少坑,现在开始。

Continue reading “使用 AWS 云服务搭建 WordPress 博客 (中篇)- 全站SSL配置完成”

为EC2添加多个EIP公网地址并通过路由指定网络出口

一、前言

每个虚拟机(AWS叫EC2实例)默认都是有1个VPC内的私网IP,如果需要的话,可以为虚拟机绑定公网IP,在AWS上叫Elastic IP,简称EIP。一般情况下,一个虚拟机就绑定一个EIP。如果出现了需要在一个EC2实例上用多个EIP的场景,那么可以通过不同的方式实现。

Continue reading “为EC2添加多个EIP公网地址并通过路由指定网络出口”

挂载EBS磁盘到新的EC2上修复OS故障或恢复数据

一、前言

系统有时候不小心搞坏了,导致无法启动,不能SSH是常见现象之一。国内的云普遍提供VNC Console,直接连接到虚拟机的对应端口上,可以发起对虚拟机的物理控制台操作。那么,上次也提到过,AWS不提供这个功能,AWS认为你的虚拟机不应该坏掉。那么如何修复?

传统的手艺就是把磁盘卸载下来,挂到别的机器上,修复好损坏的文件,然后再拿回来装上。从DIY到VMware都适用这个方法。这个方法对AWS依然适用,且没有难度。本文编写是为了强调下2个需要注意的地方以防操作失败。

Continue reading “挂载EBS磁盘到新的EC2上修复OS故障或恢复数据”