読者です 読者をやめる 読者になる 読者になる

えいのうにっき

主に Web 系技術ネタ。背景画像 is powered by grass-graph.shitemil.works

さくらのクラウドに Lodge を立ててみた、ので、その手順メモ(+独自ドメイン)

建ててみた、かな。ロッジだけに。

経緯

  • 7月くらいに、うちの会社のインフラエンジニアさんが「さくらの夕べ」に参加した
  • そのおみやげに、さくらのクラウドで使えるクーポン 20,000円分(!)をもらった

f:id:a-know:20140914110824j:plain

  • もらったはいいけど、何に使おうかなー
    • 放置してる 運営してるWebアプリはどれも GAE なので、移行とかはない
    • お仕事は AWS だし
    • Jenkins とか立ててみるかなーとかも考えたけど
  • ところで a-know は Qiita(Qiita:Team)が好き
    • Qiita のクローンの Lodge てのがある
    • コ・レ・ダ!!(-ω☆)キラリ

構築手順

以下、手順だけど、別にさくらのクラウドに限った話じゃないと思う。 あと、 Lodge の README がものすごく丁寧に書いてあるので基本はそっちを見たほうがいいと思うんだけど、それでもなんかうまく行かなかったところがあった(主に自分の実力不足)ので、そこらへんを重点的にメモっとく。

まずはサーバを立てる

  • さくらのクラウドのアカウントを作る
  • クーポンを登録する゚+.(◕ฺ ω◕ฺ )゚+.
  • 「サーバ」タブを開いて「+追加」ボタンを押す
    • プランはいちばん安いやつ(1コア / 1GB)。
    • いちばん馴染みのある CentOS 6.5 のイメージを使った
    • 鍵の登録もWebコンソールからできる
    • スタートアップスクリプトLAMP とか Rails とかを、サーバを立てると同時にセットアップしてくれる)は何も指定しなかった

UI が独特だったけど、特に迷うことはなかった。

いろいろインストール

Chef とか Ansible とかを使えばいいんだろうけど、今回はそこが目的じゃないので、それぞれを手作業で、真心込めてインストール。

  • インストール
    • rbenv
    • zlib-devel
    • openssl-devel
    • mysql mysql-devel mysql-server mysql-utilities
      • touch /var/lib/mysql/mysql.sock
      • chown mysql:mysql /var/lib/mysql
      • /etc/init.d/mysqld restart
    • ruby
      • RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/bin/" 付けて rbenv install
    • bundler
  • rbenv rehash とかする
  • lodge を git clone(ここらへんから README も見ながらで)
  • config/database.yml を編集
    • 編集した内容で mysql にユーザーを作る
  • Gemfile を編集
  • bundle install --path vendor/bundle
  • .env.example.env としてコピー

    • これが db:migrate の後だとうまくいかなかった
    • 中身をいろいろ編集
    • SMTPサーバとして自分の gmail アカウントを使う&2段階認証を設定している場合は、別途「アプリケーション固有のパスワード」を取得しておく必要がある
  • この時点で、Unicorn / Thin / WEBrick、お好きなもので立ち上げれば http://<ip_address>:3000 でアクセスできるはず

ドメイン設定

  • DNSレコードを設定
    • Aレコード
    • 今回は Route53 を使った
  • ポートの指定をしなくてもいいように、nginx を設定
    • nginx をインストール
    • /etc/nginx/nginx.conf を編集
      • http ブロックの中に下記のように追記して nginx をリスタート
server {
            listen   80;
            root <lodge の ルートディレクトリ>;
            server_name <ドメイン>;
            location / {
                proxy_pass http://<ドメイン>:3000;
            }
}

ここらへん、nginx を触ったのがこれが初めてでよくわかってないので、後日インフラエンジニアさんに教えてもらうよてい。

以上おわり。

で、立ったん?

立ったよー٩(๑❛ᴗ❛๑)۶

f:id:a-know:20140915172039p:plain

コスト

今回のプランで、一ヶ月立ち上げっぱなしで 1,954円。まぁ 2,000円弱。 もらったクーポンは 20,000円分なので、だいたい 10ヶ月はタダで運用できる計算。 まぁ、そもそもクーポンでの 20,000円も有効期間が1年みたいなので、特に気にせず使ってみることにしよう。

でも、本家 Qiita:Team の一番安い micro プランが 1,490円/月 ってことなんでw、このサーバには他にも色々突っ込んで、2,000円分は働いてもらうよてい。(▼へ▼メ)オラオラ

今後やろうとしてること

今回立てた Lodge にはプライベートなメモ(特にマークダウンで書きたいもの)を書きためていくつもりなんだけど、そうなると定期的なバックアップが欲しくなるわけで。 AWS にはある定期スナップショットみたいなものは、どうやらまださくらのクラウドにはないみたいなんだけど、色々探してみたら↓これが見つかったので、こいつを仕込むのはやってみようかなと。

さくらのクラウド API を使って日次でアーカイブをとるスクリプトを書いてみた

ちなみにさくらのクラウドでは「スナップショット」とは呼ばずに「アーカイブ」というらしいです。