cron 空白時間帯

JavaがDNS固定なので0分以後に作業してDNS切り替えを確認すること! 実質土日00から15分の間しかできぬ!23時以降ならとまっているので00分にこだわらんでもOK

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

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

Azureの書き込みがある場合は、そろそろ15分ではきつくなって来た。 Azure同士だと30分は必要で段階移行必須。A4にして実施したけどもやはり15分ギリギリ。I/Oが遅い!

Ansible移行手順

  1. secure
  2. setup
  3. apps(maven以外はなくてもOK)
  4. myapps
  5. cron
  6. 移行元でS3へバックアップ
  7. recover
  8. migrate(間に合わなかった場合個別DB移行)

移行元手作業(なくしたいが、今のところレアなので)

移行先手作業

移行定番作業 時間差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完全MySQL移行完了。課金切れが怖いのでA1でスタート。前日準備の当日22時45分から着手だが、スクリプト修正やらアクセス元許可再起動忘れなどで21時からやり直し。それでもcakephpの解凍失敗(直実行だと問題なし)とsvnチェックアウトの失敗(日本語ディレクトリ関連)で時間間に合わず差分移行
Sakura to Azure 移行10/2710/27思い立って即日実施。トラブルなしだが、Azureへのインポートが10分以上かかるのでひやひや。ミスなしかと思いきやcron解除し忘れでまたしてもロスト&実行時間UTC問題解消されず
Azure to Sakura 移行11/2011/25CentOS7が標準OSとして追加されたのを発見したので旅先でansible確認して、後日夜のファミレスで実施。10分で終わったがLIFE PW更新忘れとCloudFrontがおかしいことになっていたので次回以降はキャッシュクリア必須
Sakura to Azure A2 移行12/0812/10デフォルトのVirtualHostのリダイレクトの設定がまずかったようだ。二回もキャッシュクリア。移行は13分で終わったが途中で切れやがった!
Azure A1 to A1 移行12/1912/20MariaDBが落ちたのとFirewalldが止まっていた期間があったため、今回は段階移行の練習。エクスポートインポート20分でDB段階移行5分。またjavaパスとクラウドフロントリダイレクトループミスあり
Sakura 移行2017/01/1501/15思い立ったら1時間で実施!
Aaure A2移行→A1へ2017/02/0602/06事前にセットアップまで終えておき、一気に切り替え移行元がSakuraだと余裕。課金切れ伸ばすべくA1へ変更だが10分かかる。A1にしてメモリ不足でMySQL死亡二回!
Sakura 移行2017/03/0903/10SecureGuard入れてみたくて移行。しかしhttpでvitualhostが利かない障害!httpd restartで治ったが、一時間ほど404。今後はhttp&https両方で確認せよ!

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: 5657, today: 1, yesterday: 2

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