たそらぼ

日頃思ったこととかメモとか。

データメッシュに向けての勉強

今年はデータメッシュアーキテクチャの活用に向けての勉強や検証をしていきたいなと思っています。データメッシュアーキテクチャは、Thoughtworks社のホームページで紹介されているような原則のもと、AWSはじめ多くのクラウドベンダーがそれを念頭に置いたサ…

AWS CodeCommitに入門した

Code三銃士のうち、AWS CodeCommitに入門した。 モチベーション 認定Developerアソシエイトの参考書を読んでいるとCodeCommitの設定方法が出てきたが、触ったことがないのでなかなか覚えられなかった。触ったことがないものは仕方ないので、実際に触ってみる…

(小ネタ)別ファイルにしたSQLをAthenaで投げたい

Athenaに投げるSQLを別ファイルにしておきたい。 こうしておくと、管理もしやすくなり、SQLFluffでCIしたりできるようになる。 ディレクトリ構造 同じ階層にathena.pyという名前でpythonスニペットと、sample.sqlという名前のDMLを置いておくとする。 C:. at…

digdagでpythonコードを呼び出す

久しぶりにdigdagを使うことになったら、完全に全てを忘れていたので、pythonとの連携方法を再確認した。以下のdigdagドキュメントのLanguage API - Pythonの挙動を抜粋して確認した。 Language API - Python — Digdag 0.10.0 documentation ディレクトリ構…

Athenaでjson文字列から値を取り出したい

