Amazon SES 可以收信了...

之前 Amazon SES 只能拿來發信,現在可以收信了:「New – Receive and Process Incoming Email with Amazon SES」。

收信下來後可以放到 S3,也可以用 SNS 接,或是用 Lambda 處理。除此之外還有 Spam & Virus 檢查的功能...

一時間想不到用途 :o

AWS Lambda 的本地端測試工具

Twitter 上看到的工具:「Run AWS Lambda Functions on your local computers, for testing purposes」。可以在本地端測試 AWS Lambda 的程式碼:

Amazon SWF 可以透過 AWS Lambda 做事了...

Amazon Simple Workflow 先前會需要開一台機器起來做事,現在則可以透過 AWS Lambda 來處理了:「Trigger AWS Lambda Functions Using Amazon Simple Workflow」。

這樣有兩個好處,一個是 AWS Lambda 啟動速度快太多,最慢應該是在數秒內,相較於透過 Amazon EC2 的啟動快太多。

另外一個當然是成本考量,開一台機器的成本還是要算成一個小時,而 AWS Lambda 是以 100ms 計費。如果做的事情很少,用 AWS Lambda 的成本低太多。

對於輕量級的處理來說算是個很棒的改善... 當然本來就是要轉檔之類吃大量 CPU 的,還是要開機器比較好。

把 AWS 的紀錄串起來倒進 Elasticsearch,用 Kibana 呈現

在「CloudWatch Logs Subscription Consumer + Elasticsearch + Kibana Dashboards」這篇文章裡,AWS 官方給了很棒的 screenshot,用一堆服務包起來後可以得到這樣的效果,提供給有興趣的人:

DynamoDB Streams...

去年 (2014) 十一月時 AWS 推出了 DynamoDB Streams,像是 RDBMS 裡 trigger 的東西,不過當時還沒這麼方便,而且也是 preview 階段:「Sneak Preview – DynamoDB Streams」。

Once you enable it for a DynamoDB table, all changes (puts, updates, and deletes) made to the table are tracked on a rolling 24-hour basis.

而這個功能現在總算是開放讓一般人使用了,這次可以配合 AWS Lambda 一起使用,官方用了「DynamoDB Streams + Lambda = Database Triggers」的說明來解釋:「DynamoDB Update – Triggers (Streams + Lambda) + Cross-Region Replication App」。

另外這次也推出了 Cross-Region DynamoDB Replication,其實就是透過組合拳串起來:

This app runs on AWS Elastic Beanstalk and makes use of the EC2 Container Service, all launched via a AWS CloudFormation template.

AWS 推出 Amazon API Gateway

AWS 推出了「Amazon API Gateway – Build and Run Scalable Application Backends」,使得 Scalable API 又前進了一步。

API Gateway 可以直接將 HTTP Endpoint 接上 AWS Lambda 提供服務,並且也會自動接上 CloudFront,不過 CloudFront 不可選等級,目前看起來是最低的 Class 100,所以老問題還是沒解,如果不是用 168.95.1.1168.95.192.1,我們家的 IP 會被解去 ARN (Stockholm Arlanda Airport) XD

  4.|-- snuh-3201.hinet.net        0.0%    10    0.3   0.3   0.3   0.3   0.0
  5.|-- tpdt-3011.hinet.net        0.0%    10    6.7   9.0   4.8  12.5   2.8
  6.|-- r4101-s2.tp.hinet.net      0.0%    10    0.5   0.9   0.5   1.5   0.0
  7.|-- r4001-s2.tp.hinet.net      0.0%    10    3.8   1.1   0.5   3.8   1.2
  8.|-- r11-pa.us.hinet.net        0.0%    10  199.8 151.6 143.1 199.8  19.0
  9.|-- las-bb1-link.telia.net     0.0%    10  140.6 142.6 140.5 159.7   6.0
 10.|-- sjo-b21-link.telia.net     0.0%    10  141.6 142.1 141.5 146.1   1.2
 11.|-- nyk-bb2-link.telia.net     0.0%    10  217.0 218.9 217.0 224.0   2.6
 12.|-- kbn-bb4-link.telia.net     0.0%    10  305.7 305.8 305.7 306.2   0.0
 13.|-- s-bb4-link.telia.net       0.0%    10  316.4 316.4 316.4 316.6   0.0
 14.|-- s-b9-link.telia.net       10.0%    10  316.4 316.5 316.4 317.5   0.0
 15.|-- amazon-ic-300293-s-b9.c.t 10.0%    10  311.5 311.5 311.4 311.5   0.0
 16.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 17.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 18.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
 19.|-- server-54-230-96-67.arn1. 10.0%    10  311.5 311.8 311.5 313.2   0.4

除了使用提供的 url 以外 (HTTPS Endpoint),也可以接上自己的 domain (以及對應的 SSL certificate):

另外功能是產生 SDK,支援 iOSAndroid 以及 JavaScript 三種版本:

這樣又簡化了不少東西...

AWS Lambda 的系統環境

Eric Hammond 在「Exploring The AWS Lambda Runtime Environment」觀察了目前 AWS Lambda 的系統環境。

不過這只是好奇性質而已,Amazon 本來就不保證不會改變:

For the curious, here are some results. Please note that this is running on a preview and is in no way a guaranteed part of the environment of a Lambda function. Amazon could change any of it at any time, so don’t build production code using this information.

因為可以執行 shell command,所以什麼都可以做 XD

工具的說明在另外一篇:「lambdash: AWS Lambda Shell Hack」。

AWS Lambda:AWS 推出的 PaaS

官方的說明:「AWS Lambda - Run Code in the Cloud」,以及 Werner Vogels 的說明:「The Easiest Way to Compute in the Cloud – AWS Lambda」。

偏向 PaaS 類的服務,處理 worker 這塊的事情。技術面是以 JavaScript (node.js) 為基礎。

依照最近推出的產品以及描述,應該是配合 Container 技術做的。首先是依照記憶體用量而決定對應的 CPU、網路以及 I/O 的能力:

The context information for a function specifies the amount of memory needed to run it. You can set this to any desired value between 128 MB and 1 GB. The memory setting also determines the amount of CPU power, network bandwidth, and I/O bandwidth that are made available to the function.

process、thread、file descriptor 以及 local storage 的數量也是有管制的:

Each invocation of a function can make use of up to 256 processes or threads. It can consume up to 512 MB of local storage and up to 1,024 file descriptors. It can also create up to 10 simultaneous outbound network connections.

計價的方式:

You pay for compute time in units of 100 milliseconds and you pay for each request.

處理簡單的事情用的?在「AWS Lambda Walkthrough Command Line Companion」這邊已經有人寫出一些心得了,可以看看怎麼用 :o