LoginSignup
1
1

【要件検討】Windowsでドキュメント管理するのが面倒くなったので、LAMPサーバにした

Last updated at Posted at 2022-09-17

※2024/2/9時点での検討内容を更新しました※
※現状として、実施済みのものは■、実施予定は□で示しています。


初めに

QOLを上げるため、自宅内にプライベートサーバを構築します。
前提として何がしたいのか要件整理をします。
また、日々ニーズが変わるため、要件を定期的に記録していくのが目的です。
(※構築過程は、別な記事にまとめています。)


背景

明細の管理をexcelからデータベースに移行したい

  • 住宅ローンと給与明細とQR決済の月額支出をはじめとした明細管理をExcelで行っています。
  • しかし、グラフや書式設定の追加が多くなり、メモリ不足で度々フリーズしてしまう状況が続いていました。

メモ内容をファイルではなく、CMSで一元管理したい

  • 知ったことのメモが一元管理されていないため、wordpressへの移行を行いました。
  • wordpressはバージョンアッによる運用の煩雑性があるため、2022年以後利用頻度が少なくなっており、代替策を検討しています。(Python製のDjango CMSを検討中)

外部サイトのオープンデータを活用し、QOL向上に役立てたい

  • QOL向上のため、外部サイトのオープンデータを活用したいです。
  • 機械学習のコーディングを行えるサービスを利用し、データ取得と可視化を行いたいです。

どこでも使用できるようにしたい

  • 自宅内サーバといいつつも、将来的には災害時にサーバを持ち運びできるようにしたいです。
    (災対環境を本番環境に昇格させるのが一般的なのですが、人間の手で拠点を移動させることで、自身の環境下でも運用する思想です。)

要は、MicrosoftOfficeレス、分析自動化、持ち運びを可能をするため、軽量LAMPサーバを作成するのが目的です。


要件検討

そもそもとして、今の現状と課題を整理しました。

現状の管理方法

◎給与分析.xlsx

  • 現状:月次の給与明細を記入し、収入額、控除額、手取額を記載しています。
  • 課題:分析のたびにExcelからグラフを作る必要があるため、手間がかかっています。

◎住宅ローン予測表.xlsx

  • 現状:住宅ローンが月々どれくらいかかるかを金利に応じて月次支出を計算しています。
    (現在の借入銀行での返済額もあれば、有り得ない高金利のパターンなど、数10種類の変動金利パターンでシミュレーション結果をExcelで計算しています。)
  • 課題:金利変動パターンが増えることにより、グラフ作成時にフリーズします。

◎サーバ構成図.pptx

  • 現状:仮想マシンを数中種類構築していて、どの仮想マシンかが分からなくなってしまったので一覧化しています。
  • 構成図はパワーポイントで管理しています。
  • 課題:仮想サーバのミドルウェアのパラメータが一元管理できていないです。
    また、ネットワーク含めた構成図が作れていないです。

◎ライフプランニング.xlsx

  • 現状:月の支出を出しています。
  • 課題:2022年4月以降、メンテナンスできていないです。

◎株価分析.xlsx

  • 現状:未実装なので、なにも管理していないです。
  • 課題:QR決済のポイント投資をしていますが、変動状況をウォッチできておらず、株価チャートをうまく利活用できていないのが現状です。外部サイト(複数サイトのオープンデータ)から取得し、移動平均線を解析して、買いなのか・売りなのかを判断するツールが必要があります。
    (すでにアプリであると思いますが、勉強のために独自でつくりたいというのも課題です。)

持ち運びについて

  • データセンターや社内などのオンプレでサーバを管理することもあれば、クラウドで管理されることもあると思いますが、災害時は災対環境への切替をすることでサービスを継続する設計となっています。
  • 本記事では一方で、個人利用を目的としているため、自宅のWindowsPC上にVMWareをインストールし、仮想マシン(LinuxOS)を構築しております。
  • 災害時に電源をオフにし、避難先でも使えるようなコンセプトにしたいです。
    (外出時の利用において、セキュリティ要件を遵守しながら運用するために、現在はWindowsPCおよびLinuxOSを搭載した仮想マシンにおいてファイアウォールを実装しています。しかしながら、ミドルウェア自体のセキュリティ管理に関しては、検討が必要です。)

設計検討

◎給与分析.xlsx

  • 方針
    • ■月々の給与を挿入するために、クライアントでデータをインポートします。
    • □本格的には、javaアプリケーションを作成して、データ投入用の画面を作成して、APIを作成します。
    • □Web入力画面からデータ挿入できるAPIを作ります。
  • 詳細
    • ■給与明細テーブルを作成します。
    • ■給与明細テーブルにa5m2を使って、データを挿入します。
    • ■BIツール(Metabase)で可視化します。
    • □javaアプリケーションを用いたデータ挿入を実装します。
    • □Web入力画面をPythonのFlaskもしくはDjangoで実装します。ここは優先課題とします。

