goodbyegangsterのブログ

備忘録的な

sns(simple notification service)で、sms(short message service)を利用してみる

sns(simple notification service)で、sms(short message service)を利用したことがなかったので、調べた時のメモです。公式マニュアルはこちらです。 Amazon SNS の SMS メッセージを送信 - Amazon Simple Notification Service プリファレンスの設定 まず…

Squidの構築

SquidのProxyサーバを何年ぶりくらいに構築することになったので、その時の内容をメモしておきます。 環境 インストール デフォルト設定の確認 ACLタグ http_accessタグ http_portタグ cache_dirタグ coredump_dirタグ refresh_patternタグ キャッシュ機能の…

Redshiftにて、DBユーザーの権限をいい感じに管理する方法

Redshiftにおいて、DBユーザ向けに、あるスキーマ内にあるオブジェクト(tableとかviewとか)に対する権限を付与しようとした場合、今まで以下のSQLを利用していました。 GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO GROUP db_user_group; しかし、…

RedshiftのWLMにて、同時実行クエリ数が合計16以上でも、SQAを利用する方法

日経techブロクのこの記事を読んでいて知ったこと。 Redshiftを数百人で使うためのコツ(クラスター構成編) — HACK The Nikkei AWS コンソールでは、SQA の有効化には同時実行数の合計が 15 以内であることが必須になっているため、CLI を用いて WLM 設定を…

Aurora PostgreSQLの照合順序(言語のロケール)とタイムゾーンの設定

Aurora PostgreSQLでは、デフォルトの照合順序(言語のロケール)とタイムゾーンの設定が日本での利用に最適化されていません。デフォルトでは、以下のようになっています。バージョンは、9.6.9です。 sample=> \l List of databases Name | Owner | Encoding …

Aurora PostgreSQLにて監査ログを取得する

Aurora PostgreSQLにて、監査ログを取得する設定を実施します。 環境情報 Aurora PostgerSQL 9.6.9 今回利用するpgauditを利用した監査ログ取得方法は、バージョン9.5以降でないと利用できません。 pgauditについて RDSでも、Auroraでも、Postgreで監査ログ…

Aurora PostgreSQLへの接続をSSL限定にする方法

Aurora PostgerSQLに接続する際に、SSLの暗号化通信にて接続する方法を試します。公式のマニュアルはこちらです。 SSL を使用した DB インスタンスへの接続の暗号化 - Amazon Relational Database Service 環境情報 Aurora PostgerSQL 9.6.9 接続してみる Au…

IAMのポリシー設定を、AWSリソースに付与されたタグによって管理する方法

タグで管理できることを知らず、便利だと思ったので、メモしておきます。 EC2の場合 サンプルとなるのは、この公式サイトですね。 IAM EC2 リソースタグ Condition Keyで指定できる条件一覧です。タグの他に、VolumeSizeとかでも指定できたんですね。 ポリシ…

GlueのCustomClassfierの使い方

Glueのデータカタログ機能て、すごい便利ですよね。 Glueデータカタログとは、DataLake上ファイルのメタ情報を管理してくれるHiveメタストア的なやつで、このメタストアを、AthenaやRedshift Spectrumから簡単に参照出来ます。マネージドサービスとなるので…

EFS(Elastic File System)の利用方法

EFS(Elastic File System)を試してみます。 前提情報 EFSとは、AWSにおけるNFSのサービスですね。 以下の図は公式サイトのドキュメントから持ってきたものです。AWSネットワーク上に共有ファイルとなるファイルシステムが存在し、各サブネットにマウントター…

IAMユーザに多要素認証設定する時のIAMポリシー例

AWSにて、IAMユーザのログイン時に多要素認証をさせたい場合、当然、そのユーザ自身で自分のMFA設定も実施させたい訳で(そんなの管理者側でやってられない)、その際に利用するIAMポリシーとなります。AWSマニュアルにてズバリ紹介されているので、そのまんま…

ECRにコンテナイメージをpushする方法

AWS ECR(Elastic Container Registry)とは、AWSにて用意されたPrivate Docker Resistryサービスです。今回は、ローカルで作成したコンテナイメージを、こいつにpushする方法を記載します。 事前準備 まず、pushするためのイメージをローカルのdocker環境に用…

csvファイルをparquetファイルに変換する

pandasとApache Arrowを利用して、ローカル環境でcsvファイルをparquetファイルに変換する方法を記載します。ファイルサイズの小さいものであれば、今回の方法で対応できます。 そもそもparquetとは、 Apache Parquet is a columnar storage format availabl…

widnwosにdocker toolboxをインストールする

windowsのクライアント環境で、Docker Toolboxを利用して、docker環境を作成したときのメモです。 環境情報 Windows 10 Pro Docker Toolbox 18.03.0 Docker Toolbox vs Docker for Windows WindowsでDocker環境を作成するものに、 Docker Toolbox と Docker …

xfsのファイルシステムにて、利用されるinode数を変更する

xfsのファイルシステムでは、利用可能なinode数が可変になっています。これ、知りませんでした。ファイルシステムのクラスターサイズ(アロケーションユニットサイズ)内で、inode領域として確保されるサイズ・領域を変更することが可能となっており、これによ…

