AWS

GlueのDynamicFrameでS3へファイル書き出す時はCSVやJSONよりParquetが早い

DynamicFrameを使った開発をしていたら、大した処理していないのに、想像以上に時間がかかるなと思って調べていたら、JSONの書き出しが時間かかっていました。 タイトルの通り、JSONやCSVでのS3出力と比較してParquetでの出力は凄い早いというお話です。処理…

Glueで色々な日付フォーマットの文字列をtimestamp型に変換してみた

掲題の件、JSON等にある日付フォーマットの文字列から、Timestamp形式に変換したかったのですが、どの書式だと変換できるのか良くわかってなかったので、実際に実行してみました。 初期化 日付文字列 Glueでマッピング 結果 UnixTimeの変換 Glue Spark 初期…

AthenaでHIVE_PARTITION_SCHEMA_MISMATCHが発生 GlueカタログのTableとPartitionの間のスキーマに不整合直して解消

掲題のエラーに当たってサポートに対応教えてもらったのでメモ。 事象 原因 パーティションの例 テーブルのスキーマ パーティション毎のスキーマ 対応 参考 事象 CSVをGlueを使ってパーティション分割して、AthenaでプレビューしてみたらHIVE_PARTITION_SCHE…

Lake Fomationの前身?AWS Data Lake Solutionを触ってみました

先月のre:Invent 2018で発表になったLake Formation。現地で聞いていて即効プレビュー申し込んであるのですが まだ使えていません。 そんな時に一緒に仕事をしている方から、こんなモノがあることを聞きました。 aws.amazon.com こちらから引用したアーキテ…

Alexaに聞いたらDatalakeからKPIを抽出して答えてくれますよというWorkshop受講してきた

re:Invent 2018、今日は私の日程の最終日でした、明日は帰りの飛行機早いので、このブログ書いたら寝ようと思って書いています。 ちょうど今、ChatBotもDatalakeも別々のプロジェクトで手がけてますが、まさかそれが合わさったセッションがあるとは思いませ…

re:Invent 2018でのAWS Glue周りの発表を聞いてきた(Python Shell、CloudWatch Event連携、Lake Formation)

AWS re:Invent 2018に参加するためラスベガスに来ています。 昨日はこちらのセッションを聞きました。 AWS re:Invent 2018: Building Serverless Analytics Pipelines with AWS Glue (ANT308) そこで、静かに(?)AWS Glueの新機能の発表がありました。 セ…

AWS GlueでDynamoDBがサポートされたので触ってみた

AWSのre:Invent 2018に参加するためラスベガスに来ています。 題名の通りGlueのCrawlerとETLジョブでDynamoDBがサポートされましたので早速動かしてみます。 セッション 発表されたセッションとスライドはこちらです。他にもあったのですが、今すぐ動くDynam…

AWS Glueの仕様でサポートに問い合わせた内容

最近Glueを使っていて、その過程でAWSサポートに問い合わせしたり、仕様を確認した内容をまとめておきます。 Tableのプロパティ(Parameters)の制限 SageMakerでGlueのライブラリ読み込むとエラーが出る S3からS3へのコピーでVPCエンドポイント使いたい 接…

AWS Certified Big Data - Specialty 合格してきました

AWS

AWSのソリューションアーキテクトのプロ持っていたのですが、1年くらい前に失効しています。 またアソシエイトから取るのも面倒だし、そもそも同じ試験受けるのってモチベーションを上げにくい。ということでAWSの認定から遠ざかっていたのですが、先日こん…

AWS GlueでGrok使いALB アクセスログを取り込んでParquetやORC形式に変換

Grokパターン作成 事前調査 ALBのアクセスログの項目 ビルドインのGrokのパターン logstashのELBのGrokパターン 作成 分類子(Classifier登録) Crawler カタログデータベース確認 テーブル確認 Athenaで検索 ETLジョブ Glueからパーティショニングして書き込…

【AWS Glue】aws-glue-samplesを動かすまでの前準備の作業メモ

AWS GlueのNotebook起動した際に Glue Examples ついている「Join and Relationalize Data in S3」のノートブックを動かすための、前準備のメモです。 Join and Relationalize Data in S3 This sample ETL script shows you how to use AWS Glue to load, tr…

UbuntuでもAWS Systems Manager Session Manager for Shell Accessをログ取得まで設定してみた

AWS

お世話になっているクラメソさんの記事(Mac向け)を見て、私のUbuntu PC環境でもいけるかなとやってみました。 dev.classmethod.jp Ubuntu PC側作業 サーバー側 Shell Accessで接続 ロギング設定 参考URL Ubuntu PC側作業 まずはawscliを最新に更新します。…

AWS SAM でGolangのデバッグができるようになったので試してみた

RSSのフィードにAWS SAM CLIでGolangのデバッグができるようになったというニュースが流れてきました。 AWS SAM CLI Now Supports Debugging Go Functions and Testing with 50+ Events 確かにリリースノートにも書いてある。 Release Debug your Lambda Fu…

AWS CDK (AWS Cloud Development Kit) がとても便利そうなので触ってみた

AWS

これ触ってみました。 github.com インストール 使ってみる 架空の要件 開発 プロジェクト作成 初期のディレクトリ構造 初期状態のスクリプトファイル ドキュメント aws-cdk使って定義を書いてみる スタックのデプロイ スタックの一覧 デプロイ実行 スタック…

Aurora Serverlessが出たので早速テスト環境に適用してみた

社内でAuroraのサーバーレスというのが出たらしいというので触ってみました。 Auroraのサーバーレス? 日本語の方が理解しやすかった 検証機のDBを切り替えてみた 手順 スナップショット取得 インスタンス復元 起動を待つ 接続確認 設定を確認してみる 気づい…

