メインコンテンツまでスキップ

非機能要件定義書

非機能要件とは、システムを構築するに当たり、性能面やセキュリティ面等において実現するべき要件であり、潜在的に持っている「隠れた要件」のことです。

非機能要件の項目

IPA(独立行政法人情報処理推進機構)1が定義する「非機能要求グレードの6大項目」に基づいています。

  1. アベイラビリティ(可用性)に関する事項
  2. オペレータビリティ(運用性)に関する事項
  3. セキュリティに関する事項
  4. パフォーマンス・スケーラビリティに関する事項
  5. 移行性に関する事項
  6. システム環境・エコロジーに関する事項
caution

当システムではゼロからのデータ運用であること、クラウドサーバーを用いることから、「移行性」および「システム環境・エコロジー」については考慮しておりません。

アベイラビリティ(可用性)に関する事項

可用性要件

No.対象指標目標値備考
1EC2 インスタンス稼働率99%以上AWS EC2 インスタンスは基本一つで運用

補足事項

  • システムの死活監視ツールには UptimeRobot(Uptime Robot Service Provider Ltd.)を利用し、5分間隔でシステムの起動を確認します。
  • 障害発生時:
    • ユーザー向けシステム:コールドスタンバイ構成(通常は待機系に電源が投入されておらず、故障などが発生した際に、手動または自動で待機系を起動する。)により、待機系システムへの移行を可能とします。
    • エージェンシー向けモデル選択アプリ:Vercel(サーバーレスプラットフォーム)を利用します。稼働率99.999%を保証、冗長性を担保してくれます。
  • 異常値や不具合を検出した際に復旧作業をすぐさま行えるよう、データベース及びアプリケーションファイルのバックアップを常に残す。
  • サーバー(インスタンス)が停止した際に復旧作業を行うために、処理結果のlogを残す

オペレータビリティ(運用性)に関する事項

通常運用

通常の利用時間と通常スケジュール以外の特定日(バックアップ日や計画停止など)の有無や、その中身について定義します。

システムの運用時間帯:24時間運用
計画停止の候補:土日祝

保守運用

システムの品質を維持するために実施するメンテナンス作業の方針や内容を定義します。

当システムでは以下の頻度・内容で定期的にバックアップを行っております。

No.対象記憶媒体(拡張子)データ管理
1ユーザー向けシステムsqlファイル(.sql)毎日0時にMySQLのdumpファイルを本番稼働サーバー内のユーザールート上に自動生成
(ファイル名例:20200228_backup.sql)
2ユーザー向けシステム画像・ファイル「AWS Backup for Amazon S3」を利用し定期的にモデルやアイキャッチなどの画像ファイル一式を別リージョンの別ストレージに同期
3ユーザー向けシステムSSL証明書SSLサーバー証明書の更新をサーバー側で自動更新(CronでLet's Encrypt更新作業を毎日実行)

障害時運用

システム障害発生時の対応(復旧作業の内容、異常検知時の対応など)を定義します。

当アプリのエラー検知時に自動メール送信にてシステム開発者にエラー詳細が通知されます。 緊急性が高ければ即対応しサーバーの復旧作業を行っております。また、エラーログの集積サービスにSentry(無料プラン)を利用しています。

サーバーの死活監視にはUptimeRobotを利用し5分間隔でサーバーの稼働を監視しております。

セキュリティに関する事項

セキュリティ対策

当アプリでは起こり得ないセキュリティリスクについても、対象外として掲載しております。 対応を行なったものに関しては、「対応済み」と記載しております。

以下に記載するセキュリティ対策は、中小企業の情報セキュリティ対策ガイドラインにて独立行政法人情報処理推進機構が公開しているセキュリティガイダンスに則り対策を施しています。

ID診断項目(脆弱性名)危険度情報漏洩改ざん妨害対応対応方法
1SQLインジェクション済み生のSQL文を書かず、エスケープして表示。
2クロスサイトスクリプティング対策済みHTML 出力時には、 HTML Special Character をエスケープする。
X-XSS-Protection: 1; mode=blockをヘッダーにセット。
3クロスサイトリクエストフォージェリ (CSRF) 対策csrf_tokenを全てのPOSTフォームにおいて設定
4OS コマンド・インジェクション対象外対象外
5ディレクトリ・リスティング低〜高済み403 Forbidden
6メールヘッダ・インジェクション済みdjangoフレームワークにより対応
7パス名パラメータの未チェック/ディレクト リ・トラバーサル対象外対象外
8意図しないリダイレクト対象外対象外
9HTTP ヘッダ・インジェクション済み文字列をエスケープ
10認証済みsecret_keyの利用
パスワードは8文字以上
11セッション管理の不備低〜高済みセッションID を保持する Cookie にセキュア属性かを付与
12認可制御の不備、欠落済みURLのハッシュ化
13クローラへの耐性済みAWS Shield Standard plan
14クリックジャッキング対策済みX-Frame-Options: DENY をすべてのレスポンスに設定

パフォーマンス・スケーラビリティに関する事項

応答時間

ID項目機能内容
1ユーザビリティ画像ファイルの非同期読み込み(遅延読み込み)
2ユーザビリティ一部画像にSVGを用い画質の劣化を防ぐ
3ユーザビリティ非同期処理や仮想DOMの利用により、レンダリング速度やパフォーマンスの向上
4パフォーマンスAWS(amazon web server)のクラウドサーバーを利用しているため、急な負荷がかかってもWebサーバーが落ちない。
また、画像データも上限はない。

アクセス数

処理件数

データ量


  1. IPA(独立行政法人 情報処理推進機構)は、日本のIT国家戦略を技術面・人材面から支えるために設立された独立行政法人。所管官庁は経済産業省。 日本のソフトウェア分野における競争力の総合的な強化を図る。