どうのこうの

名古屋/元フリーランス/スタートアップ勤務/ウェブ/マークアップ/プログラマ/エンジニア

Category: メモ (page 1 of 2)

Web制作小物ツールを S3 + CloudFront + 独自ドメイン SSL (AWS Certificate Manager) に変えた

Web制作小物ツールは自宅サーバーで運用していたんだけど、パスワードジェネレータとかあることを考えると SSL にしたいなぁと思っていて、折角だから一度やって見たかった S3 + CloudFront + 独自ドメイン SSL (AWS Certificate Manager) (+ 一部機能に Amazon API Gateway) にしてみました。

以下、作業のメモです。

S3 + 独自ドメインでホスティングするまで

下記の公式ページが参考になりました。

例: 独自ドメインを使用して静的ウェブサイトをセットアップする – Amazon Simple Storage Service

ドメインはバリュードメインで管理していて、 DNS は Amazon Route 53 を使わずにバリュードメインの DNS を使いたいので、バリュードメイン側で下記のように設定をしました。

ここまでで、 S3 + 独自ドメインでの運用ができるようになりました。

AWS Certificate Manager + Amazon CloudFront

AWS Certificate Manager と Amazon CloudFront の設定は下記サイトが詳しいです。

[ACM] AWS Certificate Manager 無料のサーバ証明書でCloudFrontをHTTPS化してみた | Developers.IO

今回は http へのアクセスは https へリダイレクトさせたいので「Redirect HTTP to HTTPS」を選択しました。

また、「Origin Domain Name」には S3 の Static website hosting のエンドポイント(「{バケット名}.s3-website-ap-northeast-1.amazonaws.com」)を入力し、「Alternate Domain Names
(CNAMEs)」には CNAME を入力し、「Price Class」は「Use All Edge Locations」を選択し、「Default Root Object」は「index.html」を指定しました。それ以外は基本、初期値を利用しました。

注意点としては、 AWS Certificate Manager は「米国東部 (バージニア北部)」で作成しないと Amazon CloudFront では使えないので注意。(私は初め「アジアパシフィック (東京)」で作ってしまって、ちょっとハマった。)

もう一つ注意点としては、「Origin Domain Name」を「{バケット名}.s3.amazonaws.com」ではなく「{バケット名}.s3-website-ap-northeast-1.amazonaws.com」としないと https://webtools.dounokouno.com/dummytext/ のような URL で https://webtools.dounokouno.com/dummytext/index.html を表示してくれないので注意。(私はこれで約1日、 https://webtools.dounokouno.com/dummytext/ でアクセスできなくなりました…。)

参考: CloudFront に S3 bucket のサブディレクトリパスのコンテンツを参照させる – Qiita

再度、バリュードメインの設定

「S3 + 独自ドメイン」でバリュードメインの設定をしちゃったので、ここで再度、 DNS の設定を変更します。設定内容は下記の通り。

(ここで末尾の . を入れてなくて一時的にサイトをダウンさせちゃった…orz)

AWS の利用料金はいくらになるか

現在、無料枠の期間内なので、正確な料金はわからない気がします。

とりあえず、来月の一ヶ月が無料枠で収まるかはここに追記したいと思います。

2017年4月2日 追記

今日確認したら、3月の利用料は無料でした。

それぞれのサービスの利用状況を見ると、すべて無料枠内で収まっているようです。

ちなみに、 Web制作小物ツールの2017年3月のセッション数は「9,020」、ページビュー数は「10,231」でした。

また来年の今頃に、無料枠がなくなったタイミングで利用料金がいくらになるか確認をしたいと思います。

追記ここまで。

Web制作小物ツールの対応ブラウザの変更

今回のサーバー移転にあわせて、コードもいくつか修正しました。

まず、 jQuery を v3 にアップデートした関係で、 IE 8 以下はサポート対象外になりました。

参考: Browser Support | jQuery

また、一部機能で Ajax の CORS (Cross-Origin Resource Sharing) を利用するようになったので、 IE 10 以下はサポート対象外になりました。

参考: CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 | Developers.IO

