ablog

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

2023-01-01から1年間の記事一覧

AWS SDK はファイルを S3 にアップロードする際にチェックサムで整合性をチェックしてくれる

AWS

AWS SDK は MD5 以外を使うと自動でチェックサムをチェックしてくれると聞いて試してみた。 新しいチェックサムのサポート 2022 年 2 月 25 日(米国時間)は、S3 の 4 つのチェックサムアルゴリズムの新しいサポートについてお話しします。Amazon S3 に保存…

Amazon Keyspaces の Auto Scaling でスケールアウトするまでの所要時間

AWS

Amazon Keyspaces の Auto Scaling でスケールアウトするまでの所要時間を実測してみた。 キャパシティモードがプロビジョンドのテーブル最小 RCU/WCU: 2000、最大 RCU/WCU: 20,000、目標使用率: 70% に対して、YCSB から負荷をかけてみて、3〜4分程度でAuto…

cqlsh の TIMING ON コマンドで CQL の実行時間を計測する

AWS

cqlsh の TIMING ON コマンドで CQL の実行時間を計測する方法。 以下は cqlsh 6.8 から Amazon Keyspaces に接続して CQL 実行時間を計測した手順。 インストール Apache Cassandra Download | DataStax Enterprise からcqlsh 6.8をダウンロードする。 $ wg…

YCSB から VPC エンドポイント経由で Amazon Keyspaces に負荷をかける

AWS

負荷をかける [ec2-user@ip-172-31-26-19 YCSB]$ ./bin/ycsb run cassandra-cql -p hosts=cassandra.ap-northeast-1.amazonaws.com -p port=9142 -P ./workloads/workloada_keyspaces -s -threads 100 -p cassandra.writeconsistencylevel=LOCAL_QUORUM -p c…

Amazon Keyspaces 関連のリソース(スライド、ドキュメント、論文など)

Apache Cassandra Cassandra ユーザー向け Bigtable | Google Cloud NoSQLデータベースCassandraの紹介 〜 ヤフーのデータ基盤を支える技術 - Yahoo! JAPAN Tech Blog SSTable Attached Secondary Index(SASI)を使用したインデックス作成 SASI, Cassandra …

Amazon DynamoDB 関連のリソース(スライド、ドキュメント、論文など)

AWS

NoSQL 開発者のためのNoSQL Database の選び方 入門(2021, Momoko Asai) Amazon DynamoDB スライド Amazon DynamoDB Advanced Design Pattern(2018 Dev Day Daichi Egawa) Amazon DynamoDB deep dive: Advanced design patterns(2020, oranie) Amazon Dynamo…

MacBook Pro で Logicool MX ERGO(MXTB1s) のトラックボールが突然反応しなくなった

症状 突然、Logicool MX ERGO(MXTB1s) のトラックボールが突然反応しなくなった。クリックなど他の操作はできる。 解決策 底面にある穴から、指やボールペンの柄などでボールを押すとボールを外してホコリを掃除したら直った。 参考: トラックボールとカーソ…

VPC 内 Glue から別 VPC の Redshift などに接続できるか

AWS

VPC内Glueジョブ(Spark、Python shell)から別VPCの Redshift や RDS などに接続できるか。同一 VPC の別 Subnet は当然接続できる。 別 VPC の場合、VPC ピアリングや Transit Gateway で接続すれば接続できる。 参考 AWS Glue 接続とデータベースで異なる…

macOS に AWS CLI v2 をインストールする

macOS に AWS CLI v2 をインストールした手順。 インストール % curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" % sudo installer -pkg ./AWSCLIV2.pkg -target / 確認 % which aws /usr/local/bin/aws % aws --version aws-cli/2.13.…

macOS Ventura 13.5.2 に Python をインストールしようとすると ModuleNotFoundError: No module named '_lzma' と怒られる

事象 macOS Ventura 13.5.2 に Python をインストールしようとすると ModuleNotFoundError: No module named '_lzma' と怒られる。 % pyenv install 3.11.6 python-build: use readline from homebrew Downloading Python-3.11.6.tar.xz... -> https://www.p…

pandas で df[df[列番号]=='文字列'] と df[df[列番号].isin(['文字列'])] のどちらが速いか(文字列編)

pandas で df[df[列番号]==数値] と df[df[列番号].isin([数値])] のどちらが速いか(数値編) - ablog の文字列版。 サマリー 14MBの CSV ファイルを読んで 1,000 回 df[df[列番号]=='文字列'] または df[df[列番号].isin(['文字列'])] の実行時間を計測す…

pandas で df[df[列番号]==数値] と df[df[列番号].isin([数値])] のどちらが速いか(数値編)

サマリー 14MBの CSV ファイルを読んで 1,000 回 df[df[列番号]==数値] または df[df[列番号].isin([数値])] の実行時間を計測すると、isin のほうが 0.875s(=3.131s-2.256s)遅い結果になった。cProfile でプロファイリングすると df[df[列番号]==数値] の…

PC DJ メモ

ソフトウェア rekordbox(無償) 会員登録して https://rekordbox.com/ja/download/ からダウンロード 楽曲 TIDAL は日本からは登録できない。Beatport は1ヶ月無料でトライアルできる。 ストリーミングDJサービスで邦楽曲を使えるTIDALやBeatsource,beatpor…

Datastax Java Driver for Apache Cassandra でAmazon KeySpaces へのコネクションプールの数を設定する

AWS

Amazon KeySpaces は 1 コネクションあたりの CQL のスループットが 3,000 である。デフォルトでパブリックエンドポイントの場合 9 コネクションなので CQL のスループットは 27,000(=3,000 * 9)、VPC エンドポイントの場合はその VPC のサブネット(AZ)…

