RDS のテーブルデータを分析用テーブルにレプリケートする方法一覧
概要
RDS のテーブルデータを分析用テーブルにレプリケートする方法が多数あったのでその一覧をまとめます。
RDS をユーザ影響を極力低くすべく、分析用テーブルへレプリケートして、分析する方法が多々あったので私見ですが Pros/Cons をまとめます。
前提
- アプリケーション DB を配置する AWS アカウントとデータ基盤を構築する AWS アカウントは分けます
- Glue テーブルは iceberg 形式を採用します
RDS のテーブルデータを分析用テーブルにレプリケートする方法が多数あったのでその一覧をまとめます。
RDS をユーザ影響を極力低くすべく、分析用テーブルへレプリケートして、分析する方法が多々あったので私見ですが Pros/Cons をまとめます。
Glue Job で DB データを取得していた際に Glue Job Bookmark を利用していた際に問題があったので、その際の対応を備忘録として残しておきます。
Glue Job で DB やログ情報を取り込みしている場合、どこまで取り込んだかを記録する Bookmark 機能 があります。
DB データを毎回全てダンプするよりも差分のみ抽出(増分エクスポート: Incremental Export)でき、データの取り込み量も抑えられ、Glue Job の実行時間が短縮されます。
Glue Job は実行時間に対して従量課金されるのでコストも抑制できるメリットがあります。
sam build --use-container
でビルド実行した際に以下エラーが発生しました。
1 | Error: Docker is unreachable. Docker needs to be running to build inside a container. |
2024.05.22 より、ALB のアクセスログを Athena でクエリ実行してみると空の行が返るようになりました。
原因を調査してみるとどうやら ALB アクセスログに以下の項目が追加され、フォーマットが変更された為のようです。
テーブルを再作成することで事なきを得ました。
※ ALB はパーティションして利用しており、公式とはやや異なるテーブル定義にしています。
1 | CREATE EXTERNAL TABLE `<table name>`( |
以上
参考になれば幸いです。
AWS リソースの年間予約購入について備忘録です。
Reserved Instance
Savings Plans
CloudFront Security Bundle
備忘録です。
複数 AWS アカウントで起動中のリソース一覧作りたい時によく利用しています。
1 |
|
AWS CLI で EC2 に設定されたタグから特定のキーを指定し、その値をリストするスクリプトです。
以下は Key = Name でその値を取得しています。
EC2 インスタンス名の一覧を取得したい意図です。
1 | aws ec2 describe-instances --query 'Reservations[*].Instances[*].Tags[?Key == `Name`].Value' --output text |
以上
参考になれば幸いです。
terraform はバージョンアップ頻度が高く、
プロジェクトによってバージョン差分が生じるので
複数バージョンを管理できると運用がスムーズです。
SAM プロジェクトで管理する API Gateway について
AWS Config rule: api-gw-execution-logging-enabled
に対応すべく、
アクセスログを有効化した際にハマった話です。
Events.*.Type = Api
で作成した API Gateway では SAM 上でアクセスログ有効化の設定ができません。
どのようにしたら API Gateway のアクセスログ有効化できるか調査しました。
以前は CloudWatch LogGroup をインポートしましたが
今回は IAM Role をインポートの設定例です。
基本手順は CloudWatch LogGroup と同様ですが、
異なる部分だけ記載します。
1 | ... |
API Gateway のアクセスログ管理用ロググループへログを配信する IAM Role をインポートします。