CORS のほうは、 jQuery プラグインを使えば IE 8 、 IE 9 にも対応できるようですが、Web制作小物ツールの利用者に IE 9 以下のユーザーは少ないので、サポートしなくてもいいかなと判断をしました。

上記はWeb制作小物ツールの直近30日のアクセスの、 Internet Explorer のバージョン毎の内訳。 86% 以上が IE11 。

まとめ

静的サイトなら S3 で十分ですし、 CloudFront を使えば独自ドメイン SSL の認証書が無料なのがうれしいです。

自宅サーバー + 安価な SSL 認証書の場合と、 S3 + CloudFront の構成の場合のどちらが安いかは、 AWS の無料枠が終わった段階で見極めたいと思います。

確定申告のために毎年調べていることの覚書とリンク集

確定申告のために毎年調べていることがあるので、その個人的な覚書メモとリンク集です。

注意事項

  • 私は税の専門家ではないため、この記事の情報が間違っている場合があります。
  • 詳しいことは税理士や専門機関にお問い合わせください。
  • もし間違いを発見されましたら、コメントやメールでお知らせいただけると助かります。

所得税の税率について

No.2260 所得税の税率|所得税|国税庁 を参考に計算する。

給与所得控除について

妻(専従者)の給与所得控除は No.1410 給与所得控除|税について調べる|国税庁 を参考に計算する。

参考

医療費控除について

  • 対象となるのは自分と家計が同じの家族(妻や子供、同居している親など)の医療費の、1月1日から12月31日までの間に支払った医療費の合計
  • 合計金額が10万円を超えると、超えた分が控除の対象になる
  • 10万円を超えていない場合は、医療費の領収書を取っておいたり提出する必要がない(控除にならないため)
  • 「その年の総所得金額等が200万円未満の人は、総所得金額等5%の金額」なので年収が低い年はこのことを頭に入れておく

参考

Kindle 本の領収書

Kindle 本の領収書は Web 上から発行できないので、下記の手順で Amazon に発行依頼をする。

  1. Amazon にログイン
  2. カスタマーサービスに連絡 ページにアクセス
  3. 「お問い合わせの種類」は「デジタルサービス」、「お問い合わせ内容」は「Kindle本について」、「お問い合わせ内容の詳細」は「その他」、「お問い合わせ内容を簡単に入力」は「領収書の発行について」(この通りじゃなくても多分OK)
  4. 「お問い合わせ方法」は「チャット」が早いと思う
  5. 「前年に購入したKindle本のすべての領収書がほしい」旨を伝える(個別の注文ではなく「すべて」)
  6. 後日、郵送で送ってくれる

参考

Zabbix Server と Zabbix Agent のインストールのメモ

Zabbix Server と Zabbix Agent のインストールの個人的なメモです。

目次

Zabbix とは

サーバーを監視してグラフ化にしたり、障害やサーバーの状態に応じてメールなどで通知させる統合監視ソフトウェア。

似たような統合監視ソフトウェアで、私は Nagios しか使ったことがなかったんだけど、監視するサーバーが増えたり監視したい情報が増えたりしたときに、Nagios 力が低すぎてやりたいことがやれなかったのですが、Zabbix は基本的にはブラウザから設定するみたいだし、UI は日本語だし、日本語の情報も多いし、AWS 用の拡張ツールもあるみたいなので、Nagios から Zabbix に乗り換えることにしました。

参考

Zabbix Server をインストールした環境

  • OS: CentOS 6.6
  • アーキテクチャ: i686

(x86_64なサーバーマシンが欲しいよぉおお)

インストールした Zabbix Server と Zabbix Agent のバージョン

Zabbix Server と Zabbix Agent のインストールの流れ

yumリポジトリの登録

x86_64アーキテクチャの場合は下記。

Zabbix パッケージをインストール

Zabbix Sender のインストール

HyClopsプラグインを使用する場合に必要らしい。(HyClopsプラグインは使ってないので未確認)

MySQLデータベースの初期化

スキーマへのデータインポート

Zabbix Server の設定を修正

