cron 空白時間帯

0,20,40道路情報(HPの更新は05,20,45なのでずらし検討)
0,15,30,45道路情報jpeg
0,15,30,45株式情報5時に終了して7時に開始。更新間隔は10分未満・・
0,30鉄道情報。4-23まで
毎時15分空室情報、10-24まで
13:30スキーエリア情報

結論毎時00-15か45-00までが一番あいている時間帯。 土日であれば40分でも作業可能。 jpegも20分単位にできないか見直す。

移行定番作業 時間差DB移行

ansible taskにしたのでそちらを利用せよ。DBを指定して一度にexportとimportを実施できる。

移行元

mysqldump -u root -p cakephp | gzip > cakephp.sql.gz
scp cakephp.sql.gz NEW_SERVER:/var/tmp

移行先

drop database cakephp
create database cakephp default charset utf8;
mysql -u root -p cakephp < /var/tmp/rooms.sql

アプリの接続先をlocalhostに変更する

移行に必要な時間

azureは移行元でも時間がかかるし、移行先にしても時間がかかる。(体感ではSakuraVPSの5倍!)azure同士の移行だとまず15分に収まらないので注意。 (db+svnのインポートで12分で時間オーバー!エクスポートも5分は見ておく!)

残作業

2012/04

さくらのVPS512から1Gへ移行。

スケジュール

apacheコンテンツ移行。DBインポート完了。設定まだ。wiki.rutake.com移行完了

DB設定完了。cakephp,blog.rutake.com移行完了

SVN移行完了。SSLはIP指定をしているのでそこを変えないといけなかった。

Cronジョブ移行。バックアップでDBパスワードが変わっていたためそれなりにシェルを変更

トラブル

2013/07 自宅内サーバー移行

一か月かけて準備。普段からrsyncでデータの同期はとっていた。

トラブル

IP変えて再起動したら反応せず。コンソールから復旧させたが、原因不明だった。 ファイヤーウォールでSquidのポートを通していなかった。こちら設定漏れが多いので注意。Sambaのユーザー移行漏れ!

2013/12 さくらVPS再構築

下準備

まずは、それほどアクセスのないページや自分専用コンテンツなどを自作サーバーに移行する。基本的にhttpd.confとssl.confを持ってきて、SVNのアクセス制限元を変更するぐらいで動いた。ssl.conf持ってこないとSSLに強制接続になるので今後の課題。

移行対象

  1. tools.rutake.com以下のアプリ
  2. wiki.rutake.com

要塞化

tools.rutake.comのpostgres移行

  1. postgres自動起動の設定
  2. DBインポート(DB作成必要)
  3. PHPツール移植(ツールは問題なしだが、DB接続で下記問題発覚)
psql: FATAL:  Ident authentication failed for user "postgres"
SQLSTATE[08006] [7] FATAL: Ident authentication failed for user "postgres"
# "local" is for Unix domain socket connections only
local   all         all                                trust
#host    all         all         127.0.0.1/32          ident sameuser
host     all         all         127.0.0.1/32          md5

2.4にしてみた。いつものようにhttpd.confの設定が必要。 appのみSVNからコピーして無事接続成功

DB単位でエクスポート
mysqldump -u root -p MYDATABASE > /var/tmp/MYDATABASEdmp.sql
移行元のDBを消す。
[root@epox cake2.4]# mysqladmin -u root -p drop MYDATABASE
空のDBを作成
mysql> create database MYDATABASE default charset utf8;
インポート
mysql -u root -p MYDATABASE < MYDATABASEdmp.sql
目的のディレクトリの一階層上に移動
cd /var/www/UPPER_DIR
tar cvzf blog.tar.gz blog/
DBも同じようにバックアップして圧縮しておく(18Mが十分の一に)
受け取りサーバー側では同じく一階層上で解凍
DBもインポートしておく
空のDBを作成(utf-8でOK)
mysql> create database MYDATABASE default charset utf8;
インポート
mysql -u root -p MYDATABASE < MYDATABASEdmp.sql
移行元
mysqldump -u root -p --add-drop-table cakephp rooms > rooms.sql
gzip rooms.sql
移行先
gzip -d rooms.sql.gz
mysql -u root -p cakephp < /var/tmp/rooms.sql
svnadmin dump /home/svn/repos | gzip > /var/tmp/myrepos.tar.gz

サーバー再インストールからコンソール上がりきるまで10分は見ておいたほうがよい。DNSがなかなか切替わらず見切り発車で実施。SSLの秘密鍵のバックアップを忘れてSSL月だと起動失敗したのでSSLは後日。blogとwikiは移行完了。cronの改行コードがおかしくてエラーとなっていた。LFじゃないとNG

