部署和管理服务是帮助用户在AWS云平台上部署和管理应用程序和资源,其主要侧重在四个方面:一个是身份认证和访问控制,包括IAM和CloudHSM;第二个是应用和资源管理,包括AWS管理控制台、命令行接口(CLI)和OpsWorks;第三个是监控,包括CloudWatch和CloudTrail;最后一个是部署和自动化,包括Elastic Beanstalk和CloudFormation。下面我们简要介绍一下这些服务。
1. 身份认证和访问控制:AWS IAM(Identity and Access Management)
IAM是AWS的身份管理和访问控制服务,通过IAM来管理用户可以极大提升用户管理的灵活度,并提供细粒度的资源访问管理。 通过IAM可以根据“最低权限原则”按照实际需求给每个使用AWS的用户设定权限,而且这些用户权限随时可以进行调整。另外,通过IAM可以通过临时令牌的方式实现身份联合(又称身份联邦),从而实现与外部用户的身份认证服务集成在一起。这些外部用户可以通过企业内部的AD或LDAP认证用户,或者是像Google、Facebook和Amazon等这样的主流互联网服务账户用户。
2. 密钥管理服务:AWS CloudHSM
CloudHSM是AWS为用户提供的密码管理服务,它结合了云服务的便捷性和专用硬件的安全性。CloudHSM使用了防篡改的硬件安全模块(HSM),帮助用户安全存储各种密钥,AWS负责管理CloudHSM设备,但只有用户自己才能访问存储在CloudHSM上的密钥。用户的应用程序用专门的HSM客户端通过SSL加密通道访问CloudHSM,而且CloudHSM必须结合VPC一起使用。另外通过CloudHSM还可以帮助用户的AWS环境满足相应的法规遵循标准,例如Common Criteria EAL4+。
3.AWS管理控制台:AWS Management Console
AWS管理控制台为用户提供了一个统一管理所有AWS资源和所部署应用的图形化界面。用户可以通过管理控制台来管理各种资源、部署应用、监控应用和资源的使用情况等。我们建议用户不使用自己的AWS主账户登录AWS管理控制台,而使用IAM账户并结合使用MFA多因子认证方式(详情参考这里)。用户主要通过浏览器方式登录AWS管理控制台,不过现在也有基于Android和iOS的移动应用版本方便用户使用。
4.AWS命令行接口:AWS CLI(Command Line Interface)
除了前面的图形化管理控制台外,AWS还提供了一个方便用户以命令和脚本进行管理的工具,它就是AWS CLI。命令行接口需要用户下载安装,它支持Windows、Mac和Linux环境。通过AWS CLI,一方面可以满足喜欢命令行管理方式的用户,更重要的时用户可以编写脚本来实行一些自动化的管理工作。
5. 应用管理服务:AWS OpsWorks
AWS OpsWorks是一种基于事件驱动机制的应用管理服务,能够帮助用户管理和配置整个应用程序,包括EC2实例创建、应用的部署、负载均衡服务配置和数据库配置等功能。OpsWorks采用了Chef框架,提供了使用常见技术如Ruby、PHP、Node.JS、Java等的模板,同时支持用户自定义Chef配置支持那些能够通过脚本安装的软件。另外,OpsWorks还支持用户配置根据时间设置和基于实际应用负载的自动扩展。
6. 监控服务:Amazon CloudWatch
CloudWatch是一个帮助用户监控AWS资源和应用程序的服务。AWS用户可以通过CloudWatch来收集和跟踪设定的参数指标(Metrics),并提供可视化报表。CloudWatch缺省已经为EC2、RDS、ELB等提供许多常见的监控指标,如针对EC2实例的CPU使用率、运行状态、磁盘读写量等。用户也可以自定义一些监控指标然后通过CloudWatch来监控。另外,CloudWatch可结合SNS服务实现告警通知,也可以结合Auto Scaling实现自动扩展服务。
7. 安全记录服务:AWS CloudTrail
CloudTrail是一个帮助用户提升安全性的服务,它可以跟踪用户账户下AWS API调用记录,并把日志保存到指定的S3存储桶(Bucket)。CloudTrail记录的信息包括API调用方、调用的时间、调用方的IP地址、调用参数以及AWS服务响应的组成元素等。CloudTrail帮助用户记录了AWS API调用的历史,包括AWS管理控制台、命令行、AWS软件开发包(SDK)以及其他像CloudFormation这样的上层服务等。这些调用日志记录有助于用户进行安全分析、资源变更记录和满足法规遵循方面的要求。
8. 配置模板服务:AWS CloudFormation
CloudFormation为用户一种简单的方式来生成和管理相关AWS资源的一个集合,帮助用户快速部署和更新这些资源。CloudFormation可以让用户把自己要部署的AWS资源以一个JSON文件,也即CloudFormation模板的形式描述出来,然后通过部署基于这个模板的资源堆栈就可以批量把所需要的资源一次性创建出来。CloudFormation不但可以减少用户重复部署的工作量,而且在资源部署后,用户还可以更新自己的模板并通过版本控制的方式来管理资源的部署。为简化用户创建模板,CloudFormation还提供了一些常见的模板方便用户构建自己的计算环境。
9. 应用自动化部署:AWS Elastic Beanstalk
Elastic Beanstalk能够帮助用户自动化部署应用程序,用户只需要上载应用程序或集成Git库,然后Elastic Beanstalk能够自动处理部署的具体细节问题,包括部署容量、负载均衡、自动扩展和应用健康监控等设置。Elastic Beanstalk支持的常见语言包括Nodes.js、PHP、Python、Ruby、Java和.NET等开发的应用。与通常的 平台即服务(PaaS)不同的是Elastic Beanstalk不但能够降低开发人员的应用部署难度,而且可以同时让开发人员保留对底层资源的控制能力。除了应用在部署中用到具体AWS资源的费用外,用户不需要额外给Elastic Beanstalk服务付费。