るいすときのこの物語

オタクエンジニアの雑記

覚書

Ansible AWX 「サーバーエラーが発生しました。」を解決する

根本原因は分かってないけど postgres 関連。 pg_data_dir を /var/tmp/pg_docker にしていたけどいつの間に死んでいた。 ※ 更新 /var/tmp は消えないもんだと思ってたら普通に消える [root@test cron.daily]# cat /usr/lib/tmpfiles.d/tmp.conf # This file…

データのバックアップに悩むくらいならクラウドストレージの「Backblaze」に保存するのが賢いぞ

胡散臭いタイトルになってしまった。皆さんは自宅のファイルサーバーのバックアップはどうやって取ってますか? RAID とかですか?バックアップ用の HDD に流してるとかですか?でも家燃えたらどうします?Backblaze 良いですよ。 Backblaze とは www.backbl…

Fargate + gRPC で B/G とカナリアリリースを実現する

構成 課題① こんな構成のとき、API のタスクだけを更新する際に Blue/Green とカナリアリリースを実現するときにどうするのが良いか迷ったのでまとめておきます。 gRPC なので、Front -> Internal ALB -> API では、Internal ALB API は HTTP/1.1 になるため…

Ansible AWX + tower-cli の --limit が動かない問題

--limit が動かない $ tower-cli job launch --job-template=1 --limit $(hostname -f)こうしても、--limitが効かずに全インベントリに対して実行される。 原因はテンプレートの設定 制限の起動プロンプトにチェックを入れる制限はいわゆる、--limitのことな…

Ansible AWX のバックアップ・リストアのやり方(Docker編)

TL;DR バックアップ・リストアはできた。 コンテナ(awx_task)に直で入れたもの以外は全て復元できた。 概要 Docker で構築した Ansible AWX のバックアップ・リストアのやり方 環境 pg_username=awx pg_password=awxpass pg_database=awx Backup 1. postgr…

Ansible AWX Exception: project_update xx (failed) encountered an error (rc=2), please see task stdout for details の対処法を見つける方法

Exception: project_update 71 (failed) encountered an error (rc=2), please see task stdout for details ジョブがエラーになるジョブを実行した結果、プロジェクトのアップデートの段階でエラーが出たからエラーログを見て というエラー。 しかし、 http…

AnsibleでOpenStackのserver groupを適用したインスタンスを作成する

Ansible で OpenStack を使う準備 openstacksdk openstack credentials interpreter openstacksdk Ansible は brew とかで入れるより、外部モジュールを使う際は Ansible も pip で入れたほうが幸せになれる。 $ pip install openstacksdk openstack credent…

Cloudflare「Error 1000: DNS points to prohibited IP」の解決

概要 こんなシステムのとき、ユーザーから Cloudflare を通って最上段のリバプロのバックエンドが Cloudflare + proxy:on の環境のとき、「Error 1000: DNS points to prohibited IP」というエラーがでる。support.cloudflare.com 発生条件 以下のどれかに当…

個人サービスに定額課金を超手軽に導入する「Stripe」

概要 個人サービスで開発しているサービスに定額課金を試しに導入してみたくて、Stripe を使ってみたら最高に簡単に導入できたので紹介したいと思います。 uploader.xzy.pw Stripe 決済プラットフォームです。PayPal もそうです。 今回 PayPal を使わなかっ…

Ansible AWX + tower-cli で Toil を無くしていきたい

新社会人になって、気づけばもう半年が過ぎた。 体調を崩すと治るまで時間がかかったり、老いを感じる23歳(童貞)です。Ansible Advent Calendar 2018 の3日目の記事です。 2日目は、tomonorimatsumura さんの「AnsibleでCentOS7へジョークプログラムを…

Nginx で logrotate したのに新しいファイルに書き込まれない

nginx -s reopenでエラーがでないなら "/var/log/nginx/access.log" "/var/log/nginx/error.log" { missingok notifempty daily rotate 7 su nginx nginx create 666 nginx nginx notifempty sharedscripts postrotate nginx -s reopen endscript }こうしま…

MySQL でスレーブ複製編 via ディレクトリごとコピー

mysql前回は XtraBackup を使って、スレーブを止めずにスレーブを複製する方法を書きましたが 今回はスレーブを止めて、スレーブを複製する方法を覚書で書いておきます。 blog.luispc.com (複製元)複製先へ datadir をコピー # systemctl stop mysql # scp…

俺的 Proxmox をインストールしたらやること

Proxmox 使ってますか?KVM や LXC を管理できる無料の仮想アプライアンスです。 WebGUI、ドキュメントも管理されており、OpenStack などよりも小難しいことがなくて大変便利です。最近、Proxmox をもう1台追加してクラスタ化したものの色々と躓いたことが…

Percona XtraBackup で DB を止めずにバックアップ/リストアする

MySQL のスレーブ複製をダウンタイムなしで行う

SSH 時にリモート先でコマンドを実行する

Install sshrc# wget https://raw.githubusercontent.com/Russell91/sshrc/master/sshrc && chmod +x sshrc && sudo mv sshrc /usr/local

DBストレージエンジンまとめ

Archiveデータのアーカイブに最適されている。 テーブルデータを圧縮してディスク上でのデータ格納量を低減することを目的としたストレージエンジン。 クラスタや、トランザクション、インデックスがサポートされていない、INSERT と SELECT をサポートされ…