SVN移行,hosts設定,

移行漏れ

SSL証明書,.htpasswd

移行前の下準備

  1. 公開鍵のバックアップ(OK)
  2. blog関係バックアップ
  3. cron関係チェック(OK)
  4. yumの履歴(OK)
  5. SVNバックアップ(OK)
createdb homedb_uft -E UTF-8 -T template0 
ダンプSQLをUTF-8に変換
SET client_encoding = 'UTF-8';
データベース移行は順調。
シンボリックリンクを介してのリライトはNGのようなのでディレクトリ名変更
DBアクセス。ユーザーを追加していなくてアクセス失敗。
simple_dom_htmlライブラリを入れてなくて失敗

2015/04 攻撃を受けてセキュリティ強化とアプリケーション分離と作り直し

基本方針

内部向けは自宅サーバーにおいておくか? wikiはアクセス数が減少しているのでどうする? 旧MTのコンテンツを廃止したい。

対象

作業手順

トラブル

2015/11 一部アプリケーション分離

移行スケジュール

11/17-12/07KAGOYA VSPでCentOS7検証。wiki
12/07-Azureにてより自動構築重視の設定。wiki,postgresqlのtools

全体計画

項目計画日実施日備考
wiki11/1611/16
S3バックアップ11/1611/17バックアップスクリプト修正
toolsアプリのみ11/1711/17cake2.6で動かしてみる。.htacessではまった
バッチをローカルDBにて動かす11/1711/17すんなり動いた。
cake2.6プロビジョニング11/1811/19ちょいと後回しで、無事成功。
cronプロビジョニング11/1811/18ansible化するが、cronファイルを復元するのでもよいかも
postgresリモート接続にて、tftool移植11/1811/18postgresql.conf,hg_hda.conf,iptables,postgresユーザー以外での接続に変更など結構大変だったがphpモジュールは普通に動いた
postgres移植11/2011/20ローカルから接続させる
postgresバックアップansible化11/2011/20ローカルから接続させる
CentOS7 iptables化11/25ほんとはfirewalldにしたいが、共存させたいので!
Azureに舞台を移し,postgresアプリAnsible化12/0512/05OK
postgre設定をAnsible化12/0712/07ローカル接続はOK!
IP更新できない理由を突き止める12/07publicipは取得できている
S3バックアップジョブ分離12/1612/18credential周りでcron経由だとトラブルあり!
svn移行12/2612/25ほぼ自動で行けた。svnだけ証明書があるので手動となる。
tools移行12/2512/25MySQLと管理ツールは残して、postgresは完全移行
Kagoyaのcron12/2612/28なぜか動かなかったがいろいろインストールしてたら動くようになった。cronie-noanacronかな?
cakephp DB完全移行01/0901/09DB単位の移行が思いのほか簡単だったので一気に作り込みしてbatchはリモートを見るようにしてみた。
cakephp バッチ部分移行01/1001/10SNOW,ROOM,TRAIN,ROADを早朝移行。STOCKは午後までに移行。起動スクリプトコミット漏れ発覚で注意
Azure移行プロジェクトII01/1801/27fail2banをキチンと運用したいのでKAGOYAからazureへまたしても再構築。クレジットの残りを待って27日wiki,postgres移行が。バックアップ取得わすれで手作業多く、wikiが動かず失敗。SELinuxのせいであると判明。設定ファイルを焦って変更したため、再起動したらつながらず!
Azure移行プロジェクトIII01/2801/28A1のインスタンスで大丈夫だったが、A2にスケールアップしたところCustomLogの設定でエラー再発。バージョンも一緒なのに!謎なので作り直してwikiとpostgres移行。
Azure移行プロジェクト01/2901/29A2インスタンスにて。cakephpのDBのみとcronも次々移行。blogの試験開始からついにblogまで移植完了!初の全部移植。以前のCentOS6のときには見られなかったPHPつまりが発生。その後料金懸念が発生し約10日で料金切れ懸念。即時出ていくプランに変更
Kagoya移行プロジェクト02/0502/05AzureはIOが遅い。ansibleの早さがKagoyaだと段違いなので戻る。rsyslogをインストールしないとsecureやmessageが出ない。本来は週明け予定だが、6日で2500円近く食いつぶしたazureが週末をこせないと判断で夜30分でblog,cron含め全移行。6日夜停止でA2は一日約400円!
Kagoya SSDプラン移行プロジェクト02/1002/10前日にSSDプラン登場なので、スナップショット(約10分)を取って衝動的に朝の通勤時間で移行。しかし手順が行き当たりばったりで時間足りず駅のホームで完了。空白時間は9:25から10:00の間。スナップショット作成と起動をすぐに行えば45から00までの間にぎりぎり間に合う
Azure移行プロジェクト03/0803/10Vhostを変更忘れでwikiでリダイレクトループ発生かつCloudFrontにキャッシュさせるミス。wiki,tools,postgres,svnを一気に移行して、MySQLとBlogは後日。3/14からSubcriptionは4/7に尽きる予定だが、実測したところ30日まででもっと早いだろう!二週間と考えておく。3月中に戻す予定。StaticPressインストール後にサブディレクトリが見えなくなる障害発生。3/16早朝から3/18まで停止してた!!
Kagoya移行&新AWS完全移行03/1003/313/26日に実施。やはりVHOST切り替えミスでリダイレクトループ発生!
Sakura CentOS7にて復帰04/0304/10CentOS7でリビルド。minimalにしておけばほぼkagoyaと一緒で構築OK。MySQLだけ後日移行のつもりがローカルを見る設定にしており、自動化必須。自動化仕上げて予定より早く4/4中に完全移行完了
Kagoya 移行04/284/30セットアップを済ませて、recoverタスクで一気に切り替える計画。Ansibleがインストール失敗!15分ではギリだがトラブルなければ45分前にsetup終えておき、旧サーバーバックアップのリカバリーで余裕持っていける。すべて立ち上げると1.4Gで落ち着く。すべて落とすと100M程度
Azure A2 移行05/0605/07EPELのansibleがsvn checkout後にこけるバグあり。前日セットアップ後にwwwを午後一移行。それ以外は40分から作業着手だが、mysql-php/dstatのインストール漏れ、ESの許可IP漏れ、またしてもリダイレクトループキャッシュなどミスが目立つ。IOは相変わらず遅いがメモリは随一なので、ElasticSearch同居しても問題なし!月替わりの計算だと1000円以上残して1ヶ月持つがこれはあてにならん!
Sakura 移行05/3105/31残り800円であったので急遽前倒し実施。SELinux無効化忘れでSVNチェックアウトできなかったり、バックアップ削ったらディレクトリも削ったり、postgresが復元されなかったり障害レベルのミス頻発。電車降りそびれるし散々である。そして5/7の移行時にアメリカ証券のみcronされていなかった。ansibleは記載済みなのになぜ?おそらくコメントが一緒だったため。さらにはasiaがajiaとなっておりロスト!
Azure 移行06/3006/30課金切れが怖いのでA1でスタート。前日準備の当日22時45分から着手だが、スクリプト修正やらアクセス元許可再起動忘れなどで21時からやり直し。それでもcakephpの解凍失敗(直実行だと問題なし)とsvnチェックアウトの失敗(日本語ディレクトリ関連)で時間間に合わず差分移行

