ByProduct - 副産物

IT FukuSanButsu Blog

社内インフラエンジニアの自宅からはじまるIT
自宅のPCに向き合いながら気づいたことや個人的な知見をまとめています


プロフィール
しらせ(HN)
とあるIT企業のインフラエンジニア。プライベートでは開発もちょっとやります。
※本ブログの内容はすべて個人の見解であり、所属する企業とは関連ありません。
2023/09/30 暫く更新停止中m
プロフィールを読む
カテゴリ別
内部リンク
相互リンク
Twitter
来訪
1069972 [合計]
113 [今日]
382 [昨日]
Powered by
Powered by AWS Cloud Computing

【ブログ】フルスクラッチのすすめ

2022/04/24
2022/04/24

ブログ


お疲れ様です。
しらせです。

先日、ほんの少しだけwordpressを触ってみました。

簡単だし見た目も自由にできる点はフレームワークとしてとても優秀です。

一方でITエンジニアの皆さんは1から自分の手で作ってみたいと思いませんか?

サーバーサイド、クライアントサイド、スクリプト、HTML/CSS、セキュリティ対策、など。

車輪の再発明ではなく単純に学習的な位置づけと自分の技術的な知見の習得のためにです。

本ブログは基本的に全てフルスクラッチで1から作っています。

面倒にも思える作業を今でも続けている理由をこれまでの道のりと合わせてご紹介します。

もくじ

これまでの歩み

東日本大震災が発生した年の4月に私は社会人になり、ITエンジニアとしてのキャリアがスタートしました。

iPhone 3Gをはじめ、スマートフォンが世に出回りだしてインターネットがより重要になってきていた時代でした。

Webサーバーを立ててWebサイトを公開できないとエンジニアになれないだろ!

ということで、何かしらWebサイトを公開することを目標にしていました。

まず最初に取り掛かったのがFreeBSDとPerlを使ったcgiページの作成でした。

当時持っていたノートPCにFreeBSDをインストールしたものの、ネットワークカードとの相性問題やパッケージの依存関係の問題で遅々として進まず苦労したのを覚えています。

Webサーバーとして動くところまでは見届けたものの、このノートPCWebサーバーは日の目を見ることはありませんでした。

一方で、学んだ知識の範囲で友人のホームページや簡単な購入サイトを手掛けたこともありました。

その後、Perl自体に興味もなくなってしまったこともあり、簡単にWebサイトを公開できるgeocitiesにホームページを作成しました。

HTMLやCSSの仕組みもこの時期から少しずつ勉強を重ねていきました。

しかしgeocitiesは静的ページしかつくれなかったこともあり、すぐに更新が面倒になりました。

社会人になって3年目を迎えたある日、やっぱりサーバーサイドで動く動的なページもやってみたい。

という事で自作PCにハイパーバイザ(ESXi)をインストールして仮想サーバーを構築し、技術ブログを公開することにしました。

この時からCentOSを常に触るようになっており、ApacheやPHPの仕組みも身についていきました。

Webサーバー自体はうまく動いていたものの、ある日当時住んでいたアパートで停電が発生し、Webサーバーが半日止まる事象に見舞われました。

自宅だとこういうリスクもあるのか。。

ということで、今度は当時の流れに乗ってパブリッククラウドを使うことにしました。

この頃からブログやホームページだけでなく、TwitterのOauthを利用してオンライン対戦ゲーム用のツールなども作って公開していました。

当時利用していたのがIDCFクラウドです。

現在では一般向けのサービスは無くなってしまいましたが、個人用としても使いやすくとても安定した環境を実現できました。

この頃からIaaSに対する知識も着実に増えていきました。

しかし、、

2018年の12月、WebサーバーをホストしているIDCフロンティア社より、2019年3月末で一般向けの利用を停止する旨の通達がありました。

そこから3か月間悩んだ末に現在のAWSに辿りつきました。

かれこれ10数年間プログラミングを勉強しながらやってきたことで、wordpressといったものを触る機会が無かったといえばそうかもしれません。

ブログの紹介

ここまで簡単に経緯をご紹介しましたが、ここからはこちらのブログで使われている技術やこだわりを簡単にご紹介します。

スペック

AWSで使っているEC2マシンは最小構成です。

  • AWS EC2 t2.micro x1

動作環境

  • OS:Amazon Linux 2
  • Web:Apache
  • 言語:php74
  • DB:(なし)

AWSに引っ越してきたのは2019年になりますので今年でちょうど4年目を迎えますね。

ApacheはHTTPサーバーとして細かいパラメーターが多く勉強になるということで使っています。

スクリプト言語には今でもphpを採用しており最新の7.4系を利用しています。

データベースは基本的に使っていません。

そこまで大規模ではないですし、コンテンツの管理面でもファイルデータの方が今は圧倒的に簡単だからです。

データベースって初期の設計がすごく重要なので、本当に使いたい用途が出るまでは使いたくないのです。。

DBMSを使わないといけないのは最終手段だと思っていますが、本当はAWSのDynamoDBやAuroraを触ってみたい気持ちで山々です。

まとめ

本題の「なぜフルスクラッチでブログを作るのか?」という問いに対しての回答をまとめてみます。

以下の3点です。

1.技術を正しく知ったうえで安全に使いたい

以前wordpressをインストールした際に、簡単に使えることは分かったのですが、内部でどんな仕様になっているかを知らずに使ってしまうことに少し心配がありました。

MySQLはどんなテーブル構造をしているのか?webサーバーはどんな設定か?管理ページは安全に設定されているか?

どんな設定を入れればいいのか?!

既存のフレームワークや仕様を理解して設定を入れるというのは、自分で1から作って使う以上に知識と技術が求められる気がします。

毎日のようにアクセスがあるphpmyadminへのアタックや、流行りの脆弱性をつくアクセスなどを見ていると、無知の恐怖を改めて感じます。

そのため、まずは基礎となる仕組みをしっかりと理解するという事が重要だと思っています。

フレームワークを使う前にも1歩下がって、まずは基礎から学ぶ事を意識しています。

1からフルスクラッチで作る場合はすべての責任を自分が負う事になります。

中途半端な気持ちではできません。

2.フレームワークを使うほど自分にコンテンツが無い

正直なところ、いくら素晴らしいWebサイトを使ったところでコンテンツに魅力がないと宝の持ち腐れになります。

そうなるくらいなら、まずは相応の見た目で見劣りしないくらいのコンテンツで提供できれば十分なんです。

見た目の内容が釣り合っていると安心しませんか!?

3.作るのが楽しい

3つ目が特に重要だと思っています。

やっぱり自分で作るのが好き。

これですね。

HTMLで構成を考えて、CSSで見た目を整えて、phpでサーバ側の処理を考えて、javascripでクライアント側の処理を考える。

自分で手を動かすと、この4つの視点が嫌でも身につくと思います。

Apacheを使えばプロトコルとしてのhttpとWebサーバーの仕組みは身に付き、データベースを使えばデータの管理についても習得できます。

もちろん、技術の誤用は避けるように気を付ける必要はあります。

昔、tableタグやbrでレイアウトを頑張っていた時代もありましたが、、、良くないですね。

最後に、2009年に作ったホームページと今のブログを比較できるようにしてみました!

2009年

現在

それなりに様になってきた気がします!

以上
おつかれさまでした。



View:1289 この記事をツイート!