今回はWeb系のインフラの昔話と今後についてのトレンドを中心に書きました。
昔のWEBインフラとは
・レンタルサーバー
・VPS
・専用サーバー
だいたいはこの3種類の中のどれかを利用し、規模や用途に応じてサーバーへリリースしていました。レンタルサーバーやVPSはさくらレンタルサーバーさんなんかが有名でしたね。開発環境では、XAMPPやMAMP、VirtualPCなんかが大人気だったと思います。Linuxの操作知識も必要で、SSHでターミナルから操作をしていました。
yum update
みたいなコマンド操作をみなさん日常的にしていました。
今はどうなったのか?
Dockerの登場
例えばMAMPではPHPのこのモジュールが必要なんだけど、インストールが困難とかVirtualPCはもっさりしてて動きが悪いなどの不満が結構ありました。だからDockerの登場で、XAMPPやMAMP、VirtualPCが一気に駆逐されました。むろんリリース先のサーバーも大きく変わりました。とにかく手軽で自由で縛りが少なくて、みんな飛びつきました。
$ docker-compose build
$ docker-compose up -d
夢に出てくるくらい毎日打ちますね!(笑)
Amazon AWSの台頭
日本には多くのレンタルサーバーがありますが、Amazonもその1社に過ぎませんでした。AmazonではEC2というサービスが他社のVPSサービスに相当しました。
Amazon ECSの登場
ここからがAWS躍進の理由とWeb系インフラ激変のターニングポイントになります。もちろん、AWS人気はLamda、S3やAurora等のRDSにも理由がありました。
ECSで開発環境のDockerをそのまま反映できるようになった。
開発環境とリリース環境がほぼ同一になった訳です。昔はリリース環境とMAMPの環境が若干違うことによる不具合があったもんですから、そりゃ革命的です。プラスししてサーバー構築の手間が一切省略できるのも流行る理由があります。
進化は止まらない
FargateやCodeCommitの登場でリリースまでが完全に自動化できるようになりました。
現在はこんな感じです。
gitlabやgithubで開発、git push
↓
AWS CodeCommit
↓
AWS CodeBuild
↓
AWS Code Deproy / UnitTest
↓
AWS Fargate
Webサーバーに自動デプロイされ、かつFargateは自動的に冗長化されます。
要するに、デプロイまでの手間がかからない、負荷を鑑みて勝手に冗長化してくれる。ということですね。Dockerの登場で大きく変わりました。
Fargate構築のハンズオンをやりたいなぁと最近思います。弊社ではインフラ構築のできるエンジニアを大歓迎しています。お気軽に遊びにきてくださいね!