ablog

不器用で落着きのない技術者のメモ

2019-10-01から1ヶ月間の記事一覧

S3 で特定のプリフィックス以下のオブジェクトの過去バージョンを削除する

AWS

S3 で特定のプリフィックス以下のオブジェクトの過去バージョンを削除する。以下はバケット test-bucket の test/ 以下のオブジェクトの過去バージョンを削除するケース。UTC 0:00 になると削除される。 lifecycle.json を作成する { "Rules": [ { "Status":…

S3 オブジェクトの過去バージョンを一括削除する

AWS

バージョニングを有効化している S3 バケットでオブジェクトの過去バージョンを一括削除する手順。 任意の S3 バケットの過去バージョンを確認する。 % aws s3api list-object-versions --bucket test-bucket|jq -r '.Versions[]|select(.IsLatest==false)|@…

Athena で改行を含む CSV を扱いたい場合は Glue ジョブで Parquet に変換する

AWS

データの中身に改行を含む CSV を Athena でクエリすると正しく扱えなかったが、Glue ジョブで CSV を Parquet に変換すると改行を含むデータを扱うことができた。おそらく OpenCSVSerDe は改行に対応していないが、Parquet SerDe は改行に対応しているから…

S3 に 1MB のオブジェクトを1億個作成する手順

AWS

S3 に 1MB のオブジェクトを1億個作成する手順(実際にはやらない)。 s3-cp-100m.sh #!/bin/bash date dd if=/dev/urandom of=1mb.dat bs=1m count=1 aws s3 cp 1mb.dat s3://az-cp-src/ date seq -w 1 100000000|xargs -t -P512 -I{} aws s3 cp s3://az-cp…

Route53 で特定のホストゾーンとトラフィックポリシーのみ編集できるIAMポリシー

AWS

IAMユーザー/ロールに対して、特定のホストゾーンと 特定のホストゾーンとトラフィックポリシーのみ編集できるIAMポリシー { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPublicHostedZonePermissions", "Effect": "Allow", "Action": [ "rout…

PostgreSQLのオプティマイザ統計情報を確認する

PostgreSQL のオプティマイザ統計情報を確認する pg_stat_user_tables n_live_tup: 行数 n_dead_tup: 不要な(ガベージとなっている)行数 last_analyze: ANALYZE された日時 aurora-postgres107 awsuser 13:44 => select * from pg_stat_user_tables; relid |…

Lambda + node.js のデバッグでオブジェクトの中身を見る

AWS

util.inspect を使って、console.log(util.inspect(,false,null)) とするとオブジェクトの中身を CloudWatch Logs に出力できる。 'use strict'; const AWS = require('aws-sdk'); const util = require('util'); // util モジュールを読み込む exports.hand…

DynamoDB Streams + AWS Lambda Triggers で連携すると Item は event オブジェクトで渡される

AWS

DynamoDB Streams + AWS Lambda Triggers で連携すると Item のデータは event オブジェクトで渡されることを確認した。 Lambda (node.js) のコード 'use strict'; const AWS = require('aws-sdk'); const util = require('util'); // util モジュールを読み…

DynamoDB の AWS 管理 CMK のキーポリシー

AWS

aws/dynamodb のキーIDを確認 $ aws kms list-aliases|jq -r '.Aliases[]|select(.AliasName=="alias/aws/dynamodb")' { "AliasArn": "arn:aws:kms:ap-northeast-1:123456780123:alias/aws/dynamodb", "AliasName": "alias/aws/dynamodb", "TargetKeyId": "9…

RDSのスナップショット成功を確認する

AWS

イベントサブスクリプション RDS のスナップショット作成はイベントサブスクリプションで通知することができる。 カテゴリ RDS イベント ID 説明 作成 RDS-EVENT-0042 手動 DB スナップショットが作成されました。 Amazon RDS イベント通知の使用 - Amazon R…

CLoudWatch Logs のロググループを S3 にエクスポートする

AWS

S3バケットを作成する バケット名: exp-cloudwatchlogs バケットポリシー { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.ap-northeast-1.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "…

VPCE Policy Of The Year

AWS

なるほどーと思ったのでメモ。ちゃむれおさん(c)。 # S3の暗号化方式 クロスアカウントアクセス VPCEポリシーによる制御 1 SSE-S3 (AES-256) ○ X 2 SSE-KMS AWS/S3 ☓ X 3 SSE-KMS AWS/Custom ○ ○ VPCエンドポイントポリシー { "Version": "2008-10-17", "Sta…

pgbench でカスタムクエリを実行する

AWS

準備 pgbench(PostgreSQL)をインストールする。 $ sudo yum -y install postgresql $ sudo yum -y install postgresql-contrib pgbench でデータを登録する。 $ pgbench -i -s 10000 -U awsuser -h aurora-postgres107.cluster-************.ap-northeast-1.…

クロスアカウントS3バケット間コピー時にコピー元の CloudTrail に記録されるログ

AWS

クロスアカウントS3バケット間コピー時にコピー元AWSアカウントの CloudTrail にログに記録されるログを調べたメモ。コピー先アカウントの EC2 から AWS CLI(aws s3 cp) でオブジェクトをコピーしてコピー元アカウントの CloudTrail をダウンロードして jq …