close-btn
サービス紹介資料 ダウンロード

Column

大規模クラウドサービスの可用性

エンジニアコラム
hagita

こんにちは、萩田です。

弊社では医療機関向けにDXクラウドサービスを提供しておりますが、今回は実際のサービス運営経験を元に、「C=一般消費用」「B=事業者」両者のアクセスに対応するための工夫について紹介したいと思います。

何をもって「大規模」かという点については、今回は「全国に対し複数事業者向けに展開しているクラウドサービス」という括りで広めに考えたいと思います。

エンジニアの皆様やクラウドサービス運営に取り組む事業者様の参考になればと思います。

 

大規模クラウドサービス運営における可用性について

 

大規模クラウドサービス運営における可用性について、今回は以下をご説明したいと思います。

 

・マインドセット:アメーバ思考

・ドメイン階層での工夫

・サーバ階層での工夫

・システム階層での工夫

・開発体制面での工夫

 

マインドセット:アメーバ思考

アメーバという生物について、どのようなイメージをお持ちでしょうか?

「つかみどころがない」「柔軟」「しぶとい」。

およそこのようなイメージを持たれているかと思います。

私はサービスインフラ構築についても、このアメーバのような考え方で挑むのがよいと考えています。

「分裂する」「柔軟」「つかみどころがない」「しぶとい」といったことをインフラに置き換えると。

「同一性」「冗長性」「柔軟性」などと再整理することができます。結果として得られる属性が「しぶとい=可用性」ということになります。

 

同一性:

サーバの設定や規格を揃えることで、環境構築を高速化でき、予期しない不具合を防止することができます。サーバ構成の標準化とも言えるでしょう。

設定内容を明確化し、設定の自動化や自動チェックをできるようにすることが望ましいです。

 

冗長性:

アメーバのように、ある一部分が死滅してもサービスを継続できる構成を作るのが望ましいです。

・メインのインフラとは別にバックアップ用のインフラを用意しておく

・WEBサーバ、DBサーバなどについて、副系統を並行稼働させる

・その他障害単一点となるような場所を作らない

このような構成を取ることで、インフラの冗長性を確保できます。

 

柔軟性:

サービス運営においては、予期しないトラブルが発生することがあります。急な事態に対応できるよう、以下のような準備をしておくことが重要です。

・プログラムの不具合を発見した場合、当日に即時リリースできる体制を用意する

・一括のプログラム更新ではなく、部分的な更新適用を行うことで様子を見れるようにする

・緊急的なサーバ追加を行えるようにしておく

・休日や営業時間外の緊急体制を決めておく

このような準備を行うことで、柔軟性をもったサービス運営が可能となります。

 

以降、重複する部分もありますが、各インフラ階層での工夫をご紹介します。

いずれ個別の記事で詳細に触れたいと思います。

 

ドメイン階層での工夫

・ドメインが失効してしまったり、ドメイン管理機構で障害が発生した場合のことなどを考え、別のドメインでもサービス運営をできるようにしておく

・取得するドメインについては、「新規や更新の契約方法」「更新時の反映タイムラグ」「管理会社の安定性」「変更反映速度」「ブランド」を加味して選定する

・ドメインではありませんが、サーバ証明書の選定も同じようなことに注意する。場合によってはサーバ証明書を二重契約しておき、契約更新トラブルなどに備える

 

サーバ階層での工夫

・データセンター自体のトラブルを想定し、バックアップ用のインフラを契約しておく(縮退運行であっても一部サービス続行できるようにしておく)

・データセンター内のルータなどを冗長化する

・サーバ単位で冗長化をし、負荷分散と冗長性担保を両立させる

・特にデータベースについては、レプリケーション技術などにより、即座に主系を切り替えられるようにする

 

システム階層での工夫

・システムで利用しているアプリケーションフレームワークについて把握し、緊急時に即時対処できる知見を共有する

・機能ごとにリミッターを設け、過剰な処理時間やループを抑制・検知する

 

開発体制面での工夫

・カナリヤリリースなどを取り入れ、安定してデプロイできるようにする

・負荷検知とチェックを行い、SQLやシステムのチューニングを継続実施する

・ささいなヒヤリハットや障害に対して、きっちりと再発防止策の実施を行う

・「サービス」を運営する。プログラミングやサーバ保守はパーツであり、あくまで全エンジニアが「サービス」に資する判断や取り組みをする

・緊急時でもすぐに対応できる、わかりやすいプログラムを書く

 

このような工夫を重ねることで、サービスの可用性を高められると考えられます。

当たり前のことかも知れませんが、その当たり前のことがなかなか難しく、後回しになってしまうかもしれません。

常に初心を忘れず、社会やお客様の信頼に応えられるサービスを維持できるよう注意していきたいものです。

以上、みなさんの参考になれば幸いです。

関連記事

share
FaceBookでシェア X(Twitter)でシェア

目次

  1. 大規模クラウドサービス運営における可用性について
    1. 同一性:
    2. 冗長性:
    3. 柔軟性:
  2. マインドセット:アメーバ思考
    1. 同一性:
    2. 冗長性:
    3. 柔軟性:
  3. ドメイン階層での工夫
    1. 同一性:
    2. 冗長性:
    3. 柔軟性:
  4. サーバ階層での工夫
    1. 同一性:
    2. 冗長性:
    3. 柔軟性:

おすすめ記事

クリニック開業のポイント

カテゴリーから探す

お役立ちコラムエンジニアコラムメディカル革命コラム予約白書

タグから探す

IVRLINE呼出しLINE連携機能QRコードチェックインUI/UXWEB問診エンジニアキャッシュレス決済キャンセル対策キャンセル待ちクラウド型コスト削減コンサルティングセキュリティリソース管理リハビリ予約リライト診察券レシートプリンタ予約の平準化予約枠コントロール予防接種予約他社切替え内科内視鏡内科医療DX収益拡大受付業務呼出ディスプレイ多言語機能婦人科完全予約制移行小児科待ち時間削減待合室混雑解消患者満足度向上整形外科新規開業時間帯予約検査予約業務効率化病院皮膚科精神科経営管理統計機能美容皮膚科脳神経外科複数拠点経営複数診療科診察の事前準備連鎖予約間隔制御集患電子カルテ連携

キーワードから探す

お問い合わせはこちらから

メディカル革命が3分でわかる
サービス紹介資料 ダウンロード
課題解決した医院様をご紹介
導入事例集ダウンロード
ご質問はお気軽に
お問い合わせ
03-6413-0612
(電話受付時間/平日9:00-17:30)
※オペレーターへ繋がります。
担当より折り返しさせていただきます。