Zabbix Server プロセスを開始

Zabbix Server の自動起動

Apache の設定ファイルを修正

/etc/httpd/conf.d/zabbix.conf が作られるので良しなに修正する。

Zabbix Server のインストール

http://example.com/zabbix にアクセスすると Zabbix Server のインストール画面が表示されるので、順番に進めていけばOK。

※メモ: インストールの流れのスクリーンショット画像を撮り忘れたので、またインストールし直す機会にスリーンショット画像を差し替えたい

Zabbix Agent のみをインストールする場合の流れ

監視対象のサーバーでウェブのUI(Zabbix Server)が必要ない場合は Zabbix Agent だけをインストールすればOK。

yumリポジトリの登録

Zabbix Server の場合と同じ。

Zabbix Agent のインストール

Zabbix Agent の設定を修正

※1: ServerServerActive の違いはよくわかってないけど、とりあえず同じにしておいた
※2: Hostname はサーバーのホスト名と同じじゃなくてもいいと思うけど、とりあえず同じにしておいた

Zabbix Agent プロセスを開始

Zabbix Agent の自動起動

ポートの開放

標準では、 Zabbix Agent は 10050 番ポートで Zabbix Server からのアクセスに応答し、 Zabbix Server は 10051 番ポートで Zabbix Agent からのアクセスに応答するので、それぞれのポートを開けてあげる必要がある。

Zabbix Server と Zabbix Agent 間の通信が全て許可されているような場合にはこの設定は気にしなくてよい。

Zabbix Agent 側のポート開放

Zabbix Server 側のポート開放

ポートが正しく空いているか確認する

nmap コマンドでポートの開放状況を確認できる。
nmap コマンドが入っていない場合は、 yum -y install nmap とかする。

10050 番ポートが空いていることを確認できた。

Zabbix Server に監視対象ホストを追加する

[ホスト] タブ

監視対象ホストの接続情報など。

  1. http://example.com/zabbix から Zabbix Server にログイン
  2. [設定] -> [ホスト] の [ホストの作成] ボタンをクリック
  3. [ホスト名] [表示名] はよしなに
  4. [所属グループ] は任意でグループ分けできる機能なので、よしなに
  5. [エージェントのインターフェース] は [DNS名] を入力して、 [接続方法] は [DNS] を選択(ポートはデフォルトの「10050」でOK)

[テンプレート] タブ

テンプレートをリンクさせることで、そのホストに対して「何を監視するか」や「何の値がどれくらいになったらアラートメールを送信するか」などの設定を行う。

監視対象サーバーは Linux なので、 [Template OS Linux] テンプレートをリンクさせる。

  1. [新規テンプレートをリンク] の [選択] リンクをクリックすると、ポップアップでテンプレート一覧が表される
  2. [Template OS Linux] にチェックを入れて [選択] ボタンをクリック(もしくは [Template OS Linux] リンクをクリック)
  3. [新規テンプレートをリンク] に [Template OS Linux] が入力されていることを確認して [追加] リンクをクリック

入力が完了したら、 [追加] ボタンで監視対象ホストが追加される。

他のタブはよくわかっていないので、おいおい勉強していくことにする。

アラートメールを送信する

これを設定しないと障害や障害の予兆のような動作が発生しても Zabbix Server は何も知らせてくれない。

http://example.com/zabbix にログインすれば状況を確認することができるけど、障害や障害の予兆のような動作があったときに何らかの方法でお知らせしてくれるようにしておきたい。

今回は管理ユーザーにメールアドレスを登録して、アラートメールが送信されるようにする。

管理ユーザーにメールアドレスを追加する

  1. [プロファイル] -> [メディア] タブの [追加] リンクをクリックすると ポップアップで [新規メディア] 追加画面が表示される
  2. [タイプ] は「Email」、[送信先] は自分のメールアドレス、[有効な時間] [指定した深刻度のときに使用] はよしなに、[ステータス] は有効にしておく
  3. [追加] ボタンをクリックする
  4. ポップアップウィンドウが閉じて [メディア] に上記で入力したメールアドレスが表示されていることを確認する
  5. [更新] ボタンで変更が更新される

