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

Pythonで書くDataflowテンプレートでサードパーティ製JDBCドライバを使う

この記事の続きです。 yomon.hatenablog.com 以下にもある通り、今書いている時点ではApache BeamのPython SDKはビルトインでJDBC対応していません。 beam.apache.org PythonでJDBCドライバ使いたかったのはDataflowのPython SDK使ってもJDBC接続使いたかっ…

PythonでAzure SQL databaseにJDBC接続してみる

利用するモジュール SQL Server用のJDBC Driverダウンロード Pythonコード 既知のエラー 関連 利用するモジュール JDBCを使うためにこちらのモジュールを利用します。 github.com $ pip install JayDeBeApi SQL Server用のJDBC Driverダウンロード SQL Serve…

Cloud DataflowのテンプレートにPythonの外部パッケージを利用する

Cloud Dataflow + Python で作るテンプレートを登録する際に、pipでインストール可能なPyPiなどの外部パッケージをどうやって組み込むか調べました。 requirements.txtでpypi等の外部パッケージ使う方法 設定例 テンプレート作成 setup.pyでローカルパッケー…

Cloud ComposerからDataflowTemplateOperatorでwordcountジョブを実行する

Cloud Composer(Airflow)からDataflowTemplateOperatorの使い方がわからなかったので調べました。 Dataflowテンプレート登録 コード作成 コンパイル+アップロード Cloud ComposerのDAG作成 DAG定義スクリプト作成 AirflowのVariables設定 DAGファイルのイン…

Amazon Elasticsearch ServiceにJDBCで接続してSQL実行する

Amazon Elasticsearch Service(以下、AES)にJDBC接続する方法です。 AESのSQL機能 AESのSQL機能はOpen Distro for ElasticsearchというAWS主導のプロジェクトで開発されています。 github.com この辺りは、AESのSQLのエンドポイントやプラグイン名にも表れ…

PandasのデータをpyarrowでParquet変換してGCS(Google Cloud Storage)にアップロード

タイトルの通りです。PandasのDataframeをpyarrowでParquetに変換して、そのままGCSにアップロードしています。 スクリプト こんな形で実行可能です。ファイルを経由しないでBufferから、そのままアップロードしています。 import pandas as pd import pyarr…

Parquetファイルの中身を確認するparquet-toolsをDocker使ってインストール無しで実行する

parquet-toolsをビルドするの面倒なので、Dockerで実行する方法。 parquet-tools Parquetの中身見るためのCLIです。 https://github.com/apache/parquet-mr/tree/master/parquet-tools Dockerでの実行方法 こちらのイメージ使わせてもらいます。Dockerfile見…

PandasとNumpyで大きなDataframeのデータを生成する方法

