雑文」カテゴリーアーカイブ

lsyncd でファイル変更監視して、S3にアップロードする

WordPress のメディアファイルを自動でバックアップしたり、CloudFront のオリジンにするために wp-content/uploads/ の中身を S3 にアップロードするようにしたいなぁとか言う要望が結構あります。
特に AutoScaling 構成にする場合は、ソースファイルについては git リポジトリなどで管理すればいいですが、ダッシュボードからアップロードされるメディアファイルについては git リポジトリに含めるわけに行かないっすよね。
そんな時、僕の作ったプラグイン絡新婦とか、Amazon S3 for WordPress with CloudFrontとか使うわけですが、なんと 4.3.x 系ではちゃんと動かないような気がするんです

まぁ、僕が絡新婦をメンテナンスすればいいのですが、最近 php プログラム書くの辛いので代替手段として lsyncd でファイル変更を監視して S3 に自動アップロードするようにしてみました。
参考URL: lsyncdをrsync以外の用途で使う – Qiita

続きを読む

AWS WAF で CloudFront 環境にIPアドレス制限を設定する

本番環境で CloudFront を使用しているため、ステージング環境でも CloudFront を適用したいとかって要望は多々あると思います。
ただ、ステージング環境なんで全体に公開はしたくない、IPアドレス制限とかかけたいってなりますよね。
そんな時、今までは署名付きURLとか署名付き Cookie とかで対応せざるを得ませんでした。

参考URL

結構、めんどくさい。

そんな、僕達のために re:Invent 2015 に合わせるように発表された新サービス AWS WAF という救世主が現れましたよ。
この記事では AWS WAF を使用して、IP アドレス制限された CloudFront ネットワークを作成する方法をざっくり解説してみます。

続きを読む

BASHの脆弱性でCGIモードで動いてるPHPにアレさせてみました

タイトルはパクリ
元記事: BASHの脆弱性でCGIスクリプトにアレさせてみました – ブログ – ワルブリックス株式会社

sakura のレンタルサーバが cgi モードで php 動かしてるよなーと思ってテストしてみたらできました。
# テストスクリプトは削除済みです。
続きを読む

WordPress プラグイン開発のバイブル

私が執筆した WordPress 関係の本としては二冊目となる「WordPressプラグイン開発のバイブル」が 7/22 に発売されました。
これは 宮さん西川さん三好さん達との共著になります。

以下に序文を引用します。

WordPressは世界の7,000万サイト以上で使用されており、CMSシェアにして60%にもなる、世界で最も多く使用されているCMSです。
このWordPressのシェアを支えるもっとも大きな要因の1つは、WordPressがオープンソースであるからです。
インターネットの豊かさを支えるものはコンテンツです。
世界中の数々の良質なコンテンツが現在のインターネットの豊かさを形成しており、現在もめざましいスピードで進化しています。
そして、サーバーやミドルウエア、そしてWordPressのようなCMSは、これらのコンテンツをささえるための縁の下の力持ちでしかありません。
しかし、良質なコンテンツを作るには優れたツールが必要で、それらのツールの開発には、膨大なコストが必要です。
そういったコスト負担を分担しあおうという考え方から、私たちのウェブ業界はオープンソースという考え方を取り入れ、積極的に活用するようになりました。
そうした背景の中で、優れたツールが生まれ、それを土台にしてさらに良質なコンテンツが生まれているのが、現在のインターネットです。
さらにいえば、WordPressが採用するライセンスはGPLです。
このGPLライセンスは、ユーザーに対して自由を保証することを主目的としたライセンスであり、ユーザーは利用規約やライセンス条項などを気にすること無く自由な目的に使用することができます。
WordPressはGPLを採用しているからこそ、現在のシェアを獲得していると私たちは考えています。
そんな中で、日本においては、毎月と言ってもいいほどのたくさんのWordPress関連書籍が発売され、イベントやセミナーなども全国各地で毎週のように開催されています。
WordPressコミュニティが開催する公式なイベントWordCampには毎回1000名を超えるほどの参加者が集まるようにもなってきました。
しかしながら、日本国内においてこれらの書籍やイベントがターゲットとする層のほとんどが単なるWordPressユーザーであり、開発者をターゲットとしたものがほとんどありません。
世界中のエンジニアが自らの成果物を無償で公開しだれでも利用可能にするのはなぜでしょうか?
そこには何らかのメリットや意図がかならずあるはずです。
本書は、日本で初めてとも言える開発者をターゲットとしたWordPressの専門書です。
私たちは本書をとおして、開発者からみたオープンソースのメリットをみなさんと共有していきたいと考えています。
そのため、これまでのWordPress本で紹介されてきたようなググれば分かる内容の解説には、それほど重きをおいていません。
それらはWordPressのバージョンアップなどによりすぐに陳腐化していく内容だと私たちは考えており、もっと普遍的な内容を取り扱っていきたいと考えてきました。
たとえば、本書で紹介されているセキュリティ対策やエラー処理は、みなさんが開発するプラグインの信頼性を向上にすくなからず貢献できるはずです。
コーディングスタンダードやPHPunitを使用したテスト方法は、プラグインのメンテナンス性を向上させるための手助けとなります。
WP-CLIやGruntなどのサードパーティーのツールや、Vagrantなどの開発環境は、開発におけるワークフローを劇的に改善するでしょう。
公式ディレクトリへの登録方法や国際化などは、みなさんに世界への扉を開くことになるはずです。
もちろん、WordPress APIにつきましても、極力たくさん網羅できるように努力しました。
日本国内においてはWordPress開発者が十分に多いとはいえません。
本書の重要なターゲットは、既存のWordPressユーザーというよりもWordPressを使ったことがないPHP開発者です。
ある程度経験を積んだプログラマーなら、目次をさっとみただけで、必要なキーワードが手に入ることを目指して書いてきたつもりです。

