Webサービスは毎日たくさんの数生まれていますが、同様に終了するサービスも数多く存在します。
Webサービスを終了するプロジェクトにアサインされた時、何をするの?というのをこの記事ではざっくりと紹介します。
やることを洗い出す
プロジェクトのスケジュールを決めるために、まず終わらせるために何が必要か洗い出します。
規約や法律を確認しつつ、工数もざっくり求めて何をいつまでにどのように進めていくのか、といったスケジュールも考えながら作っていくと良いでしょう。
すごく大まかにはどのサービスでも以下のようになることが多いでしょう。
- サービス終了対応
- スケジュール作成
- 告知
- 終了ページの作成
- 一部機能提供の終了
- 終了ページを表示するようにする
- 内部でやること
- データの取り扱いの決定・バックアップ
- ソースコードやインフラの削除・撤去
- 契約していたサービスの解約
サービス終了対応
直接的に終了させていくために必要な作業です。
サービスの利用者にも見えるような作業が多いです。
スケジュール作成
先ほど作成した工数とやることからスケジュールを作成します。
詳細なガントチャートで管理するようなスケジュールと、ユーザーに公開する外向けのスケジュールの2種類を作成します。
外向けのスケジュールは遅延しないように、余裕を持たせて作成するようにしましょう。
告知
ホームページやサービスに載せる告知を作成します。
告知方法を決めて、掲載する各箇所への告知文章を作成します。
コーポレートサイトなどに詳細を掲載し、それ以外は簡潔に終了を伝える文章とコーポレートサイトへのリンクを載せる、というパターンが多そうです。
また、告知以外の方法で終了をお伝えする必要のあるステークホルダーが存在する場合は、必要に応じて準備を行い連絡を行いましょう。
終了ページの作成
よくあるサービスは終了しました。ご利用ありがとうございました
という旨が書かれたあのページです。
必要であれば問い合わせ先や(存在すれば)後継サービスのリンクなども記載しましょう。
そんなに凝る必要は基本的に必要ないはずなので、簡素なページを用意してNSレコードを切り替えたら表示される状態にすると良いです。
AWSなら、S3にhtmlファイルを置いてCloudFront経由で配信する方法などがあるでしょうし、他のクラウドサービスでも似たような方法があると思うので、状況に応じて適切なインフラを用意しましょう。
一部機能提供の終了
サービスの種類などにもよりますが、新規登録など一部機能を提供終了する場合があります。
スケジュール作成時にどの機能をいつ提供終了するか決定し、それに沿って開発など必要な対応を行います。
この工程が必要ない場合もありそうですが、本当に不要かはきちんと確認しましょう。
終了ページを表示するようにする
サービス終了時間になったら、終了ページの作成
で作成したページがサービスのドメインにアクセスすると表示されるようにしましょう。
SNSアカウントがあるならそちらで終了の報告なども行うと良いでしょう。
内部でやること
外部からは見えませんが、サービスを終了するためには必要な対応です。
データの取り扱いの決定・バックアップ
MySQLに保存されるデータはもちろん、ログデータやユーザーがアップした画像データなど、サービス運用の中で作成されたデータは多数存在します。
これらのデータをいつまでどこにどのように保存するのか、規約や法律を参考に決定します。
各法律の最新の文章や改正予定などは必ず確認するようにしましょう。
現在保存されている場所から、別の場所に保存するための仕組みが必要な場合は適宜作成し、保存が終わったら撤去しましょう。
いつ消すかタイトルに記載したIssueを作成し、Slackでリマインダするようにしておくなどの工夫で消し忘れがないようにしましょう。
ソースコードやインフラの削除・撤去
終了ページを構成する要素以外のリソース以外はデータのバックアップ終われば不要になるはずです。
サーバーや、データベースの削除などを行っていきましょう。
リポジトリ自体が不要になる場合はアーカイブなどで良いでしょうが、コードを消す必要がある場合は、漏れができるだけないようにgit grep
コマンドなどをうまく活用しながら消していきましょう。
契約していたサービスの解約
サービスで利用していたSaaSやSNSのアカウントなどを削除します。
すぐに消さない場合は、いつ消すか決めてIssueなどに残しておきましょう。
まとめ
今回は私の経験などをもとに、Webサービスの終了でやることをざっくりと紹介させていただきました。
利用規約と法律は解釈を間違えてないか何度も確認し、できるなら法務の方に相談しつつ進めていくと良いでしょう。
この記事の中身からは漏れてしまったものもあるので、「こういうのもあるよ」などコメントしていただければ幸いです。