サイト開設以来の危機

閲覧数: 36(1)

2015年にサイトを開設して以来の危機に遭遇してしまいました。と言っても自分のオペレーションミスからなので自力でなんとかするしかなかったのですが、こうして記事を書けているということは無事解決できたということです。フロントエンドとしてパソコンやスマホに表示している部分を処理しているのがAWS上のEC2で稼働するLinux(Ubuntu 18.04 LTS)でした。このサーバー上ではコンテンツマネジメントのWordPressとMediawikiがインストールされていて、記事本文などは別のデータベースサーバーに保存するようになっています。画像系は表示速度の都合もあり別サーバーではなく、同じサーバーに保存されています。

10月18日の夕方、本来はローカルマシン上の開発系サーバーをシャットダウンしなければならないところ、間違ってたまたま開いていた本番サーバー(AWS EC2)のリモートコンソールでシャットダウン停止コマンドを入力してしまいました。通常であれば停止するだけのはずが、何故か停止オプションが「終了」となっており、サーバーがTerminated=削除されてしまいました。サーバーに接続されていたクラウド上のローカルストレージも消えてしまいブログもウィキも画像が消え、URLを入力してもエラーとなります。あちゃーやってもうたと思ったのが17時頃、AWSコンソール上でいろいろ試してみるものの、一度Terminatedになると後は削除を待つだけとのこと。。。ここまではオフィスでの出来事、慌てて帰宅します。

自宅に着く頃にはコンソール上からも該当のインスタンスが消えてしまい何も残っていません。インスタンスを作成し、サーバーをゼロから構築し直すしかありません。意を決してインスタンスを作成しサーバーを起動します。この際、課題となっていたOSのバージョンアップ(Ubuntu 18.0 LTS4から22.04 LTS)も果たし、ついでにPHPも7.4系から8.1系へ上げます。どうせ来年4月までのサポート期限だったので、この半年のうちにやらなければならない作業です。事前準備無しのぶっつけ本番ですが、やるしかありません。データベースサーバーは生きているので、やるのはフロントエンドの構築です。入れるソフトウェアを整理しておきます。

NGINX(1.22)—OS標準では最新バージョンは入れられないのでリポジトリを更新します。
nginx/stable,now 1.22.1-1~jammy amd64 [installed]
certbotを使ってLet’s Encryptで暗号化します。

PHP(8.1.x)—OS標準で8.x系のインストールが出来るので、その中から8.1を選択します、基準は勘ですw
php8.1/jammy-updates,now 8.1.2-1ubuntu2.5 all [installed]
php8.1-cli/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed,automatic]
php8.1-common/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed,automatic]
php8.1-curl/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-fpm/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-gd/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-imagick/jammy,now 3.6.0-4ubuntu1 amd64 [installed]
php8.1-intl/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-mbstring/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-mysql/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-opcache/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed,automatic]
php8.1-readline/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed,automatic]
php8.1-xml/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]
php8.1-zip/jammy-updates,now 8.1.2-1ubuntu2.5 amd64 [installed]

ZABBIX AGENT(5.0.x)—OS標準では最新バージョンは入れられないのでリポジトリを更新します。
zabbix-agent/jammy,now 1:5.0.28-1+ubuntu22.04 amd64 [installed]
zabbix-release/jammy,now 1:5.0-2+ubuntu22.04 all [installed]

MEDIAWIKI(1.38.4)
追加で導入するEXTENSIONS
CirrusSearch
Drafts
DynamicPageList3
Elastica
GTag
googleAnalytics
MobileFrontend
Popups
RelatedArticles
UserMerge
※LocalSettings.phpへフッター広告設定の追加

WORDPRESS(6.0.3)
追加で導入するPLUGINS
allow-categories —> PHP8.1に合わせて修正が必要です。
anual-archive
catch-breadcrumb
classic-editor
classic-widgets
elasticpress
fancybox-for-wordpress
gdpr-cookie-compliance
google-site-kit
osm
post-smtp
post-updated-date
post-views-counter
related-post
simple-author-box
syntaxhighlighter
tiny-compress-images
wordfence
wp-fastest-cache
wp-fastest-cache-premium

フロントエンドからデータベースとサーチエンジンが分離してあったお陰で、追加モジュール類の設定がデータベース側に残っており、基本的には追加ソフトウェアをインストールすれば、設定が戻ってくる状態だったので、サーバーTerminatedから最低レベルの再稼働までは17:30-20:30の正味3時間でした。その後の設定や、画像データ等の復旧に5時間弱かかりましたが、かなり早い段階(22:40頃)から暫定復旧は出来ていて、サイト閲覧も可能な状態で、実質的な被害はこの間にアップロードされた画像一枚という奇跡的な結果でした。こういう時の集中力は自分でもビックリするほどです。アドレナリンでも出ていたのかというレベル(笑)

ここまでスムーズにリカバリ出来たのは、たまたま、そろそろバージョンアップ(期限は2023年4月)しなきゃなぁと思いながら、前日と当日にローカルの開発系へプログラムやデータを全移行していたという偶然のお陰ではあります。定期的なバックアップは絶対に必要だという教訓でした。いやほんとたまたま超ラッキーだっただけで、開発系が残っていなかったら再稼働は諦めていたかもしれません。いろいろお騒がせいたしました。Mediawiki(Tsubopedia)も含め、とりあえず正式復旧しているので引き続きお使いいただけると幸いです。

カテゴリー公開, 閑話(IT)タグ, , , , , , ,
テーマ更新

obliqueテーマを最新版(2.0.11)にアップデートしたところ、アイコンに使っている「Font  続きを読む

Re:EC2 t2.nanoの設定
blank

いろいろ悩んだ結果「AWS(EC2)」と「WebARENA」のS/W住み分けを次のように決めました。  続きを読む

非互換対応
blank

久しぶりのメジャーバージョンアップ(1.38 --> 1.39)が行われた「Mediawiki」関連  続きを読む

アクセシビリティ対策
blank

テーマカスタマイズの一環で、トップページに一覧表示されている「写真を左右交互に表示する」ようにした際  続きを読む

挙動不審なSwiper対策
blank

ここのトップページで「おすすめ記事」をスライダー形式で表示してくれているのが「Swiper」です。こ  続きを読む

最近の更新
blank

3月の初投稿は、ネタが無いのでIT閑話でw mediawikiのバージョン制限で、しばらくElast  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください