#aws

RDSを定期的に停止するLambdaを作る

手動起動は大変なので

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

CloudWatchアラームを一時的に無効化する

AWS CLIで設定する必要がある

Alexaに気温と二酸化炭素濃度を教えてもらう

「Alexa、気温」でセンサー情報を教えてくれるようになった

CloudWatchのカスタムメトリクスを減らす

あまりチェックしないセンサー値の送信を止めた

AWS SAMで作ったLambdaアプリをCircleCIでデプロイする

circleci/aws-serverlessのOrbを使った

Nodejs12のLambdaでawscliを使う

aws-lambda-layer-awscliを使う

Product Advertising API version 5.0

3/9にv4が終了するらしいので急いで移行する必要がある

BME280センサ情報をAWS IoTで管理してChatbotでSlackに通知する

AWS IoTでデータを管理して不快指数がしきい値を超えたらSlackにアラート通知をするようにした

AWS CDK使用時にリージョンを指定する

new Stackの際にenvで指定できる

AWS Amplify Handsonをやってみる

とりあえず便利ということは分かった

CloudFront経由でS3の静的コンテンツ配信をしたら307リダイレクトになってしまった

即時反映したい場合はus-east-1にバケットを作る

CloudWatchメトリクスのグラフ画像をSlackに定期通知するLambdaを作る

毎回マネージメントコンソールにログインしなくても昨夜の振り返りができるようにした

CloudWatch Logsのログ保存期間を一括変更

手動で一つずつ設定するのが大変だったのでスクリプトで一括変更した

Fargate ECSで1回限りのバッチ処理を実行する

run-taskコマンドを使う

AWS SAMで環境変数を扱う

template.yamlではParametersの定義のみをしておいて、deploy時に値を設定するようにすればできた

localstackでSQSを使う際に初期化スクリプトを流す

docker-entrypoint-initaws.d以下に初期化スクリプトを配置

AWS SESでバウンスメールのテストを行う

公式で提供されているテスト用メールアドレスを使う

s3の署名付きURLが有効期限より前に見れなくなってしまう

IAMロールではなくIAMユーザの権限でURLを生成する必要があった

Github ActionでCloudfrontのキャッシュをクリアする

デプロイ後にキャッシュクリアを行うように設定

CDK aws-lambda-nodejsのビルド時間を短縮する

Parcel v2.0.0-beta.1を使ってローカルでバンドルする

direnvでMFA必須のスイッチロールアカウントのAWS_ACCESS_KEY_IDを設定する

direnv allowを実行する際にMFA認証コードを入力するようにした

Lambdaでaws cli configureを設定できるようにする

AWS_CONFIG_FILE=/tmp/.aws/configを設定した

AWS LambdaでSentryを使う

Sentry.flushを使う必要があった

CDKでRDS(mysql)のslowlogをCloudWatch Logsに出力する

パラメータグループとcloudwatchLogsExportsを設定

CDKでのECS環境構築の際にContainer Insightsを有効にする

containerInsightsフラグを有効にすれば設定できる

AWS SESでメールを受信してGmailに転送する

独自ドメインメールの送受信ができるようになった

AWSのコスト異常検出を設定する

意図しない課金を防ぐためにとりあえず設定しておくと良さそう

CloudWatch Eventsで日本時刻(JST)の月初に実行したい

Lオプションの存在を知った

MFA必須のスイッチロールアカウントでaws cliを使う

switch role用のprofileを追加する

Amazon API Gatewayのタイムアウト設定は最大29秒まで

上限緩和もできないので注意

マネージメントコンソール上のエディタでLambdaのコードを書く際にnpmライブラリを追加したい

ローカルでライブラリをインストールしてからインポートする必要があった

Step Functionsステートマシンから別のStep Functionsを呼び出す

複雑なステートマシンを小さいステートマシンに分割しておけばテストと確認がやりやすくなる