アクションを設定する

アクションは設定した覚えがないので初めから設定されていた気がするけど、どうだったけかな…。

また Zabbix Server をインストールすることがあったらこの内容を更新する。

とりあえずスクリーンショット画像だけ貼っておく。

障害、または何らかのデータが閾値を超えるのを待つ

障害を待つのはダルいので、一旦、監視対象の Zabbix Agent の 10051 番ポートを閉じて Zabbix Server から Zabbix Agent に接続できない状況にして、この状態でアラートメールが送信されるか確認したりすればいいと思う。

まとめ

Zabbix はインストールが簡単だし、設定がブラウザからできるので初心者にもわかりやすいです。

今は Zabbix で安定したサーバー監視ができている状態になったので、Nagix は停止して Zabbix に完全移行することができました。

 

改訂版 Zabbix統合監視実践入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plus)
改訂版 Zabbix統合監視実践入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plus)

Zabbix統合監視徹底活用 ~複雑化・大規模化するインフラの一元管理 (Software Design plus)
Zabbix統合監視徹底活用 ~複雑化・大規模化するインフラの一元管理 (Software Design plus)

年末の大掃除で漫画を大量に自炊代行業者に出したときのメモ

年末の大掃除で漫画を大量に自炊代行業者に出したときのメモです。(正確には年始の大掃除だけど。年末はごろごろしていたので…。)

自炊代行業者の選定

下記の比較サイトを参考に、単純に一冊あたりの単価が安くて、ファイル名の変更が無料(もしくは安い)のところを選んだ。

「ファイル名の変更」は、未対応の場合は「2015年1月17日15時39分.pdf」ととったように日時のファイル名になるところを、「タイトル 巻数 著者名.pdf」に変更してくれるサービスのことです。後者のようになっていないと色々ツラいです。

 

選んだのは下記の業者。

自炊代行サービス【漫画スキャン王】

キャンペーン中だったため1冊あたり「70円」で、ファイル名の変更は料金に含まれる。ただ、「のんびり納品」っていう納期まで時間がかかる代わりに安いっていうプランなので、納期まで90日かかる。

自炊代行業者に依頼できない著者

自炊代行業者に依頼できない著者がいて、大抵、どの業者でもその著者の本は受け付けられないと書かれているので注意が必要。

なぜそういう著者がいるのかというと、自炊代行業者に対する著作権侵害の訴訟で、原告側として名を連ねている人たち=自炊代行に依頼できない著者、ということらしい。

依頼できない著者一覧は漫画スキャン王のサイトにも載っているので、それを参考に依頼する本の選別をした。

私が自炊代行を依頼したかった本の中では、甲斐谷忍先生のライヤーゲーム、小山宙哉先生の宇宙兄弟が該当した。

参考

自炊代行業者に対し著作権侵害行為の差し止めを求めた訴訟問題について

そういえば、自炊代行業者に対する訴訟問題、ありましたね。すっかり忘れていました。

結果、どうなっていたのかを調べてみたら、2014年10月22日に知的財産高等裁判所の控訴審があったみたいで、「作家側の言い分を認めた一審判決を支持し、公訴棄却の判決を言い渡した。」とのことでした。

参考

依頼冊数とダンボール

ダンボールは佐川で140サイズを購入した。(近所のマックスバリューにはあまり大きいサイズのダンボールが置いてなかった。)

佐川の140サイズのダンボールは1個「194円」。

ちなみにクロネコヤマトの140サイズのダンボールは1個「356円」でした。(電話ではそのように聞いた気がしたけど、クロネコヤマトのサイトを見ると「356円」の「ウォークスルーボックス」のサイズを計算すると120サイズな気がする。謎。)

依頼冊数は合計「221冊」(文庫サイズが7割、文庫サイズより一回り大きいサイズが3割くらいの比率)で、上記の140サイズにほぼぴったり入りました。詰め込めばあと5冊くらいは入るけど10冊は厳しいくらいの感じでした。

参考

料金

