goodbyegangsterのブログ

備忘録的な

PostgreSQLのFILLFACTORとHOTについて

調べたことまとめ。 FILLFACTORとは FILLFACTOR とは、ページにテーブルやインデックスを格納する際、敢えて空き領域を作成していく仕組みとなります。公式ページの説明です。 テーブルの場合。 テーブルのフィルファクタ(fillfactor)は10から100までの間の…

dockerfileのlinterを使う

dockerfileのlinterである hadolint を利用してみます。 hadolint 環境情報 windows 10 Pro インストール scoopのインストール windowsユーザは、 scoop を利用してインストールする手順が紹介されています。 scoop とは、様々なモジュールをコマンドライン…

テスト用のplaybookで利用できるモジュールたち

Ansibleでテスト用のplaybookを書く時の、一般的な使い方をまとめておきます。 環境情報 wait_forモジュール port生死の確認 ファイル内文字列の確認 assertモジュール コマンド実行結果を確認 failモジュール webサイトのページ確認 参考:テスト用playbook…

PostgreSQLの、テーブル・インデックスのメンテナンスについて

テーブルやインデックスで必要となるメンテナンス処理についての備忘。 調べた結論だけまとめておくと、下記といった感じでした。 auto vacuumを有効にしておく(デフォルトで有効) かつ、適当な頻度でauto vacuumされていることを、定期的に確認する index…

playbookのテストで利用できるオプションやlinterについて

Ansibleで書いたplaybookのテストを実行できる方法をまとめています。 環境情報 シンタックスチェック playbookのdry run(チェックモード) チェックモードの問題点1:依存関係のあるタスクでの利用 チェックモードの問題点2:チェックモードをスキップす…

PostgreSQLでテスト用データを作る方法

検証用として利用できるデータベース、レコードを作成する方法を、先人たちの知恵を元に記載していきます。 環境情報 サンプルデータベースの作成 レコードを作成する serialな整数の生成 randomな整数の生成 randomな文字列の生成 randomな長い文字列の生成…

Ansible Vaultで機密情報を管理する方法

AnsibleのPlaybookで、パスワード等の機密情報を記載したい場合があります。テンプレートファイルを見れば、パスワードが丸わかりとなってしまうため、これを暗号化して利用する方法が用意されており、それが Ansible Vault となります。 公式ドキュメントは…

pg_hba.confの書き方