入れ子のjsonになっていると見せかけて、json文字列が入っている場合に、どのようにすればAthenaでデータを取り出すことができるか確認した。 データを見てみる 以下のようなデータを考える。 {"key1": 1, "key2": "{\"key21\":2, \"key22\":3}"} {"key1": 4…

S3イベント→SNS→SQSの構成を試した。

S3イベント→SNS→SQSの構成を試した。 SQSの先にはLambdaが繋がっているようなイメージ。 意外と設定をズバリ書いてくれいてる文献がなかったのでまとめる。 設定手順 S3バケットの作成 イベントを起こすS3バケットがなければ、バケットを作成する。 SNSの設…

postgreSQLのパラレルクエリを試してみたけど、上手くいかなかった。

PostgreSQLに興味がでてきたので、PostgreSQL徹底入門(第4版)を読んでいる。PostgreSQL徹底入門 第4版 インストールから機能・仕組み、アプリ作り、管理・運用まで作者:近藤 雄太,正野 裕大,坂井 潔,鳥越 淳,笠原 辰仁発売日: 2019/10/04メディア: 単行本…

timeitモジュールで呼び出し可能オブジェクトの時間を計測する。

tensorflowのドキュメントを見てたら、timeitというモジュールを使っていたので、これなんやねんと思って調べた。docs.python.orgPythonからtimeitをimportして使う場合は、式を文字列として渡すか、呼び出し可能な式あれば時間を計測することができる。 例…

Seabornのプロットでマーカーの色を変える

最近、Seabornでプロットをすることが増えたのですが、デフォルトだと色味がパッとしなかったり、サブプロットしたら全部同じ色になったりして困ったので、色を変える方法を調べてみました。 サマリ seaborn.scatterplotのpaletteにパレット名を指定すること…

コードにTODOのコメントを埋め込むvimプラグインを作った。

コードの未実装の箇所に、「こんな感じで実装していこうと思います、リファレンスはこれです。」とTODOのコメントを入れるvimプラグインを作りました。 github.com インストール {packpath}/pack/plugins/start 配下にgit cloneしてください。dein.vimを使っ…

GithubのReadmeにgifを入れために、gifの作成からReadmeの編集までやってみた。

Vimプラグインを作った際に、Readmeに挙動が分かるようなGif動画を入れたかったので、 gifの作り方から調べてReadmeに入れるところまでやってみた。 出来栄えは、こんな感じ。 github.com一番最後の画像。 環境 macOS Catalina v10.15で行った。 macでの操作…

Sparkで"使い方が誤っています"でJavaが読み込めない。

Sparkを勉強するのに、spark-3.0.0-bin-hadoop2.7.tgzをダウンロードして、pysparkでshellを起動しようとしたが、 以下のような感じのエラーで起動できなかったのでメモ。 pipでpysparkを入れてpythonからimportしても同様。 \Java\jdk-12.0.1\bin\java の使…

PythonでAESの暗号化を試した

PythonでAESの暗号化を学んだのでメモ。 やりたいこと C#で暗号化されたものをPythonで再現する。 c#の暗号化クラスを使ってみた(AES,RSA) - Qiita PythonでAESの暗号化を行う CBCモードで行うAESにより暗号化するサンプルコードは、以下が参考になる。 py…

CloudTrailの証跡機能にだいぶ詳しくなったのでまとめる

CloudTrailの証跡機能にだいぶ詳しくなったので、個人的なまとめです。 CloudTrailの概要 CloudTrailはアカウントの操作ログを記録し、ログを Amazon S3 バケットに送信することができます。 90日分の管理イベントを無料で保存、検索することが可能です。証…

ロググループから特定ログを抽出するフィルターのパターンについて考える

複数種のログが混ざって格納されるロググループにサブスクリプションフィルタを設定して、特定種類のログのみ取り出したいのですが、パースとフィルターをする方法に癖があったのでまとめました。 やりたいこと docs.aws.amazon.comCloudWatch Logsでは、収…

create-export-taskで特定のログストリームだけエクスポートしたい

create-export-task APIで特定のログストリームだけエクスポートする方法を調べました。 docs.aws.amazon.com モチベーション AWS CLIからcreate-export-task APIを叩くと、CloudWatch Logsの特定のログストリームのログ を取ることができる記事を書きました…

FargateでCloudWatch Logsからログをエクスポートするアイデア

fargateからAWS CLIでcreate-export-task APIを叩き、CloudWatch Logsからログをエクスポートする方法を考えてみました。 モチベーション CloudWatch Logsに格納されたログを取り出して、別のシステムに移したいような要件があると思います。 例えば、複数シ…

CloudWatch Logsのサブスクリプションフィルタの上限数問題と対応策

記事執筆現在、CloudWatch Logsのサブスクリプションフィルタ数には上限がありますが、どこに書いてあるか分かりにくかったのでメモです。 サブスクリプションフィルタについて CloudWatch Logsに流れ込んでくるログデータを、フィルタリングして、リアルタ…

AWSサービスが代理で行うリクエストは、aws:SourceIp キーを適用しないIAMポリシー設定

aws:ViaAWSService キーで、AWSサービスが代理で行うリクエストは、IP制限を適用しないIAMポリシー設定にする設定です。 aws:SourceIp キーの注意点 aws:SourceIp キーは特に企業などで、社内ネットワーク外から操作ができないような設定をするために、よく…

CloudWatchLogsからクロスアカウントでS3にエクスポートする

別のアカウントのCloudWatch Logsに格納されたログデータを、別のアカウントのS3に持ってくる場合です。 自分のアカウント内の記事はよくありますが、クロスアカウントでやってみた報告がないので書きました。 やりたいこと 以下のような構成を実現したいで…

CloudWatchアラームのアラーム名を日本語にすると、SNSの通知メールがおかしくなる

CloudWatchアラームのアラーム名を日本語にすると、SNSの通知メールがおかしくなる件について調査しました。 背景 システム監視でCloudWatchアラームを使い、問題があった時にSNS経由でアラートメールを飛ばしています。 基本的に英語でメールしていますが、…

CloudTrailの証跡配信エラーを検知する

CloudTrailの証跡配信エラーを検知する方法を調べました。 CloudTrailの証跡は配信失敗する可能性がある AWS上で発生したイベントを記録してくれるCloudTrailは非常に便利なサービスで、証跡を作るだけでAWSで行ったログをS3などに出力することができます。 …

PillowでのRGBとCMYKの変換

Pillowで読み込んだ画像をRGBからCMYKに変換する方法を勉強したのでメモです。今回もlena.jpgを使います。 RGBはRed、Green、Blueの三つの原色を混ぜて色を再現する方法で、主にディスプレイなど光に関わる色の表現方法です。 一方、CMYKはCyan、Magenta、Ye…

ErgoDashのキースイッチを交換してきた

去年の夏ごろにErgoDashを作ったのですが、キースイッチが気に入らなかったので改造してきました。tasotasoso.hatenablog.com今回も、遊舎工房さんで作業させていただきました!今日の工作室以前組み立てられたErgoDashのキースイッチを交換されたお客様です…

StandardScalerのfit_transformを脳死で使ってたらハマった

StandardScalerのfit_transform()を乱用していたらハマってしまったのでメモです。 概要 データを標準化する際に、sklearn.preprocessing.StandardScalerを使うことが多いと思います。 scikit-learn.orgこのモジュールにはfit_transformという、データへのfi…

pandas分析虎の巻

データを見る際にpandasでよく使う操作を、しょっちゅう忘れるのでまとめておきます。虎の巻自体は以下にあります。 github.com 準備 今回はirisデータを使います。 これはsklearnに入っています。 from sklearn.datasets import load_iris iris = load_iris…

EFSをIPアドレスでマウントする

AWS FESをIPアドレスでマウントする方法です。AWS公式でもガイドがあるのですが、調べても意外と出てこなかったのでメモ書きです。 https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mounting-fs-mount-cmd-ip-addr.html IP アドレスを使ってマウントする E…

Pillowの画像処理と仲良くなる

画像処理のニューラルネットを使うのに、画像の変換に慣れておらず困ったのでPillowの使い方を調べました。 この時、データセットの作成に必要そうな操作をまとめました。 インストール、準備 pipで普通に入ります。 pip3 install pillowpythonで使う時はPIL…

PyTorchでDataLoaderを使って、CIFAR-10をミニバッチで取り出してみる

torch.utils.dataで、画像データのDataLoaderを作成する方法をまとめました。 CIFAR-10データセットを例として使用しています。 CIFAR-10データセット 約8000万枚の画像がある80 Million Tiny Imagesから約6万枚の画像を抽出してラベル付けした有名なデータ…

torchvisionのtransformsが分からなかったので調べた。

PyTorchで画像処理を始めたので、torchvisions.transformsを使った前処理について調べました。pytorch.org torchvisions.transformsとは Composeを使うことでチェーンさせた前処理が簡潔にかけるようになります。また、Functionalモジュールを使うことで、関…