自宅サーバ/VPS/クラウド– category –
-
自宅サーバ/VPS/クラウド
DynamoDBの多対多で隣接リストやった時の冗長性対策どうしよう
DynamoDBウキウキで初めて早速引っかかる問題の一つが多対多とn+1問題だと思うんだが、これについてはAWSのドキュメントに一応解決方法が乗っている。それについて書いた記事がこれ→「DynamoDBで多対多のテーブル設計 – 或る阿呆の記」。 隣接リストというデザインパターンで、初めて見た時はギョッとしたけど、実際やってみるとたしかに効率... -
自宅サーバ/VPS/クラウド
Lambda関数でDeadLetterQueue(DLQ)を試す
AWSのLambda関数をイベントで起動した時、複数回エラーを起こしたら、DeadLetterQueue、すなわちDLQを飛ばしたい。DLQを試すもの。Cloudformation使う。DLQはSNSとSQSが指定できるが、今回はSNSを使う。 系 以下の系を試す。 CloudWatch -> Lambda -(error)-> SNS -> Email やってみる CloudWatchで1分ごとにLambda関数を起動するよ... -
自宅サーバ/VPS/クラウド
AWS Lambdaのロギングを考える
(追記)AWS Lambda PowertoolsのLogger使え ロギングをどうするかで困っていた。AWS Lambdaでは、プリント出力したものがCloudWatchに保存されてとても便利なのだが、考えもなしにとりあえずポンポン入れていたところ、確かに情報はあるので追えないことはないんだが、地道に時間にあたりをつけて検索するなど、非常に泥臭い作業が要求され... -
自宅サーバ/VPS/クラウド
AWS Lambdaをデプロイした時のダウンタイム
AWS Lambdaをデプロイした時、ダウンタイムは発生するのかについて。 直接答えとなる記述をドキュメントで見つけることができていないのだが、AWSフォーラムの開発者による回答を見るに、新旧両方のバージョンが動作する時間はあるものの、ダウンタイム自体は理屈のうえではなさそう。 公式フォーラムの回答 「AWS Developer Forums: What ha... -
自宅サーバ/VPS/クラウド
nginx + certbot + Let’s Encrypt で TLSv1.0やTLSv1.1が無効化できない時
TLSv1.0やTLSv1.1は既知の脆弱性があるために、各種ブラウザでも対応が打ち切られています(参考「ついにTLS 1.0/1.1の無効化が決定!影響や確認・対応方法とは? | さくらのSSL」)。なので、もうサーバー側で対応する理由はないわけで、無効化する必要があるのですが、nginxの設定をなんぼいじっても無効化できないと思ったら、certbotでLe... -
自宅サーバ/VPS/クラウド
DynamoDB から DocumentClient で get() した StringSet型 の値を取り出す
AWS DynamoDBで使える型の一つに、StringSetがある。これは文字列の集合だ。JavaScriptでもES6以降にはSet型があるので、それと対応していればよいのだが、残念ながらしていない。 といっても、値を取り出すには、.values でアクセスすればよいだけ。というメモ。普段Python使っているのですぐに忘れる。 環境 node.js 12.20.0 aws-sdk 2.580... -
自宅サーバ/VPS/クラウド
AWS Lambdaでイベント起動した時にeventに渡されるパラメータあれこれ
AWSのLambda関数で、S3とかSNSとかのイベントで発火させる時に、event変数に渡されるパラメータのjson形式についてのまとめ。 CloudWatch Events 定期実行のやつ。 { "version": "0", "id": "xxxx", "detail-type": "Scheduled Event", "source": "aws.events", "account": "xxxx", "time": "2021-06-10T06:45:27Z", "region": "ap-northeast... -
自宅サーバ/VPS/クラウド
AWS Lambda (Python 3.8)から Amazon Elasticsearchを使う(LambdaはSAMで)
LambdaからAmazon Elasticsearchにクエリを投げるためのテンプレメモ。LambdaはSAMで用意するが、Amazon Elasticsearchのドメインは事前に準備しておく。RuntimeはPython 3.8。Elasticsearchの接続にはelasticsearchのモジュールを利用する。 権限周りとかけっこうたいへん。 前提条件 SAM CLI 1.6.2 LambdaのRuntimeはPython 3.8 今回はSNS... -
自宅サーバ/VPS/クラウド
AWS SAM CLIでSNSからLambdaを起動する(Python 3.8)、S3からSNSに通知する
AWS SAM CLIを使って、 SNS -> Lambda (Python3.8) 起動できるようなテンプレートのメモ。ついでに、S3のイベントでSNSに通知するような場合についても記述する。 環境 AWS SAM CLI 1.6.2 LambdaのRuntimeはPython 3.8 SNS -> Lambda node12.xだとSNS起動のテンプレートが用意されているのだが、Pythonでは用意されていない。まぁだい... -
自宅サーバ/VPS/クラウド
Grafana on EC2 で Let’s Encrypt 使ってSSL
AWSでGrafana用のEC2インスタンスをたてている。AWSならば、ELB経由にすると、ELBにACMで発行した証明書を割り当てられて楽なのだが、今回は漢のEC21本立ちなので、Let's Encrypt を使って発行することにした。 grafana-serverでcertbotコマンドがうまくいかなかったので、nginxのリバースプロキシ機能を使い、nginx経由にしている。 環境 AW...