発送はクロネコヤマトで「1,836円」でした。(ダンボールは佐川で買ったのに…。佐川さんごめんなさい…。)

自炊代行は「221冊 × 70円」で「15,470円」。
オプションでDVD納品を依頼したのでプラス「3,000円」。

あと佐川で買ったダンボールが「194円」。

合計「20,500円」也。

スキャンの品質

のんびり納品なので90日後の4月の中旬頃の納品予定です。

納品されたら追記したいと思います。

※コメント欄に品質などについて書きました。

まとめ

一冊70円は安いと思うし、221冊も本が片付いたのでとてもすっきりした気分です。


いろいろ調べてみたら、DMMが電子書籍化セットのレンタルをしていたので、自炊業者に出すほどの量じゃなかったり、自炊業者に出せない著者の本はこれで自炊すればよさそう。今度試してみる。

Mac OS 10.8(Mountain Lion)にSASS + Compassをインストールするメモ

Mac OS 10.8(Mountain Lion)にSASS + Compassをインストールするまでの個人的なメモ。

SASSはCSS風に書けてCSSファイルにコンパイルしてくれる言語で、
CompassはSASSで使えるライブラリ群ね。

詳しくは公式サイトを参照。

 

Compassの何が便利って、
CSS Spriteを作るのに、
画像を結合しなくてもいいし、
画像のpositionを指定しなくて良いのが便利過ぎる。

自分で画像を結合して、
選択ツールで座標を調べてたのは、
すげー無駄だったなぁって思う。

 

Rubyのインストール状態の確認

まずはRubyが入っていることを確認。
Mountain LionにはRubyが始めから入っているっぽいので、確認する必要がないかもしれない。

rubyは1.8系でも大丈夫(だと思う)。

 

RubyGemsのインストール

まず、RubyGemsのインストール状態を確認。

インストールされていない場合は、
公式サイトからダウンロードしてsetup.rbを実行。

Download RubyGems | RubyGems.org | your community gem host

ダウンロードもターミナルでやる場合は下記のような感じでしょうか。

すでにインストールされている場合は、
rubygemsをアップデートする。
(update_rubygemsとgem update –systemはどっちがいいんですかねぇ?)

インストール or アップデートができたら、
念のためバージョンを確認。

 

Compassのインストール

gemからCompassをインストールする。

念のためインストールできたか確認。

ちなみに、sassはcompassを入れると勝手に入る。

 

Compassの初期設定と監視

ディレクトリ構成はまだまだ検討中だけど、
今のところ下記のような感じにしている。

  • project_directory/
    • css/ → cssファイルを出力する
    • js/ → jsファイル置き場
    • img/ → 画像ファイル置き場
    • sass/ → sassファイル置き場

で、上記ディレクトリ構成になるように、
compassの設定ファイルを生成する。

 

scssファイルを監視する

下記のコマンドでsassファイルを監視して、
更新があるとcssファイルを書き出してくれる。

出力するcssファイルは、
minify化しない理由がないので、
config.rbに下記行を追加して、
始めからminify化するようにしている。

 

以上。
個人的なメモでした。

PIE.htcは「http://192.168.1.1/」みたいなIPアドレスでアクセスした場合に動作しない

PIE.htcを使ってて、
ちょっとハマったのでメモ。

PIE.htcってのは、
IE8以下にCSS3を適用するライブラリね。

 

で、いきなり結論なんだけど、
PIE.htcは「http://192.168.1.1/」みたいなIPアドレスでアクセスした場合に動作しない。

 

みたいなコードがあるとして、

 

http://www.example.jp/

では正しくシャドウがかかるけど、

 

http://192.168.1.1/

ではシャドウがかからない。

 

理由はわからないけど、
PIE.htc側で何か判別してるんですかねぇ。

EC-CUBEを開発用サーバーから本番サーバーにデータをコピーして公開するまでの手順のメモ

EC-CUBEを開発用サーバーでテンプレートとか機能追加を行って、
本番サーバーにデータをコピーして公開するまでの手順のメモ。

EC-CUBEのバージョンは2.11.3、DBはMySQLです。

 