Goを使って画像の類似度を超簡単に行う / perceptual(image) hash

コンビニの有人レジがすごい混んでるのに、セルフレジを誰も使わない日本人を理解できない長谷川です。 概要 2つの画像の類似度を算出したい。 得られるハッシュ値は64bit 対象は静止画, 画像, 音声等のマルチメディアデータ コンテンツ内容が類似している…

AWS-SDK-Goを使って、ユーザーが投稿したファイルをS3から削除してみる

はじめに S3でユーザーが投稿した画像を管理している場合、ユーザーがアプリを退会した際にユーザーに関する情報、S3からもユーザーのファイルを削除する必要性があります。 S3上のプレフィックスは userID/ となっており、全体のキーはbucket/userID/fileNa…

Locustで初心者がAPIサーバーの負荷試験をやってみた

この記事はチラ裏です。僕の頭の中を整理するためだけの記事です。 寒いなぁ...寒いなあ... 卒論を提出して2/6にはパワポとレジュメを作成して発表です。 負荷をかけるツールはいっぱいある 便利な世の中なので負荷ツール(Load test tool)はたくさんありま…

Node.jsでjpgをwebPエンコードする

前回の記事の続きのような https://luispc.com/memo/2017/12/13/9610 node-cwebp を使う https://github.com/Intervox/node-webp cwebp のラッパーです。 cwebp は Google 公式のライブラリです。 使ってるコードをそのまま載せます。 対して長いコードでは…

Lambda+S3+EC2を使用してできるだけ安くリアルタイムwebPエンコードをやってみる

S3にアップロードされる jpg画像をリアルタイムで webP にエンコードしたかったので 色々やってみた。 要件 S3 バケットには毎月1000万枚の2.2MB程度の jpg画像がアップロードされると仮定 これをアプリが引っ張る前にできるだけで速く webP にエンコードす…

CentOS7/UbuntuからWindows10のPCをリモートシャットダウンしてみる

Windows側 管理者権限+パスワード設定がしているアカウントを作成する(既にある場合はスキップ) TCP:445, 139 を開ける Linux側 コマンドを入れる Debian系:apt install samba-common RHEL系:yum install samba 実行する net rpc shutdown -I ipaddress…

RDS for MySQL でSELECT結果をCSVに吐き出す

機会があって調べていると一筋縄ではいかなかったので覚書。 2ヶ月ぶりの記事ですが普通に生きています。 INTO OUTFILE は使えない RDS for MySQL(Aurora) v5.6.10 では INTO OUTFILEを実行するとエラーで使えない ERROR 1045 (28000): Access denied for u…

Systemdで動かすNode.jsでnewrelic agentを使う

また Systemd の話です。 https://luispc.com/memo/2017/08/01/9481 https://luispc.com/memo/2017/08/19/9542 今回はバックエンドに newrelic を導入しようとしたところ、 うまく動作しなかったため解決策を載せておきます。 原因 Systemd のせいです。 new…

GolangのGinをSystemdで動かすのにハマった

背景 デプロイ先のサーバーでビルドしたものを 以下のようなUnitファイルを作ったら起動できなかった話 [Unit] Description=Run Gin [Service] User=root Group=root Environment="SERVER_ENV=production" ExecStart=/home/jenkins/go/src/hoge/gin release …

Slackにネイティブアプリのエンジニアに優しいBOTを作ってみた

皆さんSlack使ってますよね。 今じゃIT企業以外にもSlackが導入されてて日本への浸透も広がってきたと思います。 背景 今は趣味で色々やってるんですが、開発したAPIを叩くiOSエンジニアに 「最近のアクセスログが欲しい」 「エラーログ見せて欲しい」 等、…

MySQLのデータベースをインポートする際に存在するテーブルのレコードを削除せずにALTER文を作成、実行するスクリプトを作った

先月末に数学のテストを終えました。 C単位は降ってきてほしいと切に願います。 あと、中間発表を控えてます。 背景 ステージング環境のDBをプロダクション環境のDBへインポートする際に レコードを消すわけには行かず ・プロダクションにないテーブルは作成…

Node.jsのプログラムをsystemdで動かすと意図しない動作をどうにかする

背景 Node.jsで書かれたプログラムをsystemdで動かすと 実行ディレクトリが変わってソースによっては意図しない動作をします。 例 コード const fs = require('fs'); const path = require('path'); setTimeout(() => { delete require.cache[path.resolve('…

Vultr.com $5 VPS と AWS EC2 t2.micro どっちがオススメか

初めて精神安定剤みたいのを買いました。 今後外出するときは使用してみたいと思います。 背景 会社のHPなどサービスを提供する際に停止してもそこまでクリティカルでないものを 如何に安く運用するかと考えたときにVPSかEC2かで悩んだので色んな観点からま…

作ったAMIからインスタンスを作成するとSSHのパラメーターが変わる

背景 Auto Scaling Group の起動設定の元となるAMIを作成する際に SSHのPasswordAuthentication yesとしてAMIを作成をすると 復元するときにPasswordAuthentication noに戻ってしまう問題 原因 cloud-initが原因 (変更前) ssh_pwauth: 0 (変更後) ssh_pwauth…