こんにちは、ちゃりおです。
みなさん、Lambda使ってますか。
Lambdaはサーバレスのアプリケーション開発以外にも、cronぽい処理で使うこともあると思います。
僕もちょっとした処理をLambdaで書いてました。
AWSのアップデートで使わなくてもできるようになり、不要になったLambdaも数知れずですw
今回は、以前Lambdaを使わないとできなかったけどAWSの機能でできるようになったものを紹介します。
EC2インスタンスの自動起動・停止
料金節約の観点からも、使っていない時間帯はEC2を停止しておきたいです。
cronぽいLambdaで一番最初に思いつくのは、こちらじゃないでしょうか。
Lambdaで書くと
import boto3
instances = ['X-XXXXXXXXX']
def lambda_handler(event, context):
ec2 = boto3.client("ec2")
ec2.stop_instances(InstanceIds=instances)
こんな感じのコードを書いて、CloudwatchEventで定期実行するとか。
ec2-schedulerを使う
ec2-schedulerを使うと簡単にできます。
AWS Answerで紹介されています。
![スケジューラー](https://chariosan.com/wp-content/uploads/2019/03/Instance_Scheduler___AWS_Solutions-1024x537.png)
DynamoDBにスケジュールを書いて、EC2にタグを付けると自動起動停止が実現できます。
デプロイもCloudformationが用意されているので簡単です。
RDSの自動起動停止もできます。(内部的にはlambda使っているので、正確には自分で書かなくて良くなったですね)
ec2-schedulerでEC2を定期的に停止してコストを節約しよう
EC2インスタンスのスナップショットの自動取得
バックアップは自動で取得しておきたいものです。
Lambdaで書くと
スナップショットの取得は、「EC2インスタンスの自動起動・停止」と同じ感じでできます。
スナップショットを取得するLambdaを作って、CloudwatchEventで定期実行します。
しかし、バージョン管理もしたいです。自分でその仕組まで書くのは結構面倒です。
DLMを使う
![Amazon_Data_Lifecycle_Manager_](https://chariosan.com/wp-content/uploads/2019/03/Amazon_Data_Lifecycle_Manager_-1024x596.png)
去年の8月くらいにリリースされました。
定期的にスナップショットを取得して、世代管理もしてくれるサービスです。
マネジメントコンソールから簡単に設定できます。
DLM自体の料金はかかりません。別途EBSやスナップショットの料金は発生します。
【新サービス】EBSスナップショットのライフサイクルを自動化するAmazon DLMが登場!
RDSのログをCloudwatchLogsに出力
「できたらCloudwatchLogsにLogは統合したいよね」という話がありました。
Lambdaで書くと
以前はPostgreはCloudwatchLogsにログを出力できなかったです。
RDSのエラーログを定期的にCloudwatchLogsに出力する処理を書きました。
![](https://chariosan.com/wp-content/uploads/2018/04/f2666e7244b254df00dc4b5383cff14b-320x180.png)
RDSの機能でできるようになった
去年の12月にできるようになりました。
RDSのコンソールから可能です。既存のインスタンスにも追加できます。
![rds](https://chariosan.com/wp-content/uploads/2019/03/ec6322a2660a33db83662294b374191d-1024x367.png)
Amazon RDS が Amazon CloudWatch Logs への PostgreSQL ログファイルの発行をサポート
[アップデート]RDS for PostgreSQLのログをCloudWatch Logsに出力できるようになりました
まとめ
アップデートで、より簡単にできるようになるのはAWSでよくあります。
当たり前のことですが、以下を意識していきたいです。
- アップデートをこまめに確認する
- 検索する際は、更新日時に注意する
![](https://chariosan.com/wp-content/uploads/2019/02/0b9c0a2e40ae0f9b61fa31ce57bab0e9-320x180.png)
![](https://chariosan.com/wp-content/uploads/2019/02/56c827de6b5e0f953f3ff15cfb8590c2-320x180.png)
![aws saa](https://chariosan.com/wp-content/uploads/2018/08/aws-saa-min-320x180.png)