サーバーレス開発を始めて6ヶ月間なので振り返りをしてみる

今の会社(BeeX Inc.)に来て、半年くらいサーバーレス開発をやってきました。 やっと人並みに(?)サーバーレス開発進められるようになったのと、開発が一息ついたので振り返りをしてみようと思います。 はじめに サーバーサイドについて 使用サービス Lambd…

AWS LambdaからSAP Jco経由でABAPを呼び出す

タイトルの件、調査がてら書きました。 デプロイ方法 レポジトリ取得 SAP JCoの準備 ビルド AWS Lambda作成 SAMでローカルテストとデプロイ ポイント 最新のライブラリ POJOを利用したデータを受け渡し Gradleにjarやsoを含める VPCでは注意が必要 デプロイ…

AWS SAMでSQSをイベントソースとしたLambda実行がサポートされたので動かしてみた

この件、SAMでも試してみました。 dev.classmethod.jp SAMが対応しているか見てみた 個人的に待ちに待った対応だったので、早速調べてみたら、嬉しいことにSAM側も既に対応されていました。 github.com 該当のCommitはこれでしょうか。 github.com 該当のCom…

AWS API GatewayとSAMとSwaggerとGolang構成での基本設定

調べる効率が悪いのか、タイトルの構成で基本的なところ動くまでも結構時間かかってしまいました。イチから調べるよりこういったスタート地点のがあると良いと思いますので残しておきます。 主にSAMとSwaggerの関連性の部分が厳しかった。。。 コード ディレ…

Vue.js+Bootstrap+Typescript+Highchart+AmazonCloudwatchのサンプルアプリ

これから開発するものの準備を兼ねて、Vue.jsとBootstrapと統合したBootstrap-Vue使ってHighchartsでAWS CloudWatchのグラフ描画するサンプルをTypescriptで作りました。 デモサイト 初期環境構築 追加パッケージインストール Typescript Highcharts Bootstr…

S3のバケットポリシー間違ったら、管理者権限でもアクセス拒否されるようになってしまった

AWS

S3のバケットポリシー調整したいたら、VPNのID間違っていたようで、どこからもアクセスできなくなってしまいました。 設定画面が全て、「アクセス拒否」、「Access Denid」になってしまいました。当然バケットポリシーそのものもアクセスできない。CLIからも…

DynamoDBStream+Lambda(Golang)でProblem Function call failedエラーで1時間くらいハマった

ハマったのでメモ。 ちゃんと設定できているように見えるのに、 こんな感じで、 PROBLEM: Function call failed のエラーが出る。 一応、更新があるとエラーが出るので、動いているようですが、ログ見てもeventがnilって情報が出ているだけで、そもそもHandl…

S3にアップしたZIPを別S3バケットに解凍するアプリでAWS SAM+Golang開発の流れを確認

SAM使っての開発の流れを勉強するために簡単なアプリケーション開発しながら、調べたことなど忘れそうなので備忘兼ねてメモしています。順次追記予定です。 例として作ってみたのは、S3バケットにアップロードしたZIPファイルを、他のS3バケットに展開する処…

AWS SAM ローカルを使用したサーバーレスアプリケーション(Golang版)

こちらの公式ドキュメントの「SAM Local によるシンプルなアプリケーションの構築」の項目をGolang版で動かしたメモ。 docs.aws.amazon.com 準備するのは以下の2ファイル dir/template.yaml dir/main.go ビルドと起動 # productsというファイル名でビルド $ …

ローカルPCを汚さずに手元のDockerでDynamoDBを手軽に検証する

前提 環境構築 awscliで接続してみる 関連URL 前提 この記事の手順で必要なもの。 Docker gitとかawscliとか抜けばDockerだけ。追加のソフトウェアインストールも不要です。 環境構築 この項目がこの記事のメインです。簡単にDynamoDBの検証環境がローカルに…

リードレプリカを使ってRDS(MySQL)をアップグレードする手順を自動化した

AWS

RDS(MySQL)を10台以上アップグレードする必要が出てきたのでこちらの手順をスクリプト化しました。 以下の公式手順を自動化したものになります。 MySQL DB エンジンのアップグレード - Amazon Relational Database Service こちらの記事も参考にさせていただ…

AWS ALB配下のノードが全てUnhealtyになった場合、リクエストが全ターゲットにルーティングされます

AWS

開発環境のALB配下唯一のEC2インスタンスがUnhealtyなのに、普通にアクセスできるので調べてみたらこんな挙動だということが。全く知りませんでした。sorry pageとか最低限のリカバリにはつなげやすいのかな。 ただ、監視をゆるめている開発や検証環境だと全…

AmazonLinuxの古いyumリポジトリを利用したい時の方法

AWS

掲題の件、備忘メモ。 まず、以下のURLで リリースノート の項目を見るとリリースの一覧があるのでリリースの名前がわかります。 https://aws.amazon.com/jp/amazon-linux-ami/ だいたい3月と9月に出るようなので2017.03とか2017.09とか。今現在の最新が2017…

AWS S3を保存先としたプライベートなDocker Registryを公式コンテナから簡単導入

タイトルの通り。作業メモです。 テスト用イメージ作成 テストで利用するイメージを作ります。 Dockerfile作って。 cat <<EOF > Dockerfile from alpine:latest ENTRYPOINT ["echo","myimage"] EOF ビルドして。 docker build --no-cache -t myimage . ビルドされ</eof>…

AWS ALBのアクセスログ分析環境をDockernizeしてローカルPCで実行できるようにした

AWS ALBのアクセスログをサーバ上のBananaで分析していたのですが、Docker使って手元のPC環境でも簡単に実行できるようにしました。 github.com 使い方 Repositoryをダウンロード git clone https://github.com/yomon8/alb-log-analyzer.git cd alb-log-anal…