まず誰だよオマエ
はい、謹んで自己紹介いたします。
アオヤマと申します。岡山県在住の大学生で、情報工学を専攻しております。
執筆段階でB4であり、来年度同大学の大学院が内定しております。
初めてブログを作った
Webサイトを作ろうと思い立ち、去年の秋あたりから作り始めていた気がします。
実は一昨年1つWebサイトを立ち上げたんですが、少し更新が面倒くさくてやめてしまいました。完全に閉鎖済みです。
そちらのサイトは同世代向けにITを解説するサイトにしていたのですが、多忙な時期に作ってしまい、手につかず終わりました。
この度のサイトの内容はもっとリラックスしてアップできるものにしようと思い、ポートフォリオ兼ブログという形式を取りました。どれだけの人の目に留まるかどうかはわかりませんが、自分の記録という意味でも、書き残そうと思った次第です。
この時代にオンプレサーバ
世間ではクラウドだなんだと言われている中、このサイトは青山家にサーバを置いて運営しています。いわゆるオンプレミスというか…もっとキャッチーな言い方をするなら、「自宅サーバ」というやつです。
実際のサーバの画像です。
去年夏に友人とMinecraftを遊ぶためのマルチサーバを建てるためにサーバのセットアップは一通り済ませていたので、同じサーバにて公開することにしました。
このサイトの仕組み的なところを一応書きます。
本サイトの技術構成
【サーバマシン】
- マシン:Fujitsu ESPRIMO D587/S
- CPU:Intel® Core™ i5-7500 CPU @ 3.40GHz
- RAM:16GB
- OS:Ubuntu 22.04.5 LTS
【内部構成】
- フレームワーク:Next.js on Docker
- リバースプロキシ:nginx on Docker
Next.jsをフレームワークに採用しています。記事はすべてMarkdownファイルで記述されていて、アクセス時にサーバサイドレンダリングをしてブラウザに返しています。
記事一覧も、アクセスがある度にディレクトリ内の記事をリスト化して、非公開記事を除いたものをソートしてレンダリングしています。WYSIWYGエディタでなく、VScodeで書いてGitHub等から自動デプロイしたかったので、Markdownブログシステムを採用しました。レンダラーはmarkdown-itです。
技術獲得
それなりに制作に時間をかけてしまいました。色々勉強しながらやったので、このサイト制作を通して、初めて自分主体で使用した、また会得したスタックを以下に記します。
- Dockerコンテナ
- Docker compose
- nginx
- Next.js(ひいてはReact, TypeScript)
- SSL化(Let’s Encrypt)
追加して、去年夏にMinecraftサーバを構築したときに初めて自分主体で使用した、また会得したスタックを以下に記します。
- Linuxサーバ
- ネットワーク技術
- Linuxネットワークコマンド
- ルータ ポートフォワーディング
- DNS(My DNS)
- アプリケーションポート
今書き出せるだけでもこれだけあります。色々と先人やLLMのお手伝いをいただきながら、なんとか完成させられ、同時にたくさんの技術を知り、会得することができた良い機会でした。
反省点は、ブログの基本とも言われている(どこかで見かけた)データベースからとにかく逃げた構成になりました。とりあえず動いているので良しですが、エンジニアとして如何なものかと言われると嫌な顔するしかないので、今後の展望ですね。
以上、初ブログでした。