続きを読む

dogmap.jp を t1.micro から t2.micro に変更してみました

AWS から 7/2 に新しいインスタンスタイプ T2 インスタンスがリリースされました。
【AWS発表】バースト可能な性能を持つ新しい低コストEC2インスタンス

dogmap.jp は、網元の実証実験も兼ねて、網元の t1.micro インスタンスで稼働させているのですが、アクセスが集中して負荷が高まってバーストした後、一定時間極端に性能が悪化するという問題がありました。
# これは t1.micro インスタンスの特性です。
これ結構辛くて、表側では Nginx のリバースプロキシキャッシュでなんとか凌いでいても、WordPress のダッシュボードにアクセスできないとかの状況に陥ることがしばしばあったんですよね。

T2インスタンスでも t1.micro 同様に負荷がかかったときに自動的にバーストします。
ただし、バースト可能な時間には制限があって、これを管理するために新たに CPU Credit という仕組みが追加されました。
簡単に言うと

  • 負荷が高くなく CPU がベースライン性能にとどまっている場合、CPUクレジット残高が貯まっていく
  • 負荷が高まった場合、CPUクレジットを消費してバーストする
  • 1CPUクレジットで1分間バースト可能
  • CPUクレジット残高が無くなった場合は CPU 性能はベースライン性能にとどまる
  • 未使用のCPUクレジットは、最大24時間有効

という感じらしいです。

名前 vCPUs ベースライン性能 1時間あたりのCPUクレジット
t2.micro 1 10% 6
t2.small 1 20% 12
t2.medium 2 40% 24

CPUクレジット残高については、Cloud Watch で確認することができます。
「CPU Credit Usage (使用量)」「CPU Credit Balance (残高)」という項目が追加されているので、そちらを参照してください。

2014-7-18 追記
Amazon MarketPlace からも HVM 版の網元AMIが利用できるようになりました。
WordPress powered by AMIMOTO (HVM)
t1.micro などの m1 インスタンスなどの HVM に対応していないインスタンスタイプはご利用になれません。
そちらが必要な場合は、従来の PVM 版をご利用ください。
続きを読む

Web サイトのメンテナンス中画面の出し方

しょっちゅう必要になるので、メモ書き程度に
参考にしたのは、以下の URL です。

前提としてメンテナンス中画面として表示する際に使用する html は以下のファイルを使うものとします。

  • maintenance.html
  • style.css
  • /img/corp_logo.png

また、以下の IP アドレスからのアクセスは管理者からなのでメンテナンス中画面を表示しないものとします。

  • 192.168.0.4
  • 192.168.0.5

続きを読む

MySQL バイナリログからデータを復旧

MySQL で作業してるときにうっかりオペミスしてしまったときの対処方法。
作業前にダンプ取ってて、作業終了後すぐにオペミスに気づいた場合は、そのダンプから戻せば良いですが、ダンプ取ったのが結構前だったとか、オペミスに気づいたのが時間をおいてからだったとかって時の復旧方法です。
前提条件として、以下の状況だった場合のみです。バイナリログを取ってない場合はあきらめましょう。

  • バイナリログを取っている( /etc/my.cnf で log-bin=mysql-bin とか設定してある )
  • mysqldump 等でバックアップしている
  • バックアップ時点でのバイナリログの書き込み位置を保存している。またはバックアップした日時が特定できる

参考 : unoh.github.com by unoh

続きを読む

2013年の人気記事トップ10

昨年一昨年 に引き続き、今年も dogmap.jp でこの1年で良く読んでもらった記事をあげてみます。
去年同様、ページビュー上位10記事だと1番アクセスがあったのは、去年どころか2009年のこの記事になっちゃうんですが、2013年に書いた記事と、去年のランキングに入っていない 2012年に書いた記事にしぼって10件ほど。
続きを読む

Monit でプロセス監視 ( WordPress Advent Calendar 2013 全部オレ 20日目 )

WordPress Advent Calendar 2013 全部オレ 20日目のできる限り俺です。

WordPress を運用するサーバでは、Nginx や Aapche などの Web サーバ、MySQL、fastcgi を使っているのならば php-fpm などのプロセスが稼働しています。
夜中だとか旅行中にこれらのプロセスが落ちてしまうとサイトに繋がらなくなってしまうこともあります。
そういった障害を検知し、復旧するための様々な障害検知を行うツールが存在するのですが、今回は Monit の紹介をしようと思います。
これはプロセスを監視して異常を検知したらメールを出したり、自動的に再起動したりしてくれる便利なツールです。
続きを読む

WordCamp Kobe 2013 へ行ってきました

2013年6月15日に開催された WordCamp Kobe 2013 に行ってきました。
僕は、小賀さんと一緒に「AWSを利用したエンタープライズ向けWordPress環境の構築と運用」ってセッションで話してきました。
今回は、国内 WordCamp 連続出席記録を持つおでこんが居なくて残念。
おでこん、来てると思ってたよ
すいません、写真あんまり取ってないです。

2013-06-16-09.01.01-320x214.jpg
まずは、限定でチャリティ販売されていたレアシールをゲット。
これで僕もワードプレスマスターだぜ!

2013-06-15-10.38.55-320x214.jpg
安定の直さんによる基調講演で幕開け、ぶれないっすな。
続きを読む