Redshift Spectrumを利用してみる

Glueのデータカタログを使用して、Redshift Spectrumを利用する方法について、まとめておきます。 公式のマニュアルはこちら。 Amazon Redshift Spectrum を使用して外部データにクエリを実行する - Amazon Redshift 利用にあたり前提条件 Redshift Cluster…

Glue 開発エンドポイントを、ローカルWindows PC上のZeppelinから操作する

Apache Zeppelin とは、Sparkをサポートするnotebookで、SparkをいじるためのJupyter notebookみたいなやつです。これを利用して、GlueのSparkを操作してみます。 Glueのコンソールには、EC2のZeppelinサーバをLaunchするための設定が用意されていますが、結…

Redshiftで、ファイルを指定してCOPY処理をする方法

Redshiftにデータを投入する方法は色々用意されていまうが、一般的には(且つ推奨されている方法では)、RedshiftのCOPYコマンドを利用する方法です。 基本的にロードしたいファイルをS3上に置いておき、COPYすることになるのですが、COPYコマンドのみでの実…

RedshiftとAurora(PostgreSQL)でdblinkを貼る方法

Redshiftには、マテリアライズド・ビューを作成する方法は用意されていません。Redshiftはデータウェアハウス向けに設計されたデータベースであるが故、以下の様な理由により、その機能を用意していないのだと考えています。 データウェアハウスは、恒常的に…

AWS Glueの開発エンドポイントの利用方法

GlueでPySparkプログラムを開発するための、開発エンドポイント作成方法について記載します。 公開鍵/秘密鍵の作成 Glueエンドポイントへのアクセスは、公開鍵/秘密鍵が必要となります。ので、OpenSSH形式の公開鍵/秘密鍵を、事前に作成しておきます。 エン…

Redshiftで、クラスターのノード数により、テーブルのデータサイズが増減するという話

題名の通りなのですが、増減します。詳しい解説は、以下のナレッジページにあります。 Redshift クラスターのストレージスペースについて理解する Redshiftのテーブルサイズを決定する要員として下記があります。 The number of populated slices on each Am…

RHEL7のEC2でルート領域を拡張する

EC2上のRedHat Enterprise Linux 7にて、ルート領域を拡張します。rootユーザで作業してます。 事前確認 今は10GBです。 # df -h | grep /dev/xvda2 /dev/xvda2 10G 924M 9.1G 10% / # # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 …

ACMにて、サブドメインまたはワイルドカードを利用してパブリック証明書の発行

ACMの証明書発行をたまに実施するのですが、たまに実施するが故に細かい所をいつも忘れているので、備忘録として記載しておきます。 サブドメインのパブリック証明書発行作業 ACMでのパブリック証明書発行のためには、ドメイン検証処理を行う必要があり、サ…

Redshiftにおいて監査ログを出力する方法

Redshiftにおいても、一般のRDBと同等レベルのAuditLogを取得可能です。その方法について、まとめておきます。基本的にマニュアルの記載をざっくりまとめたものなので、詳細については以下の公式マニュアルを見てみて下さい。 データベース監査ログ作成 - Am…

EMRでSpark環境を用意する

AWSのEMRを利用して、Apach Spark環境を作成してみます。EMRのバージョンは、5.14.0です。 EC2キーペアの用意 EMRで作成されたEC2で利用する、EC2キーペアを用意しておきます。 EMRでクラスタ作成 advanced optionsを選択 AWSコンソールのEMRコンソールに移…

Data Pipeline の ShellActivity で利用されるOSユーザについて

結論から言ってしまうと、 ec2-user です。「当たり前だろ」って感もありますが、マニュアルには書いてくれていないので。 尚、Task RunnerのEC2として利用できるAMIは、独自にも設定でき(LaunchさせたいAMIの指定パラメータ部分で、自分で作ったamiのidを指…

Redshiftを構築しながら思ったこと

Redshiftを触りつつ、思ったことを資料にまとめたので貼っておきます。以下のslideshareとなります。 Redshift構築メモ from goodbyegangster www.slideshare.net Redshiftに関しては、上記以外にも色々まだ書きたいことがあるので、ブログにメモしていきま…

WindowsでSpark(PySpark)環境をつくる

Windows10でPySparkを動かします。 JDKのインストール SparkそのものはScalaで作られているのでJavaの環境が必要です。Java Deployment Kit のバージョン7以降をインストールしておきます。Oracleのサイトからインストールexeファイルをダウンロードして実行…

WindowsのVargrantでCentOSを起動する

環境は以下です。 Windows10 VirtualBox 5.2.12 Vargrant 2.1.1 CentOS7 VirtualBoxのインストール 以下のサイトから、Windows用のVirutalBoxのモジュールを持ってきてインストール。 Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracl…

Data PipelineのSQL Activityで実行するSQLファイルに、複数のクエリを記載する

マニュアルには記載がないようなので、書いておきます。 Data PipelineのSQL Activityで、1度に複数のSQLクエリを実行できるか、という話です。S3に置いた1つのSQLファイルに、複数のステートメントを書いて実行きるのか否か、という話。結論からすると、 …