各種データのエクスポート

  1. 開発サーバーのDBをエクスポート
  2. 開発サーバーのソースをエクスポート
  3. .htaccessの情報を修正(開発用サーバーはBasic認証をかけていたので、それを削除)

 

各種データのインポート

  1. 最新のDBをインポート
  2. 最新のソースをアップロード
  3. /data/config/config.php の情報を修正

 

管理画面の設定

  1. /install/index.phpにアクセスし、パーミッションを確認
  2. /admin/ にログインできることを確認
  3. [管理画面]->[デザイン]->[PC]->[テンプレート設定]から使用するテンプレートを選択
  4. DBのテーブルを全て削除
  5. DBを再度インポート
  6. [管理画面]->[デザイン]->[PC]->[テンプレート設定]から使用するテンプレートが選択されていることを確認

 

各種動作確認

  • ユーザーログイン
  • 買い物の一連の流れ
  • 管理画面の操作

 

初回のインポートではテンプレートが「default」になっていて、
なぜテンプレート情報が移行できないかは不明。

でも、これでできたからまぁいいや。

銀行で硬貨を両替してもらったときのメモ

諸事情で小銭のストックが欲しくて、
近所の名古屋銀行で両替をしてもらった時の、
硬貨の組み合わせのメモ。

 

硬貨は50枚目から手数料がかかるそうで、
手数料がかからない硬貨の組み合わせを、必死で考えてみました。

手数料一覧 名古屋銀行

 

ちなみに、紙幣は新札でなければ手数料はかからないそうです。
ちなみにちなみに、「1万円札を両替する」ことをベースに考えています。

 

いろいろ計算をしてみた結果、
下記のような組み合わせに至りました。

・500円 ×   5枚 = 2,500円
・100円 × 11枚 = 1,100円
・50円 ×     5枚 =    250円
・10円 ×   12枚 =    120円
・5円 ×       4枚 =      20円
・1円 ×     10枚 =      10円
———————————-
・合計:    47枚     4,000円

 

5の倍数の硬貨は少なめ(4枚前後)、
1と10の倍数の硬貨は多め(10枚前後)で、
なかなか良い組み合わせになったかなと思います。

500円玉を7枚にしてもいいですけど、
500円玉はそんなにいらないですし。

残りの6,000円分は、
5,000円札にするなり1,000円札にするなり、
好きにしましょう。

 

以上です。
銀行で両替をする時の参考になれば幸いです。

phpをcronで動かすメモ

phpをcronで動かすときのメモ。

 

phpをコマンドラインから実行する方法は下記参照。

PHP: コマンドラインの使用法 – Manual
Tips/コマンドライン引数を取得する(PHP) – Darksky::Website

コードはこんな感じ。

 

cronの設定方法は下記参照。

crontabの書き方 — server-memo.net

 

注意点としては、
ファイルを書き出すパスとか、
phpのincludeのパスを/home/〜にしないと動かない。

cronを実行するユーザーによっては、
ユーザーディレクトリからのパスでもいいのかな。
未確認。

検索エンジンのパラメータ

検索エンジン各社のパラメータ(GETの値)のメモ。

 

Google

Google 検索の URL パラメータリスト – WebOS Goodies

 

Yahoo

Yahoo!デベロッパーネットワーク – Yahoo!検索(ウェブ検索)の検索パラメータ仕様

 

Bing

検索して見つからなかったけど、単純みたい。
「http://www.bing.com/search?q=ruby」で検索できたから。

ただ、スクレイピングしたときに、
日本語で表示されたり英語で表示されたのは、
UserAgentとかの言語で切り替えてるのでしょうか。

 

2010年9月15日 追記

bingにmktっていうパラメータを見つけた。
基本はcookieで設定してるけど、
GET値でも設定できるみたい。

mktが何の略かは分からないけど、
言語設定らしい。

日本語なら「mkt=ja-JP」、
英語なら「mkt=en-US」、
中国語なら「mkt=zh-CN」。

Older posts

© 2017 どうのこうの

Theme by Anders NorenUp ↑