コンテンツにスキップ

システム環境設定書(サーバー)

1. 本書の位置付け

本書は、認知症検診管理システムのサーバー環境に関する設定方針と、現時点で確定している設定項目を整理する。

2026年7月10日時点では、単独利用領域の払い出しに向けたヒアリングシート(Redmine #2044)が処理中であり、IPアドレス、実ホスト名、セキュリティグループID、OU/GPO、バックアップ時刻などの基盤払い出し値は未確定である。未確定値は、本書では仮値を置かず、確定元を明記して管理する。

2. 前提構成

項目内容状況
クラウド基盤ガバメントクラウド(AWS)プロジェクト計画書で定義済み
利用方式単独利用(区管理)方式ヒアリングシートで調整中
OSAmazon Linux 2023プロジェクト計画書で定義済み
コンテナDocker Engine on EC2プロジェクト計画書およびヒアリングシートで定義済み
ウイルス対策Trend Micro Cloud One Workload Security(C1WS)Redmine #2108で有効化時期を調整中
DBMSAmazon Aurora PostgreSQLプロジェクト計画書で定義済み
公開経路足立区庁舎内の基幹系業務端末からHTTPSで接続ALB利用前提で調整中
保健衛生システム連携認知症検診管理システムのバックエンドから保健衛生システム SQL Server を参照本番・検証の両環境で設定予定

3. サーバー構成

3.1 環境別構成

環境コンポーネントサービスサイジング備考
本番アプリケーションAmazon EC2m7i.largeフロントエンド配信を担当
本番バックエンドAmazon EC2m7i.largeGraphQL API、業務処理、保健衛生DB参照を担当
本番帳票サービスAmazon EC2m7i.large帳票・PDF生成系処理を担当
本番データベースAurora PostgreSQLdb.r6g.largeマネージドDBを利用
テストアプリケーション/バックエンド/帳票Amazon EC2m7i.largeテスト環境は集約構成
テストデータベースAurora PostgreSQLdb.t4g.largeマネージドDBを利用

上記はプロジェクト計画書の構成である。最終的な台数、AZ配置、ALBターゲット構成、Auto Scaling有無は、ヒアリングシートの確定内容を正とする。

3.2 アプリケーション構成

区分内容
フロントエンドReact 19、TypeScript、Vite、TanStack Router/Query、Jotai、Tailwind CSS v4
バックエンドBun、Fastify、Mercurius、Pothos、Prisma、PostgreSQL
APIGraphQL。バックエンドのパスは環境変数 GRAPHQL_PATH で指定する
認証アプリケーション独自の職員アカウント、JWT、TOTP二要素認証
監査ログ画面起動ログ、操作ログ、印刷ログ、出力ログをDBに保持
帳票/PDF帳票テンプレート、PDF生成ジョブ、外部印刷API連携を利用

4. ネットワーク

4.1 利用者接続

項目設定方針
アクセス元足立区庁舎内の基幹系業務端末および認知症検診用VDI
プロトコルHTTPS
ポート443/TCP
終端ALB利用前提で調整中
送信元制限足立区側で指定される業務端末・VDIの送信元IPまたはネットワークに限定

ALB利用は、Redmine #2044 のヒアリングシートや統合運用管理補助者との調整内容を正とする。

4.2 サーバー間通信

通信プロトコル/ポート設定方針
ALB → アプリケーション/バックエンドEC2HTTPまたはHTTPS、ポートはヒアリングシートで確定ALBターゲット設定に合わせる
バックエンドEC2 → Aurora PostgreSQLPostgreSQLDB用セキュリティグループで、バックエンドからの接続のみ許可する
バックエンドEC2 → 保健衛生システム SQL ServerSQL Server。既定は1433/TCP実際の待受ポートを確認し、バックエンドEC2からの参照通信のみ許可する
バックエンドEC2 → 印刷APIHTTPSPRINT_API_URL で指定する
管理・監視・C1WS・パッチ配信統合運用管理補助者の基盤標準に従う共通セキュリティグループまたは基盤指定の通信を利用する

保健衛生システム連携は、保健衛生システムNW設定変更方針を正とする。SQL Server ユーザーは参照専用とし、パスワードはソースコード、手順書、チケット本文に記載しない。

5. Active Directory

項目設定方針確定元
EC2のドメイン参加基盤標準に従う。アプリケーション認証はAD連携ではなく、職員アカウント・JWT・TOTPで実施するヒアリングシート、統合運用管理補助者
管理者権限最小権限とし、構築作業者・運用管理者のアカウントを分離する運用設計、SOW
サービスアカウントDB接続、保健衛生DB参照、外部API接続ごとに用途を分離する基盤設計、運用設計

6. ホスト名・識別情報

実ホスト名、プライベートIP、セキュリティグループID、ALB DNS名、DBエンドポイントは、リソース払い出し後に確定する。

環境論理名用途実値確定元
本番appフロントエンド配信未確定Redmine #2044
本番backendGraphQL API未確定Redmine #2044
本番print帳票/PDF未確定Redmine #2044
本番dbAurora PostgreSQL未確定Redmine #2044
テストapp-backend-printテスト環境未確定Redmine #2044
テストdbAurora PostgreSQL未確定Redmine #2044

確定後は、統合運用へ引き継ぐ台帳に実値を記録し、本書には必要最小限の識別情報のみを記載する。

7. ディレクトリー構成

7.1 バックエンドコンテナ

バックエンドの Dockerfile では、作業ディレクトリーを /app とする。

パス内容
/app/distTypeScript/SWCビルド後の実行ファイル
/app/node_modules実行時依存パッケージ
/app/package.json実行スクリプト、依存関係定義
/app/prismaPrisma スキーマ、マイグレーション、seed関連ファイル
/app/prisma.config.tsPrisma 設定

7.2 設定値

本番・テスト環境の設定値は、環境変数または基盤の秘密情報管理機構で注入する。secret 値は本書に記載しない。

環境変数用途
NODE_ENV実行環境。developmentstagingproduction のいずれか
PORTバックエンドの待受ポート
GRAPHQL_PATHGraphQL エンドポイントパス
DATABASE_URLAurora PostgreSQL 接続文字列
CORS_ORIGIN許可するフロントエンド origin
LOG_LEVELPino/Fastify のログレベル
JWT_SECRETJWT署名用 secret
JWT_EXPIRES_INJWT有効期限
ENCRYPTION_KEYTOTP秘密鍵・バックアップコード等の暗号化キー
TOTP_ISSUERTOTP発行者名
PRINT_API_URL印刷API URL
OPENAI_API_KEY帳票テンプレート生成機能で使用するAPIキー
OPENAI_MODEL帳票テンプレート生成機能で使用するモデル

8. サービス起動と停止

8.1 起動

サービス起動方式備考
バックエンドコンテナ起動時に bun --enable-source-maps dist/index.js を実行PORTGRAPHQL_PATH は環境変数から取得
フロントエンドbun run build で生成した静的ファイルを配信配信方式はアプリケーションEC2の構成確定後に手順化
DBマイグレーションprisma migrate deploy をリリース手順に組み込む本番DBへの適用前にテスト環境で確認する
PDF生成ワーカーPDF生成ジョブをポーリングして処理サービス化方式は帳票サーバー構成に合わせて確定

8.2 停止

バックエンドは SIGTERM または SIGINT を受信した場合、Fastify の HTTP サーバーをクローズしてからプロセスを終了する。停止、再起動、デプロイ時の具体的なコマンドは運用管理マニュアルに記載する。

8.3 ヘルスチェック

バックエンドは /health を提供する。レスポンスには、状態、時刻、環境、稼働秒数を含む。開発環境ではメモリ使用量も返却する。

9. データベース設定定義

項目内容
DBMSAmazon Aurora PostgreSQL
ORMPrisma
スキーマ管理Prisma schema と migration SQL
主キーUUIDを基本とする
削除方式業務データは原則として論理削除(deletedAt
楽観的ロックversion カラムを持つモデルで実施
ログテーブルScreenLogsOperationLogsPrintLogsOutputLogs
ジョブテーブルPdfGenerationJobs

本番環境のDB接続情報、認証情報、バックアップ設定、メンテナンスウィンドウは、基盤払い出し情報と運用設計で確定する。

10. ジョブスケジューラー

現時点で、OS cron や外部スケジューラーで定期実行する業務バッチは実装していない。

ジョブ実装状況実行方式
PDF生成ジョブ実装済みDBの PdfGenerationJobs を1秒間隔でポーリングし、5分超のロックはタイムアウトとして再キューする
DBマイグレーション実装済みリリース時に prisma migrate deploy を実行する
住基連携設計・実装予定Redmine #1923で2026年9月末期限として管理
住基結合検証計画済みRedmine #1924で2026年10月末期限として管理

住基連携の定期実行方式は、保健衛生システムとの連携方式・疎通確認後に確定する。

11. その他ソフトウェア一覧

区分ソフトウェアバージョン/設定
OSAmazon Linux2023
コンテナDocker EngineEC2上に導入。導入方法は基盤標準に従う
ランタイムBun1.3.5
ランタイム/ビルドNode.jsフロントエンド 24.11.1、バックエンド 24.12.0
DBAurora PostgreSQLバージョンは払い出し時に確定
ORMPrisma7.2.0
APIサーバーFastify5.6.2
GraphQLMercurius / PothosMercurius 16.6.0、Pothos 4系
ログPino/Fastify loggerLOG_LEVEL で制御。機密項目はredact対象
セキュリティC1WS仮運用開始は2026年10月1日以降予定。9月下旬頃にエージェント導入・有効化コマンド実行依頼予定

12. 未確定事項

項目現状管理先
ガバクラ環境の払い出し時期2026年8月中旬までの実施に後ろ倒しする見直し案を提示済みRedmine #2044
ALB、EC2、RDS、SG、IP、ホスト名ヒアリングシートで調整中Redmine #2044
C1WS有効化2026年10月1日以降に仮運用開始予定Redmine #2108
住基連携時のDV区分取り込み可否を確認中Redmine #2111
印刷業者向けCSV出力項目出力項目を確認中Redmine #2112