ablog

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

AWS

NLB のアクセスログ出力先に既存 S3 バケットを指定すると "Access Denied for bucket: ... Please " と怒られる

AWS

事象 NLB のアクセスログ出力先に既存の S3 バケットを指定すると以下のエラーが発生する。 Access Denied for bucket: <S3バケット名>. Please check S3bucket permission nlb 原因 サービスアカウントからS3バケットへの書込み権限がないため。 解決策 S3 のバケットポリ</s3バケット名>…

NLB->Pgpool-II で Auto Scaling してみる

AWS

負荷をかける # ap-northeast-1a $ nohup pgbench -Sn -c 40 -j 40 -t 1000000 -U awsuser -h pgpool-nlb-******.elb.ap-northeast-1.amazonaws.com -d writer -p 9999 > /dev/null 2>&1 & # ap-northeast-1c $ nohup pgbench -Sn -c 40 -j 40 -t 1000000 -U…

Pgpool-II で参照クエリを全て Reader に振る

AWS

Pgpool-II で backend_hostname0 に Writer、backend_hostname1 に Reader を指定、load_balance_mode = on にして backend_weight0 = 0、backend_weight1 = 1 にすることで、参照クエリを全て Reader に振ることができる。また、/*NO LOAD BALANCE*/ ヒント…

Amazon Linux 2 に PostgreSQL 11 をインストールする

Yum リポジトリをインストール $ sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm pgdg-redhat-all.repo の $releasever を 7 に置換 $ cd /etc/yum.repos.d $ sudo per…

RI UtilizationとRI Coverageの違い

AWS

https://d1.awsstatic.com/webinars/jp/pdf/services/20200129_BlackBelt_CostExplorer.pdf P.32

AWS Budgets についてのメモ

AWS

blog.serverworks.co.jp AWS Budgets では、サービスの使用量、サービスコスト、インスタンスの予約を計画できます。また、予算を使用して、以下の情報を確認できます。 お客様のプランが予算額または無料利用枠の制限にどれだけ近いか 最新の使用状況 (リザ…

ルートテーブル変更に必要な IAM 権限

AWS

Pgpool-II on EC2 でルートテーブルの書換えでフェイルオーバーする際に必要な IAM 権限は ec2:CreateRoute と ec2:ReplaceRoute。 https://www.sraoss.co.jp/event_seminar/2017/jpug_20171103_pgpool_aws.pdf IAMポリシーサンプル IAM権限 ec2:CreateRoute…

AWS CLI で Amazon RDS でデフォルトから変更したパラメータだけを表示する

AWS

AWS CLI で Amazon RDS でデフォルトから変更したパラメータだけを表示する。 DB クラスターパラメータグループ $ aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name aurora-mysql57-cluster-custom|jq -r '.Parameters[]|select(.…

NLB の名前解決について

AWS

クロスゾーン負荷分散無効で、NLB でラウンドロビンで名前解決される様を確認したメモ。 $ for i in {1..100}; do dig +short pgpool-II-nlb-******.elb.ap-northeast-1.amazonaws.com|head -1; done|sort|uniq -c 50 172.**.*.120 50 172.**.*.79

インターネット接続のない Amazon Linux 2 に Pgpool-II をインストールする

AWS

インターネット接続可能な Amazon Linux 2 で Pgpool-II と依存パッケージをダウンロード /etc/yum.conf で keepcache=1 に設定 $ sudo vi /etc/yum.conf keepcache=1 Pgpool-II をインストール & ダウンロード $ sudo yum install -y https://www.pgpool.ne…

Amazon Linux 2 に yum で Pgpool-II をインストールしようとすると "rhel-2-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found" と怒られる

AWS

事象 Amazon Linux 2 に yum で Pgpool-II をインストールしようとすると "rhel-2-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found" と怒られる。 $ sudo yum install -y https://www.pgpool.net/yum/rpms/4.1/redhat/rhel-7-x86_64/pg…

Web/AP ->NLB -> Pgpool-II on EC2 -> Aurora PostgreSQL 構成メモ

AWS

Pgpool-II EC2 インスタンス psql をインストール $ sudo yum -y install gcc $ sudo yum install -y postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs Aurora に接続してみる $ psql "host=aurora-postgres117.cluster-*…

同じ Organization のメンバーアカウントからのアクセスを許可する S3 バケットポリシー

AWS

Organization の全てのメンバーアカウントや特定の OU からのみのアクセスを許可する S3 バケットポリシー。 S3 バケットポリシー例 同じ Organization のメンバーアカウントからのアクセスを許可する { "Version": "2012-10-17", "Statement": [ { "Sid": "…

別の AWS アカウントからスイッチロールして参照専用で使う IAM ロールの作成手順

AWS

他のAWSアカウントからスイッチロールするための参照専用IAMロールを作成する手順。 マネジメントコンソールから[IAM]-[ロール]-[ロールの作成]を選択。 [別のAWSアカウント]を選択、スイッチロール元アカウントIDを1つ入力。 スイッチロール元アカウントで …

インターネット接続のない Amazon Linux 2 に OpenJDK をインストールする

AWS

インターネット接続可能な Amazon Linux 2 で OpenJDK と依存パッケージをダウンロード /etc/yum.conf で keepcache=1 に設定 $ sudo vi /etc/yum.conf keepcache=1 OpenJDK をインストール & ダウンロード $ sudo yum -y install java-1.8.0-openjdk-devel.…

EC2 の起動・停止だけする IAM ポリシー

AWS

EC2 の起動・停止だけする IAM ポリシー。EC2 で Env タグが PoC になっているインスタンスの起動・停止が可能。 IAMポリシー(EC2StopSartPolicy) { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeInstances" ], "Resource": "*", …

Amazon Linux 2 に SQLcl をインストールする

Amazon Linux 2 に SQLcl をインストールしたメモ。 インストール Open JDK 1.8.0 をインストール $ sudo su - ec2-user $ sudo yum -y install java-1.8.0-openjdk-devel.x86_64 $ java -version openjdk version "1.8.0_252" OpenJDK Runtime Environment …

Lambda で Secrets Manager から取得した情報をキャッシュする

AWS

Secrets Manager は Rate limit for DescribeSecret/GetSecretValue API requests の上限が2000(上限緩和不可)という場合、Lambda の実行が2000回/秒を超える場合どうするかという問題がある。そこで、Lambda の handler 外に書いたコードは、コールドスタ…

Redshift の UNLOAD でエスケープなしでクエリを書く

AWS

Redshift の UNLOAD でエスケープなしでクエリを書く 書式 unload ($$ ここにクエリを書く $$) to 's3://redshitf-unload/audit_log_' iam_role 'arn:aws:iam::123456789012:role/redshift-spectrum-s3-fullaccess' header format csv gzip parallel off all…

Redshift の UNLOAD で1ファイルにまとめて出力する

AWS

UNLOAD コマンドで PARALLEL OFF オプションをつけると1ファイルにまとめて出力することができる。 unload ('select * from stl_query') to 's3://redshift-unload/stl_query_' iam_role 'arn:aws:iam::123456789012:role/redshift-spectrum-s3-fullaccess' …

Glueジョブのブックマーク

AWS

Amazon S3 入力ソースの場合、AWS Glue ジョブのブックマークではオブジェクトの最終更新日時を確認して、どのオブジェクトを再処理する必要があるのかを確認します。入力ソースデータが最後のジョブ実行以降に変更されている場合、ジョブを再度実行すると、…

1つの Lambda 関数に いくつの SQS から Lambda トリガーとして設定できるか

AWS

1つの Lambda 関数にいくつの SQS から Lambda トリガーとして設定できるか。特に意味はない。 for i in {1..1000} do sqs_url=`aws sqs create-queue --queue-name LambdaQueue$(printf "%03d" ${i}) | jq -r '@text "\(.QueueUrl)"'` sqs_arn=`aws sqs get…

検証のため S3 バケットへの Put を禁止したバケットポリシー

AWS

検証のため S3 バケットへの Put を禁止したバケットポリシーのサンプル。 { "Version": "2012-10-17", "Statement": [ { "Sid": "deny-put", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::aurora-postgres-…

Amazon SageMaker 機械学習エンジニア向け体験ハンズオンを試してみた

AWS

AWS Hands On Amazon SageMaker On Demand | AWS を試してみた。

QuickSight で S3 のデータを参照しようとすると「マニフェストファイルを有効な JSON として解析することはできません。」と怒られる

AWS

事象 QuickSight で [新しい分析]-[新しいデータセット] で S3 のデータを参照しようとすると「マニフェストファイルを有効な JSON として解析することはできません。」と怒られる 原因 ファイルが BOM付き UTF8 になっていたため。 $ file test.json test.j…

Amazon QuickSight で S3 のデータを可視化

AWS

Amazon QuickSight で S3 のデータを可視化してみた。 データの準備 住所データCSV【住所.jp】 から csv_zenkoku.zip をダウンロードする。 解凍して、UTF8 に変換する(macOS)。 $ brew install nkf $ unzip csv_26kyouto.zip $ nkf -Lw zenkoku.csv > zen…

Glue ジョブでのサイズの大きい gzip ファイルの解凍について

AWS

メモ What could be the problem? The first thing I looked at was whether the compression type for the data was the problem. GZip is a non splittable compression type, so it is likely the excess time is from uncompression of the data. (中略…

Aurora Postgres->KDS->KFH->S3 に出力したログを復号して CSV に変換する Python スクリプト

AWS

Amazon Linux 2 にパッケージをインストール sudo yum -y install gcc sudo yum -y install python-devel Python のモジュールをインストール pip install boto3 pip install aws-encryption-sdk pip install pycrypto pip install dataclasses pip install …

Lambda の同時実行数を1 にして並行実行してみる

AWS

AWS マネジメントコンソールで同時実行数を 1 に設定する。 並行で実行する for i in {1..100} do aws lambda invoke --function-name testLambdaFunction output_${i}.txt 2>&1 & done; TooManyRequestsException が発生し、4 回リトライして実行できない場…

Glue でクロールすると "Service: Amazon S3; Status Code: 403 Error Code AccessDenied" と怒られる

AWS

事象 AWS Glue Crawler でクロールすると "Error Access Denied (Service: Amazon S3; Status Code: 403; Error Code AccessDenied; Request ID: ..." と怒られる。 IAMポリシー、KMS キーポリシー、S3 バケットポリシーでは必要な権限は付与されている。 [8…