◎住宅ローン予測表.xlsx

  • 方針
    • ■住宅ローンシミュレーションをデータベース化します。
    • ■可視化ツールを導入します。
  • 詳細
    • ■住宅ローンシミュレーションテーブルを作成し、MySQLでデータベース化します。
    • ■金利毎にテーブルを作成します。
    • ■金利毎のテーブルを内部結合し、金利変化の返済シミュレーションを可視化します。
    • ■BIツール(Metabase)で可視化します。
    • □テーブル検索処理の問題点の改善
      • 複数テーブルの内部結合で時間がかかってしまう事象が発生しています。
      • 結合処理を使わず、金利パターンごとに計算結果を値としたカラムを作成します。
      • これをビューで定義することで、データ検索のパフォーマンス改善を行います。

◎サーバ構成図.docx

  • 方針
    • 2024年度更新⭐︎
    • □データベース一元管理するため、サーバ一覧テーブルを作成します。
    • □パスワードは暗号化された値で管理します。
    • □サーバ構成図はファイル管理ではなく、mdファイルで管理し、パスワードで暗号化します。
  • 詳細
    • □サーバ一覧についてはデータベース内にサーバ一覧専用のテーブルを作成します
    • □テーブルのデータは暗号化された値で格納します。
      (データを暗号化する方法は検討中です。)
    • データベースから参照する場合、特殊な復号方法でデータを閲覧できるようにします。
      (クライアントから直接データが解読されないようにします。)
    • サーバ構成図は、下記の通りに多段階でパスワード認証を設定します。
      • ①Apacheのベーシック認証の設定
      • ②mdファイルのダウンロード時のパスワード認証設定

◎ライフプランニング.xlsx

  • 方針
    • ◾QR決済のデータと、電気ガス水道のアプリのcsvデータをにインポートします。
    • ■住宅ローン予測と給与分析とを考慮して、収支結果を計算し、BIツールで可視化します。
  • 詳細
    • ■csvファイルをスマホからアップロードします。
    • ■アップロードファイルをデータベースにインポートできるような形式に加工します。
    • ■加工したファイルをデータベースにはmysqlもしくはmongodbにインポートします。
    • ■住宅ローン予測と給与分析用のテーブルを内部結合し、
      収支計算結果をデータベースのビューとして表示します。
    • ■BIツール(Metabase)で可視化します。

◎株価分析.xlsx

  • 方針
    • 株価チャートのソースを選定します
    • □株価のチャートのデータを、構築したサーバに取り込みします。
  • 詳細
    • □外部の株価チャートをエクスポートします。
    • □エクスポートファイルをデータベースにインポートできるような形式に加工します。
    • □加工したファイルをデータベース(mysql)にインポートします。
      インポート先は株価チャートを収集するために用意した専用のテーブルとします。
      その際に移動平均線を出します。
    • □BIツール(Metabase)で可視化します。

接続方法については後ほど更新します。


構築・運用状況

構築状況

構築の状況や運用の状況などは下記に記載しております。
(2023/12/2時点ではCentOS7.5からAlmalinux8.4に移行し、8.4から8.9へアップデート中の状況です。)


後述

  • □図ファイルをピクチャファイルで管理してしまうのは個人的にはあまりよくないので、要改善です。
    (Webブラウザで図形描画できるOSSはPython製のライブラリで、opencvがありそうです。)
    参考:

  • □Metabaseでは2000件以上のデータを参照できない課題があります。
    Metabaseはユーザインターフェースがよい反面、制約事項も多いBIツールであるため、Pythonを用いたBIツールを利用できないか検討中です。

参考:


追加したい機能

  • □旅行サイトとQR決済のまとめ検索とか、食べログとQR決済でキャンペーンやってるお店の一覧出力機能とか。。やりたいことがいっぱい出てきました。。
  • ■フィットネス管理、勤怠管理の機能も追加予定。
  • □そもそもとして、セキュリティ向上のため、SSH踏み台の専用サーバを構築をする予定。
  • □データの更新をトリガーにgmailへのメール通知を目的としたDMZサーバを構築する予定。
    (踏み台自体の認証設定は、鍵認証とパスワード認証の両方を用いて、ログイン認証を独自実装することでセキュリティのカスタマイズ化を図る予定。)
  • □アクセス数に応じたスケーラビリティを実現するため、Kubernetes化し、構築予定。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1