PostgreSQLの、 pg_hba.conf についてまとめていきます。 クライアント認証はデータベースクラスタのデータディレクトリ内の、伝統的にpg_hba.confという名前の設定ファイルで管理されています (HBAとは、host-based authentication: ホストベース認証の略…

Ansibleのcommandモジュールで冪等性を担保する

Ansibleにてモジュールの用意されていない操作を実行する場合、OS上でコマンドを実行してくれるモジュールが用意されています。 command や shell がそれにあたります。 Ansible - command Ansible - shell しかしながら、公式では可能な限り command モジュ…

PostgreSQLでDBを作成する

テーブル空間を作って、そこに新規データベースを作成する手順です。 環境情報 CentOS 7.6 PostgreSQL 10.7 テーブル空間の作成 そもそもテーブル空間とは、 PostgreSQLのテーブル空間により、データベース管理者はデータベースオブジェクトを表すファイルを…

Ansibleで試しにRoleを作ってみた

Ansibleによりnginxを設定してみます。 ansible-garaxyにあるRoleを引っ張ってくる方が早いのでしょうが、Ansibleの勉強も兼ねて、自分でRoleを作ってみます。 環境情報 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ansible --version an…

PostgreSQLのインストール

PostgreSQLインストール時の設定メモです。 公式の参考サイト 環境情報 CentOS Linux release 7.6.1810 (Core) PostgreSQL 10.7 PostgreSQLの初期設定 必要パッケージのインストール yum用リポジトリのインストール。 $ sudo yum -y install https://downloa…

nginxでReverse Proxyを設定する

nginxのリバプロ設定方法をメモしておきます。 環境情報 nginx version: nginx/1.15.12 参考情報 公式のAdmin Manual upstreamコンテキストを作成 Module ngx_http_upstream_module server ディレクティブで、バックエンドのサーバを指定 複数指定する場合は…

nginxにLet's Encryptの証明書を入れる

Let's Encryptを利用することで、nginxにTLS証明書を設定する手順を確認します。作成する証明書は、ワイルドカード証明書となります。 環境情報 Amazon Linux2 nginx/1.15.12 Python 2.7.14 certbot 0.31.0 試してみる Let's Encryptの証明書を取得するのに…

「RDBの正しい歩き方」を読んだメモ

すごい面白い本だったので、心に残った部分をメモしておきます。 失敗から学ぶRDBの正しい歩き方 (Software Design plus)作者: 曽根壮大出版社/メーカー: 技術評論社発売日: 2019/03/06メディア: 単行本(ソフトカバー)この商品を含むブログを見る 第2章 …

nginxへのアクセスをIPアドレスで制限する

nginxにて、IPアドレスを用いてアクセス制限する方法を、以下3パターンで記載します。 ClinetIPにてアクセス制限を行う方法 ロードバランサー等を経由している通信で、ClinetIPにてアクセス制限を行う方法 ロードバランサー等を経由している通信で、経路途…

DatadogをTerraformで操作する

TerraformでDatadogを操作する Datadog Provider を利用して、DatadogのMonitor設定を試してみます。 公式ページはこちら。 Provider: Datadog - Terraform by HashiCorp Datadog社の紹介ブログです。 Managing Datadog with Terraform | Datadog 環境 Windo…

DatadogでFargateを監視する

FargateをDatadogで監視してみます。前回調べたECSでは、ECS Container Instance(Docker Host)のDockerソケット等をコンテナ上にマウントして情報収集するという方法でしたが、Dockerホストが公開されていないFargateではどのように収集しているのか、併せて…

WindowsサーバーにAnsibleから接続する

Windows2016のサーバーを、Ansibleで操作するための、接続設定を行います。公式のWindows関連のAnsibleマニュアルはこちら。 Windows Guides — Ansible Documentation 検証した環境 Host側 Windows2016 DataCnenter Clinet側 Windows10 Pro WSL(Ubuntu 18.04…

DatadogでECSを監視する

AWSのECSで動かしているコンテナを、Datadogで監視する方法です。 こちらは、公式のマニュアル。 Amazon Elastic Container Service こちらは、公式の紹介ブログ。 Monitoring ECS with Datadog | Datadog 前提 ECS Container Instanceが存在 Datadogには、A…

Docker Composeを利用してみる

Docker Composeを触ってみました。公式のクイックスタート・ガイドがあるので、それを参考に作業してみます。 Get started with Docker Compose | Docker Documentation FlaskとRedisの環境を、Docker Composeで作成します。 環境情報 Windows10 Pro Virtual…

EC2 External Inventory Scriptを使って、EC2のDynamic Invetoryを利用してみる

AnsibleでInventoryファイルをイチイチ管理するのがめんどくさい。ということで、「EC2 External Inventory Script」を試してみました。これはAWSのEC2に対するdynamic investoryを作成してくれるAnsibleのスクリプトになります。公式のドキュメントはこちら…

CloudwatchLogsをDatadogへ連携する

AWSのCloudwatchLogsやs3上のログを、DatadogのLogManagementまで連携するための設定を調べてみました。公式のマニュアルはこちら。 AWS 連携用Lambdaファンクションを用意 まずAWSから各種ログを、Datadogまで連携するためのLambdaファンクションを用意して…

DatadogでLinuxジャーナルログを収集する

DatadogでLinux上のジャーナルログを収集してみようかと思います。 まずはじめに、Datadogでログ管理するには、一般的なDatadogライセンス(Infrastructureというやつ)とは別に、「Log Management」というライセンスが必要となります。料金はこんな感じ。 P…

ansible-galaxyを利用する

ansible-galaxyは、Ansibleで利用するRoleをまとめている、Githubみたいなサービスです。色んな企業や有志の方が、Ansibleで利用できるRole集を公開してくれています。これを使えば、自分でPlaybookを書かなくて済みますし、自分でPlaybook書く場合でも参考…

Windowsにて、踏み台サーバ経由でAnsibleを利用する方法

クライアントがWindows10の環境にて、踏み台サーバ経由でAnsibleを利用する方法を記載します。AnsibleのPlaybookの実行はwsl上で実行するのですが、Ansibleの各種定義ファイルはWindows側ファイルシステムに置いてある方が管理しやすいことも多く、その点を…

CloudFormtaionのECSタスク定義にて、ログ設定をawslogsにしようとしたらハマった

ECSのタスク定義をCloudFormationで書いていて、ハマったところがあったのでメモしておきます。 事象 タスク定義内のコンテナ定義にて、LogConfigurationの値をawslogsにしたところ、作成されたタスク定義を起動しても、コンテナ起動に失敗してしまう。 詳細…

WindowsのWSLで、Ansbileを利用する方法

Ansibleのplaybookを実行するにはLinux環境が必要となるため、Windowsで利用するには工夫が必要となります。今回は、WindowsのSubsystem for LinuxのUbuntu環境を用いて、Ansibleを利用する方法を記載します。 環境情報 Windows 10 Pro Windows SubSystem fo…

Redshiftにおけるロックの概念

Redshiftにおけるロックの考え方について、まとめておきます。以下は参考となるAWSナレッジのサイトです。 Amazon Redshift でのクエリのブロックを防ぐ方法 Redshiftの分離レベル まず、Redshiftの分離レベルは、 SERIALIZABLE となっています。基本的な4…

WindowsでCodeCommitを使ってみた話

AWSのCodeCommitでは、gitリポジトリへの接続方法として httpsモード と sshモード が用意されています。AWSではhttpsモードを推奨しています。httpsモードであれば、管理するのはIAMユーザのみとなり、sshの秘密鍵を管理しなくて良くなるので、こちらを推奨…