Ansible状況

CentOS 6 さくらのVPSセットアップ完了。DBの移行断念
CentOS 6 nagoya VPSセットアップ完了。DBの移行断念
Azure OpenLogic CentOS 7.1セットアップ完了。移行も完了
Azure OpenLogic CentOS 7.2セットアップ完了。Sonhrqube以外OK
さくら CentOS 7.2セットアップ完了。セットアップタスクが5分程度(ほか14-15分)で終わるので、一番早い!
KAGOYA CentOS 7.0セットアップ完了。TybeBだとセットアップ5分、リカバー2分で終わる

チェックリスト

  1. 認証周りがキチンとされているか?(管理画面に入ること)
  2. 旧コンテンツ(blog/techmemo)やwikiのリダイレクトが完璧であること。
  3. アクセス制限が移行されていること

postgresのユーザーに権限付与(シーケンスリード権限がなかった)

GRANT ALL ON テーブル名 TO ユーザー名;
GRANT ALL ON シーケンス名 TO ユーザー名;

cron移行周りのはまり(現在進行中)

aws s3 lsで設定の確認をすること

/etc/cron.daily/s3_backup.shがさくらだけ上記のエラーがでる。 5分ごとに実行だとでないのに!

wordpressのサブディレクトリからサブドメインへ移行

  1. http://blog.shun-ichiro.com/howto/move-wordpress/

各VPSの特徴

さくらのVPS

カスタムOSを入れるときはChromeじゃないと操作できない致命的な欠点はあるが、性能は一番安定している。スナップショットが取れないのがいまどき時代遅れ感。

Azure

IOが遅い。あとOpenLogicのCentOS7.1を使っているが、それ以外に変えると不具合出たりしてこまったもんだ。

Kagoya VPS

最初は何も入ってなくて苦労したけれども、ノウハウをためていくうちにAzureよりセットアップが早いので利用しまくり。スナップショット機能がお気に入りだ。 ただし保証メモリが1Gなのでメモリ不足は一番陥りやすい。

Counter: 5658, today: 1, yesterday: 1

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS