ablog

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

2021-09-01から1ヶ月間の記事一覧

Laravel からクラスターモード有効な ElastiCache(Redis) へのアクセスでタイムアウトが発生する

AWS

事象 Laravel からクラスターモード有効な ElastiCache(Redis) へのアクセスでタイムアウトが発生する 解決策 Laravel の database.php を以下の通り設定 'redis' => [ 'client' => env('REDIS_CLIENT', 'predis'), 'options' => [ 'cluster' => env('REDIS_…

Aurora PostgreSQL に RDS Proxy 経由で同時多重でクエリを発行中に Reader インスタンスを削除してみる

AWS

Aurora PostgreSQL に RDS Proxy 経由で同時多重でクエリを発行中に Reader インスタンスを削除すると、クエリでエラーが発生するか確認してみた。 To Do pgbench で -d オプション付きで試す。 検証手順 psql で接続する $ psql -h apg117-2-test-read-only…

RDS Proxy 経由で Aurora の Reader エンドポイントに同時多重でクエリを発行して均等分散することを確認した

AWS

Aurora PostgreSQL の Reader エンドポイントでクエリが均等分散しない場合 - ablog について RDS Proxy 経由だとどうだろうと思って検証してみたら、概ね均等分散してくれてた。 検証手順 psql で接続する $ psql -h apg117-2-test-read-only.endpoint.prox…

pcp_detach_node -g で既存セッションに影響なくバックエンドのDBを切り離せるか確認した

確認したいこと pcp_detach_node -g で既存セッションに影響なくバックエンドのDBを切り離せるか デタッチ実行後に新規にクエリに振分けられ、セッションがなくなるまでデタッチされない pcp_detach_node だと強制的にデタッチされるが既存セッションに影響…

PostgreSQL の Transaction ID(XID)について

aws.amazon.com cs.wingarc.com qiita.com tihiro.hatenablog.com www.postgresql.jp

Pgpool-II に PostgreSQL をデタッチ/アタッチする

Pgpool-II に PostgreSQL をデタッチ/アタッチしてみたメモ。 状態を確認する $ psql "host=localhost dbname=postgres port=9999 user=awsuser" psql (9.2.24, server 12.4) WARNING: psql version 9.2, server version 12.0. Some psql features might no…

Aurora のクラスターパラメータグループの特定のパラメータ値をリセットする

AWS CLI でリセットすることができる 以下はパラメータグループ "aurora-postgresql11-custom-cluster" の "log_min_duration_statement" をリセットする例 $ aws rds reset-db-cluster-parameter-group --db-cluster-parameter-group-name aurora-postgresq…

EC2のネットワーク帯域のベースラインの調べ方

AWS

以下のようにドキュメントに記載されている。 General purpose instances - Amazon Elastic Compute Cloud 参考 † これらのインスタンスでは、ネットワーク I/O クレジットメカニズムを使用しながら、帯域幅の平均使用率に基づき、ネットワーク帯域幅をイン…

Recovery time will vary with the amount of data to be recovered

AWS

2016年4月19日 8:49:39 UTC+9 Recovery of the DB instance has started. Recovery time will vary with the amount of data to be recovered.(中略)RDS では、内部でDB ノードのモニタリングを行っておりますが、DB ノード等に問題が検知された場合は復旧…

S3 アクセスポイント経由と特定のIAMロールのみのアクセスを許可するバケットポリシー

AWS

S3 アクセスポイント経由と特定のIAMロールのみのアクセスを許可するバケットポリシーをメモ。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "*", "Resource": [ "arn:aws:s3:::s3-bucket-name"…

CloudFormation で ElastiCache(Redis) をクラスターモード有効で作成する

AWS

Resources: # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html RedisCluster: Type: AWS::ElastiCache::ReplicationGroup Properties: AutoMinorVersionUpgrade: true # enable Cluster Mo…

postgresql.conf で設定可能なパラメータ一覧を確認する方法

PostgreSQLの設定は多くの異なる方法で設定することができます。 しかし普通はpostgresql.confファイルで設定することになるでしょう。 固有のオプションはリリースごとに異なります。 使用中のPostgreSQLのsrc/backend/utils/misc/guc.cというソースコード…

Aurora PostgreSQL のリストア時間の計測

AWS

あくまで参考値ですが、ちょっと計測してみた。 準備 pgbench でデータを投入する $ pgbench -i -s 1000 -U awsuser -h aurora-postgres124.cluster-********.ap-northeast-1.rds.amazonaws.com -d postgres dropping old tables... creating tables... gene…

Aurora PostgreSQL の DR 対策

AWS

Aurora PostgreSQL–based DB clusters don't support Aurora Replicas in different AWS Regions. That means you can't configure your Aurora PostgreSQL DB cluster for cross-region replication. However, you can scale reads and achieve high availa…

Apache ab で Web サイトに負荷をかける

インストール $ sudo yum -y install httpd 負荷をかける $ ab -k -n 9000000 -c 1000 http://internal-alb-***-az5-app-********.ap-northeast-1.elb.amazonaws.com/

セキュリティグループ変更時に "ou may not specify a referenced group id for an existing IPv4 CIDR rule" と怒られる

AWS

エラーが出るケース セキュリティーグループのソースを変更するようなケースで、エラーが出ます。 例えば、ソースの設定を 0.0.0.0/0 のように設定していたセキュリティーグループで、ソースをセキュリティグループID(sg-xxxxxxxx)に変更するケースです。(E…

bash のヒアドキュメントで変数が展開されないようにする

ヒアドキュメントの中でも""で括った文字列リテラルと同様、 変数展開やコマンド置換が行われます。つまり$MY_VARや$(date)と書くといつもと同じように展開されます。これを抑止する(=''で括ったときのように扱う)にはEOSの部分を下記のようにクォートします…

Docker イメージを作成して、ECR に push する

AWS

EC2インスタンス(Amazon Linux 2)を作成して、Docker Image を作成して、ECR に push したメモ。 Docker をインストール/起動する $ sudo yum -y update $ sudo yum -y install docker $ sudo systemctl start docker Docker イメージを作成する $ mkdir …

MX ERGO MXTB1s の充電・Bluetooth接続・操作方法

新型トラックボールマウス・MX ERGO(MXTB1s)を購入したのでレビューします!使い心地最高!買って間違いナシ! | すまおじ.com

GitHub でコミットハッシュからコミットを探す

AWS

https://github.com/{owner}/{project}/commit/{hash} の {hash} にコミットハッシュを指定すればよい。例えば、 antirez in commit 2810de9f: Cluster: abort loading nodes data if vars arguments are unbalanced. 1 file changed, 1 insertion(+) https:…

ElastiCache(Redis)のフェイルオーバー時間

AWS

ElastiCache(Redis)を手動フェイルオーバーしたときの時間を計測してみたメモ。 構成 クラスターモード有効 1シャード x 2レプリカ = 3ノード ノードタイプ: r5.large 手順 EC2 で以下のスクリプトを実行する $ ruby redis-rb_sample.rb マネジメントコンソ…

ElastiCache(Redis) クラスターのシャード数とレプリカ数のベストプラクティス

AWS

2. Three-shard minimum Redis Cluster: Having a minimum of three shards provides improved availability by providing faster recovery during both planned and unplanned failovers. Amazon ElastiCache for Redis supports up to 500 total nodes in …

Glue Spark で出力ファイルサイズのサイズを大きくする

AWS

Glue Spark で出力ファイルサイズのサイズを大きくしたメモ。 サマリ 以下の2つの方法がある。 Glue カタログでデータソースの Table Properties で以下を指定する groupFiles: inPartition 入力ファイル数が 50,000 以下でもグループ化を有効にする groupSi…

Amazon Linux 2 に redis-rb をインストールして使ってみた

Amazon Linux 2 に redis-rb をインストールし、クラスターモードが有効な ElastiCache(Redis) に対して、Configuration エンドポイントを使ってアクセスしてみた。 インストール Amazon Linux 2 に rbenv をインストールする - ablog redis-rb をインストー…

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

必要なパッケージをインストールする sudo yum install -y git gcc openssl-devel zlib-devel rbenv をダウンロードする git clone https://github.com/sstephenson/rbenv.git ~/.rbenv git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/p…

Redis の Ruby Client

AWS

Black Belt Online Seminar ElastiCache P.20 redis-rb ソースコード: GitHub - redis/redis-rb: A Ruby client library for Redis ElastiCache(Redis) クラスターの configuration エンドポイントに対応している。 そして、以下試した所いけた!嬉しかった…

ElastiCache(Redis) のレプリケーションラグを計測してみた

AWS

ドキュメントの説明 Q: アクティブなリードレプリカの状態はどのように把握できますか? デプロイ済みのすべてのキャッシュクラスター (リードレプリカを含む) のリストを取得するには、標準の DescribeCacheClusters API を使用するか、Amazon ElastiCache …

psql から Redshift に接続する際にメッセージを英語で出力する

AWS

以下の環境変数をセット後に、psql を実行するよとい。 export LC_ALL=C 実行例 $ psql "host=redshift-cluster-4.********.ap-northeast-1.redshift.amazonaws.com user=awsuser dbname=dev port=5439" psql (13.4、サーバ 8.0.2) SSL 接続 (プロトコル: TL…

Redshift で列レベルのアクセス制御を行う

AWS

Redshift で列レベルのアクセス制御を検証してみた。 Redshift に接続する psql "host=redshift-cluster-4.********.ap-northeast-1.redshift.amazonaws.com user=awsuser dbname=dev port=5439" テーブルを作成する CREATE TABLE customer ( c_custkey INTE…

bash で環境変数にセットせずにコマンドに渡す

bash で環境変数にセット(export)せずにコマンドに渡したメモ。 PG_CONCURRENCY=1 PG_TRAN=1 SQL_SCRIPT=sql/pg_database.sql ./redshift_exec_query.sh & 参考 bashで環境変数をexportせずにシェルスクリプトを実行したい場合はコマンドの前に記述するこ…