ちゃんるいすのブログ

オタクエンジニアの雑記

覚書

k3OS で Kubernetes クラスタ環境を作る

Kubernetes 勉強したい 手順 1. k3OS iso download 2. ↑ の iso で VM を作る 3.1, server としてインストール 3.2. agent としてインストール 4. Reboot 後 3. 確認 Kubernetes 勉強したい ということで、自作サーバー3台(Proxmox)上に k3OS を3台用意…

俺的 Orchestrator まとめ

めっちゃ参考になるやつ。 yakst.comフェイルオーバーはしても Non-GTID だと CHANGE MASTER が実行されずに孤立した。 けど、↑ の yakst を見ると何も問題ないように書かれてる。 公式ドキュメントにも、GTID(Pseudo−GTID)じゃないと孤立するよとは書かれ…

Cloudflare WorkersKV を試す、ベンチマークもあるよ

Cloudflare WorkersKV 夢あって、個人サービスに導入してみたので感想 uploader.xzy.pw Cloudflare WorkersKV について 料金 始め方 公式 SDK で WorkersKV の操作 ベンチマーク 本番で Cloudflare WorkersKV を使うのはやめたほうが良いかもしれない たまに…

俺的 MySQL GTID レプリケーション

レプリケーション止まった時 1. どこで止まったか確認する 2. エラーになった GTID をどうにかする GTID なしのレプリケーションに戻す バックアップとリストア スレーブの追加 Got fatal error 1236 from master when reading data from binary log: 'The s…

Cloudflare を使って特定のサイトにアクセスする際に Google OAuth を要求する「Access」が便利

Cloudflare 使いこなしてますか?機能多すぎて全部試しきれてないです。 やりたいこと 特定のサイトにアクセスする際に、Google OAuthを要求して特定のメールアドレスのときだけ許可をしたい。 だけど、特定の IP からのときだけはバイパスしたい。 Cloudfla…

Ansible AWX で既存の Inventory を読み込む

背景 既存の inventory を Ansible AWX で使いたい。 (ちなみに、Ansible AWX は動的インベントリを推奨しているのをドキュメントから感じる) 前準備 先にインベントリを GUI 上から作成しておく。 dev stg prd 実行 tower-cli ではなく、コンテナに入って…

Ansible AWX のアップグレード方法

3.0.0 -> 4.0.0 へのアップグレードをしたので覚書 インストール方法は release ページからファイルを落としてきて local_docker流れとして 1. バックアップ 2. 現環境を壊す 3. 新しいバージョンの AWX で環境を作る 4. バックアップから復元このやり方が公…

Goでビルドしたものを超簡単にrpmとdebにパッケージしてLinux向けに配布する

Linux サーバーで動かすことを前提に書いたものを Linux 向けに簡単にインストールさせるためにいちいち Go を入れたりするのは面倒。 あと、GitHub Enterprise(GHE)とかを使っているとパブリックなリポジトリに対してもトークンが必要だったり超面倒。な…

Go で Elasticache の Auto Discovery に対応する

PHP や、.NET の memcached クライアントは、AWS 公式で Auto Discovery に対応したライブラリを出してるけど Go にはない。 ので Go で書いてみた。configuration endpoint を叩いて、ノードのエンドポイントを取得するまで。↑ のように configuration endp…

Lambda@EdgeをCircleCI(Apex+シェルスクリプト)でデプロイする

Lambda@Edge のデプロイについて serverless framework や Apex では Lambda@Edge のデプロイが可能です。 しかし、serverless framework では記述内容も機能も多すぎるため1ファンクションだけ Lambda@Edge を使いたい場合には少し重すぎるため Apex + シ…

EC2の自動停止・起動を超柔軟に超簡単に実現する「AWS Instance Scheduler」

AWS Instance Scheduler aws.amazon.comAWS の中の人が作っていて 元は EC2 Scheduler という名前だったのが、AWS Instance Scheduler に変わった。テンプレートが用意されているので、CloudFormation で実行すれば構築が終わるという素晴らしい仕組み。 ア…

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)はたくさんありま…