るいすのブログ

オタクエンジニアの雑記

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

GTID & 非GTID の混合レプリは無理 レプリケーション止まった時 1. どこで止まったか確認する 2. エラーになった GTID をどうにかする GTID なしのレプリケーションに戻す バックアップとリストア スレーブの追加 Got fatal error 1236 from master when rea…

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…

Ansible AWX で .ssh/config を適用させたい

コンテナの中に入って root ユーザーの .ssh/config を設定すればOK [local]$ docker exec -it $( docker inspect --format="{{.Id}}" awx_task ) bash [root@awx awx]# mkdir ~/.ssh && vi ~/.ssh/config Host github.com User git Hostname ssh.github.com…

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 を使わなかっ…

社会人になって半年経ったので適当に雑感を述べる

社会人半年だったので適当に感想を述べたいと思います。 適当なので信頼度とか質は期待しないでください。CyberAgent Developers Advent Calendar 2018 23日目の記事です。 adventar.org CyberAgent に入社した 大学時代はインターンにサイバーエージェント…

勉強のために作ったWebサービスをアプリに載せたらAppleと激闘した話

この記事は「個人開発Advent Calendar 2018」の6日目の記事です。 昨日は asmz さんの「IT勉強会検索iOSアプリをリリースした話」でした。普段はインフラエンジニアとして適当に仕事をしています。 今まで個人でいくつかリリースしてきたサービスの中で1つだ…

パニック障害的なメンヘラ病を3年かけて治した話

iPad Pro 2018 年モデルを買ったのでバスの中で記事を書いてみる。僕は3年前の大学2年生ぐらいのときから、パニック障害的な(そう診断されたわけじゃない)ものに悩まされて、ここ最近マシになってきたので悩める人たちへの助けになりたいと思ってこの記事…

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 }こうしま…

iPhone XS Max に最適な絶対にミスらない大人気ガラスフィルム「Belkin InvisiGlass Ultra Screen Protection for iPhone XS Max」が最高

iPhone XS Max を買ったので、ガラスフィルムを買わなければと。 そんな中で、Belkin InvisiGlass Ultra Screen Protection for iPhone XS Max を買ってみたら 最高だったのでご紹介したい。 iPhone XS アンチグレア クリアフィルム iPhone XS Max アンチグ…

ネームサーバーを変更せずに独自ドメインを Gmail で使いたいなら「さくらのメールボックス」が絶対にオススメ

独自ドメインの NS は普段 CloudFlare で管理していて、 独自ドメインを Gmail で使いたいなと思ったとき さくらのメールボックスでいい感じにできたのでご紹介したい。 独自ドメインを Gmail で使う方法は色々ある SES + S3 + Lambda THE 面倒 これにつきる…

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

SCP (複製元)複製先へ datadir をコピー (複製先)ファイルの配置 nc 受信側 送信側 レプリケーションについて MySQL 5.5 まで(複製先) MySQL 5.6から(複製先) 前回は XtraBackup を使って、スレーブを止めずにスレーブを複製する方法を書きましたが …

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

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

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

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

Wordpress からはてなブログ Pro へ移行した

ちょっと涼しくなったと思ったらまた暑さが戻ってきた。 はてなブログ Pro へ移行した Wordpress が嫌になったわけではなく、はてなブログに興味があって移行してみた。 もちろん独自ドメインを使いたかったので 2年で 15,000円の Pro にもした。 今まで lui…

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

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