在今天的文章中,我整理出了大量当初曾经错过、而至今仍将我追悔莫及的Amazon Web Services(简称AWS)使用心得。在几年来的实践当中,我通过在AWS之上新手构建及部署各类应用程序而积累到了这些经验。虽然内容有些杂乱,但相信仍然能给各位带来一点启示。

从物理服务器向“云环境”转移的过程不仅仅是一项技术任务,同时也意味着我们的思维方式需要作出针对性的转变。总体而言,在物理环境下我们需要关注的只是每一台独立主机; 它们各自拥有自己的静态IP,我们能够对其分别加以监控。而一旦其中一台发生故障,我们必须尽最大可能让其快速恢复运转。大家可以以为只要将基础设施转移到AWS环境之下,就能直接享受到“云”技术带来的种种收益了。遗憾的是,事情可没那么简单(相信我,我亲身尝试过了)。在AWS环境之下,我们必须转变思维,而且这方面的任务往往不像技术难题那么容易被察觉。因此,受到了SehropeSarkuni最近一篇帖子的启发,我将自己几年来积累得出的AWS 使用心得汇总于此,而且说实话、我真希望自己当初刚刚接触AWS时能有人告诉我这些宝贵经验。这些心得总结自我在AWS之上部署个人及工作应用程序时的亲身感受,其中一部分属于需要高度关注的“疑难杂症”(我自己就是直接受害者),而另一部分则是我听其他朋友说起过、并随后亲自确认有效的解决方案。不过总体而言,为了积累这些经验,我确实付出了相当惨痛的代价:)

应用程序开发

千万不要把应用程序状态保存在自己的服务器上。

之所以这么说,是因为一旦我们的服务器发生故障,那么应用程序状态很可能也随之彻底消失。有鉴于此,会话应当被存储在一套数据库(或者其它某些集中式存储体系、memcached或者redis当中)而非本地文件系统内。日志信息应当通过系统日志(或者其它类似方案)进行处理,并被发送至远程位置加以保存。上传内容应当直接指向S3(举例来说,不要将其存储在本地文件系统内,并通过其它流程随后迁移到S3)。再有,任何已经处理过或者需要长期运行的任务都应该通过异步队列(SQS非常适合处理此类任务)来实现。

编辑点评:对于S3上传内容而言,HN用户Krallin指出,我们可以彻底避免其与自有服务器的接触,并利用预签名URL保证用户的上传数据被直接发送至S3当中。

将额外信息保存在日志当中。

日志记录通常包含有时间戳以及pid等信息。大家也可能希望将实例id、服务区域、可用区以及环境(例如分步环境或者生产环境等)添加进来,而这些都能在日后的调试工作中作为参考。大家可以从instance metadata service当中获取到这些信息。我所采用的方法是将这些信息作为引导脚本的组成部分,并将其以文件形式存储在文件系统当中(例如/env/az或者 /env/region等)。这样一来,我就用不着持续查询元数据服务来获取这些信息了。大家应当确保这些信息能够在实例重新启动时得到正确更新,毕竟我们都不希望在保存AMI时发现其中的数据还跟上次完全一样,这肯定属于非正常状况。

如果我们需要与AWS进行交互,请在当前语言中使用对应SDK。

千万不要试图自己动手。我当初就犯过这个错误,因为我认为自己只是单纯需要向S3上传内容,但随着后续服务的持续增加、我发现自己的决定简直愚蠢至极。AWS SDK的编写质量很高,能够自动处理验证、处理重试逻辑,而且由Amazon官方负责维护与迭代。此外,如果大家使用EC2 IAM角色(大家绝对应该这么做,这一点我们后面会进一步提到),那么该SDK将帮助我们自动获取到正确的证书。

利用工具查看应用程序日志。

大家应当采用管理员工具、系统日志查看器或者其它方案,从而帮助自己在无需在运行中实例内使用SSH的方式查看当前实时日志信息。如果大家拥有集中式日志记录系统(我强烈建议大家使用此类系统),那么当然希望能在不使用SSH的情况下完成日志内容查看任务。很明显,将SSH引入正处于运行状态的应用程序实例会引发诸多弊端。

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2020-03-02 18:28:49
国际资讯 亚马逊证实两名意大利员工感染新冠病毒
亚马逊表示,它还不清楚是否有美国员工感染了这种病毒。 <详情>
2020-03-02 17:43:51
云资讯 知名游戏直播平台利用AWS加速全球拓展,增强全球数千万用户的直播体验
亚马逊旗下公司Amazon Web Services, Inc. (AWS) 今天宣布,知名游戏直播公司虎牙选择了AWS作为其海外市场的优选云服务提供商,增强游戏直播体验,加速全球市场拓展。 <详情>
2020-02-27 09:43:19
国内资讯 光环新网去年净利8.21亿 云营收占比连续3年超70%
报告期内,光环新网主营业务云计算及相关服务和IDC(互联网数据中心)及其增值服务继续保持增长,云计算服务收入占全年总收入70%以上。 <详情>
2020-02-26 13:54:00
云资讯 AWS:云计算连续12Q保持30%以上增速
面对微软等主要竞争对手,AWS下一步发展也需要向ToB做更多转化,同时积极发展潜力巨大的中国云市场,培养健全具有差异化的生态体系。 <详情>
2020-02-19 13:14:00
云资讯 AWS透露:ML Solutions Lab咨询部门AI业务数据客户数达175家
AWS昨天分享了一些关于旗下咨询部门ML Solutions Lab人工智能业务增长的数据。ML Solutions Lab负责人、副总裁Michelle Lee在博客中透露,自2年前成立以来,ML Solutions L <详情>