S3 と Glue Job の閉域網構成

AWS

S3 Block Public Access*1 をアカウントレベルで設定すれば、アカウントレベルで S3 バケットで Public 公開できなくなるが、さらに S3 バケットポリシー*2 + S3 Access Point(+ S3 Access Point ポリシー)で 特定の IP アドレスや VPC からのみアクセス許…

S3 to S3 でストリーミング圧縮コピーする(boto3版)

AWS

AWS CLI で S3 to S3 で圧縮してストリーミングコピーしたい場合は aws s3 cp s3://... - | gzip | aws s3 cp - s3://...(S3 からローカルにファイルをまるまるダウンロードせずに圧縮して S3 にアップロードする - ablog) のようにパイプで繋げばよいが、…

S3 to S3 でストリーミング圧縮コピーする(AWS CLI版)

AWS

S3 にあるファイルを EC2 などにファイルをまるまるダウンロードせずに圧縮して S3 にアップロードしたい場合、パイプで繋いでやればよい。 例 EC2 のローカルのファイルを圧縮しながら S3 にアプロードする(圧縮したファイルを EC2 にローカルに保存せずに…

MacBook Pro M1 セットアップメモ

14-inch MacBook Pro M1 2021 のセットアップメモ。 チップ: Apple M1 Pro メモリ: 32GB ストレージ: 500GB macOS: Ventura 13.5.2 セットアップ Touch ID の設定 MacでTouch IDを使用する - Apple サポート (日本) マウスとキーボードの設定 [システム設定]…

Amazon KeySpaces で VPC エンドポイントを使用した場合の system.peers のエントリの違い

AWS

結論 VPC エンドポイントを使用すると、system.peers は AZ の数に依存する。 パブリックエンドポイントの場合の 9 から VPCエンドポイントを使用すると 2-5 に減るが、CQL のスループット(QPS)限界が小さくなるわけではない。ただし、VPC エンドポイント…

Linux で設定可能な仮想IPアドレスの最大数

Linux 2.2 Linux 2.2 Issue How many network interfaces aliases does Red Hat Enterprise Linux support? What is the maximum number of interface aliases I can use on Red Hat Enterprise Linux? Resolution There is no practical limit. Root Cause …

cqlsh から Amazon KeySpaces に接続しようとすると "Can't authenticate without a region name" と怒られる

AWS

事象 cqlsh から Amazon KeySpaces に接続しようとすると "Can't authenticate without a region name" と怒られる Connection error: ('Unable to connect to any servers', {'172.31.4.223:9142': ValueError("Can't authenticate without a region name")…

YCSB を Amazon KeySpaces にベンチマークをかけれるようカスタマイズしたメモ

YCSB(Yahoo! Cloud Serving Benchmark)を Amazon KeySpaces にベンチマークをかけれるようカスタマイズしたメモ。 GitHub - yoheia/YCSB: Yahoo! Cloud Serving Benchmark 前提 前提条件および環境セットアップ手順 Amazon Linux 2023 on EC2 Amazon Linux…

リモートリポジトリからブランチを指定して git clone する

git

$ git clone -b 3.x-Driver-Compatible https://github.com/aws/aws-sigv4-auth-cassandra-java-driver-plugin.git 参考 リモートから特定のブランチを指定してcloneする方法 git clone -b ブランチ名 https://リポジトリのアドレス リモートから特定のブラ…

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行する(DataStax Java Driver 3.x 版)

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行した手順(DataStax Java Driver 3.x 版)。 Cassandra Java クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス - Amazon Keyspaces (Apache Cassandra 向…

YCSB から Amazon KeySpaces に SigV4 認証でアクセスする

AWS

YCSB/cassandra/pom.xml を以下の通り編集 <cassandra.cql.version>3.7.2</cassandra.cql.version> YCSB/cassandra/pom.xml に以下を追記 <dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin_3</artifactId> <version>3.0.3</version> </dependency> YCSB/cassandra/src/main/ja…

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行する(DataStax Java Driver 4.x 版)

AWS

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行した手順。 Amazon Keyspaces のアイデンティティベースポリシーの例 - Amazon Keyspaces (Apache Cassandra 向け) GitHub - aws-samples/aws-sigv4-auth-cassandra-java-driver-exa…

Maven プロジェクトにローカルの jar ファイルを追加する方法

Maven プロジェクトにローカルの jar ファイルを追加する方法。 YCSB にローカルの DataSatax Java Driver for Cassandra を追加した例。 jar をダウンロードする $ pwd /home/ec2-user/YCSB $ mkdir lib $ curl -L -O https://repo1.maven.org/maven2/com/d…

grep で特定のディレクトリを対象外にしたい場合

log ディレクトリ以外を対象として grep する例。 $ grep -Ri --exclude-dir log cassandra * 参考 grepコマンドで特定のディレクトリを検索対象から除外する | 晴耕雨読

YCSB から Amazon KeySpaces に接続エラーになるのでトラブルシューティング

AWS

cqlsh、Java アプリからは接続して CQL の発行に成功するので、strace を取って比較してみた。 事象 YCSB で Amazon KeySpaces にデータをロードしようとすると "NoHostAvailableException: All host(s) tried for query failed" と怒られる。 $ ./bin/ycsb …

YCSB でインストールするモジュールをカスタマイズする

インストールするモジュール(対応DB)を絞る YCSB で以下のファイルで必要ないモジュールをコメントアウトする。 YCSB/pom.xml セクション セクション YCSB/distribution/pom.xml セクション YCSB/bin/bindings.properties XML は propertie ファイルは # …