タイトルの通り、Pandas使ったちょっとしたテストで「それなりに」大きなDataframeを作りたい場合の例です。 import pandas as pd import numpy as np import datetime row_num = 10000000 string_values = ['Python', 'Ruby', 'Java', 'JavaScript', 'PHP',…

Azure Table StorageのデータをCloud Dataflowを使ってBigQueryに挿入する

Azure Table StorageのデータをCloud Dataflow (Apache Beam)から扱ってみたのでメモ。 対象のAzure Table Storage 対象としたTable Storageの中身です。mytable という名前にしました。このデータをDataflowを使ってBigQueryに挿入してみます。 準備 デー…

Azure Table Storageをpandas+pyarrowでParquet変換してBLOB側にアップロード

BeeX Advent Calendar 2019の12/6の記事です。空いてたので滑り込みです。 Azure Table Storageですが、対応しているツールも少なく、なかなか扱いずらいので、Pandasに読み込んで、Parquet形式に変更する方法を調べました。 対象 対象としたTable Storageの…

VPC Service Controlsで データポータルにもIP制限可能か調べてみた

VPC Service Controlsを利用してBigQuery APIへの接続にIP制限かけてみたのですが、BigQueryのフロントとして利用しているGoogle Data PortalもIP制限かけて利用したいと思いやってみました。 結論 Access Context Managerでアクセスレベルを定義 VPC Servic…

Apache AirflowでAzure BLOB Storageのオブジェクトを監視してワークフローをトリガする

AirflowにはAzureのパッケージが存在しています。 pip install 'apache-airflow[azure]' その辺りを使って、Azure Blob Storageへオブジェクトがアップロードしたことを検知して、ワークフローを流したいと思いました。 モジュールとしては以下のモジュール…

CLI でGoogle Cloud Functions + Serverless Framework開発環境を構築

Google Cloud FunctionsをServerless Frameworkでデプロイできる環境を作りたい場合、以下の公式ドキュメントに手法が載っています。 Serverless - Google Cloud Functions Documentation ただ、特に権限周りでGUIでの操作が面倒なので、CLI操作に変換して書…

GCP Cloud IAP経由のSSH接続にグローバルIP制限を組み込む

Cloud IAP(Identity-Aware Proxy)を使うと所謂Bastion(踏み台)インスタンスを構築せずとも、GCPに安全に接続できる構成が作れます。そこにGlobal IP制限も加えられるか設定してみました。 cloud.google.com 前提 [組織作業] グローバルIP制限用のアクセスレ…

GCEにSSHできなくなったのでログオンの仕組みを少し調べてみた

発端から。先日、Windowsをアップデートしてwsl2を使い始めているのですが、いつも通りgcloudでsshログオンしようとしたら下記のエラーが発生しましたので、ついでにログオンの仕組みを少し調べてみました。 # gcloud compute ssh my-instance root@XX.XX.XX…

PowerShellでS3のサーバーアクセスログをTSV形式に変換しEXCELで分析

S3はのサーバのアクセスログを取得することが可能です。 通情、このログを分析するなら、Athenaが便利です。公式にもわかりやすい手順が出ています。 Athena を使用したアクセスログの分析 ただ、色々な制約でAthenaが使えない、Pandasも使えない、ましてやD…

Qiitaのアクセス数が気になって実際に記事を書いてみた結果公開

私はSNSはやっていないので、このはてなブログだけでアウトプットしています。 そんな中でもQiitaは、アカウントだけは持っていたのですが、有名(?)なガイドラインが怖くて記事を書けずにいました。 でも、Qiitaに記事書くとアクセス数凄いって聞くし、どん…

分散システムデザインパターンを読んだ

これを読みました。 分散システムデザインパターン ~コンテナを使ったスケーラブルなサービスの設計~ 分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計作者: Brendan Burns,松浦隼人出版社/メーカー: オライリージャパン発売…

LambdaでElasticsearch Serviceの手動スナップショットを取得する仕組みをCFnで一括デプロイ

Amazon Elasticsearch Service (AES) で手動スナップショット取得の仕組みをCloudformationで一気にデプロイします。かつCurator使って古いスナップショットは自動的に削除する設定になっています。スナップショット取るだけで意外に大変です。 Pythonスクリ…

Amazon Elasticsearch Serviceクラスタ構成を対障害性の観点から検討してみる

Amazon Elasticsearch Serviceクラスタ構成を検討したので、そのメモを残しておきます。 ※Elasticsearch Serviceの インスタンス ですが、資料によっては ノード と表記されています。この記事ではManagement Consoleの表記に合わせて インスタンス に統一し…

fluent-plugin-aws-elasticsearch-service使ってElasticsearch Serviceに疎通確認作業

fluent-plugin-aws-elasticsearch-serviceでIAM権限でAmazon Elasticsearch Service繋ごうと思うのですが、IAM権限やアクセスポリシー変更しながらの疎通テストをしたいと思い。簡単に疎通テスト用の手順書きました。 github.com Amazon Linux2にログオン td…

AZ-301取ってAzure Solutions Architect Expert 認定取りました

Azure Solutions Architect Expertを取得してきました。 試験 前提試験 AZ-300 と AZ-301 Azure Solutions Architect Expertの認定には、以下の2試験の合格が必要です。 AZ-300:Microsoft Azure Architect Technologies AZ-301:Microsoft Azure Architect D…

Gem in a BoxでプライベートなRubyGemsをDockerで簡単に構築する

Gem in a Boxを使って、Dockerでローカル環境にRubyGemsを構築して、Gemをアップロードするところまで書きます。 github.com Gem in a Boxは公式でも以下の RUNNING GEM IN A BOX の項目で紹介されてます。 Run your own gem server - RubyGems Guides 作業…

GCP Cloud ComposerでBigQueryのテーブルを操作するワークフローを作る手順

GCP Cloud Composerの動きを一通り確認するために以下のAirflow向けのを参考にワークフロー作成しました。内容をシンプルにするためいくらか修正しています。 cloud.google.com やること Cloud Composer作成 BigQueryデータセット・テーブル作成 AirflowのDA…

AZ-300 Microsoft Azure Architect Technologies を合格してきた

このブログ始めた頃(4~5年前)は、主に仕事ではAzureを使っていたのですが、暫くご無沙汰でした。 最近だと去年ChatBot作るため、Azure Bot Serviceを使いたくてAzure使っていたくらい。 最近マルチクラウドの案件が増えてきたため、AWSとGCPに合わせてAzur…

GCP Professional Cloud Network Engineer 認定試験合格してきた

一昨日思い立って、スケジュールにらめっこしたところ、昨日しか空いてないので、会社の近くのテストセンターで取得してきまいた。 まだ日本語提供されてない英語試験です。GCPの英語試験の注意点はこちらで書いた内容と同じです。 yomon.hatenablog.com 試…

GCPとAzureをSite-to-SiteでVPN接続してみた(CLI作業)

GCPからAzureにサイト間VPNを接続した手順です。 以下にあるように、2019/10/18時点では、GCPとAzureのBGP接続はサポートされていないようなので、ルートベースのVPNを設定手順です。 VPN interoperability guides | Cloud VPN | Google Cloud 全体像 このフ…

AthenaにVPCエンドポイント経由でJDBC接続できるようになったが少し詰まった話

こちらのリリースにあるようにAthenaにVPCエンドポイント経由で接続できるようになりました。これで、プライベートなサブネットからもJDBC接続できるようになりました! aws.amazon.com 試してみる 早速、前に記事書いたこちらのDockerイメージでテストして…

AWS CloudformationでSecurity Groupの自己参照の設定を行う

AWS

Glue使っているとSecurity Groupに自己参照の設定をしなければいけない時があります。 AWS Glue がコンポーネントと通信できるようにするには、すべての TCP ポートに対して自己参照のインバウンドルールを持つセキュリティグループを指定します。 https://d…

GCP Professional Cloud Security Engineer 認定試験合格してきた

Google Cloud Certified Professional Cloud Security Engineerを取得してきました。 試験準備 まだ日本語提供がされていない試験なので、英語での受験となります。 言語が違うだけなのですが、手続き関係で試験と関係無いところで詰まりどころがいくつかあ…