このサイト(www.teenytinybot.dev)の構成に関して

最近更新しておりませんでした、IMAXおじさんです。 この頃本サイトに色々機能を足していたので、そろそろ全体をまとめた構成図を作ろうと思い立ちました。

1. コンテナの構成について

本サイトはさくらVPS上にデプロイしています。 当初はUbuntu Server上のネイティブで動かしていたのですが、お仕事でDockerをよく使うこともあり途中からDockerでのデプロイに切り替えました。

各コンポーネントの基本的な構成は以下となります。

  • OS:Ubuntu 18.04
  • 仮想化:Docker
  • リバースプロキシ:Nginx 1.21.6
  • アプリバックエンド:Python3, Django 3.0
  • DB:MySQL 5.7
  • 可視化ツール:Grafana 8.3.4
  • ログ監視:Splunk 8.2.5
  • ログ転送エージェント:UniversalForwarder(@Nginxコンテナ)

また、コンテナ間の関係とデータフローは以下の通りです。

2. Djangoで提供するアプリに関して

また、Djangoでは下記のアプリを作成して公開しています。

  • 質問箱

    • Djangoで初めて作ったWEBアプリです。
    • 中の人に匿名で質問が送れます。line-bot-sdkと連携しており、質問がくるとBotからLINEで中の人に通知が来ます。
    • (最近質問が来てなくてなんか寂しいので質問募集中です)
  • 自宅の温湿度監視

    • DjangoでRESTAPIを実装し、自宅のM5StackからAPI経由で気温・湿度・気圧をサーバに上げています。
    • Grafanaで監視用ダッシュボードを作成し、公開しています。
  • 技術ブログ

    • 技術系の記事を書いていくブログページです。
    • Markdown形式が使えるよう、Djangoプラグインであるmdeditorを入れています。
    • また、コードはシンタックスハイライトが行われるよう、aceというライブラリを入れています。
    • ↓こんな感じ
  • ログ監視

    • また、自明に公開はしていませんが、Nginxのログを見ると公開サーバへの攻撃と思しきアクセスがかなり多いので、監視ツールとしてSplunkを入れています。
    • 法人利用は有償ですが、個人利用であれば制限付きで一定期間は無償利用可能なようです。

3. 今後の予定

今後は以下のことに取り組みたいな〜と考えています。

  • AWSへのデプロイ(AWSできるようになりたい...)
  • elasticsearchとsplunkの比較
  • 機械学習がバックエンドで動くWEBアプリ
  • Vue.js+Django RESTAPIで動く構成に(モダンなWEBの構成にしたい...)

戻る

About

IMAXおじさんが(主に)技術系記事を備忘録として残していくブログです.

Category

  1. Tech
  2. Daily
  3. Job
  4. Other