#herokuとは?
**Paas(Platform As a Service)**の1種です。
WEBサービスを公開するために必要なものをすべてまとめて予め用意してくれるサービスのようです。
1から環境を構築するとなると、サーバー用のPCを用意したり、DBをセットアップするなど色々とやることがあります。
Paasを入れることで以下の環境がサクっと作成できてしまうのですね。
(もちろん細かい設定は必要になると思いますが・・・)
- サーバー
- OS
- データーベース
- プログラミング言語の実行に必要な環境
これらを個別にインストール・設定することなく環境構築ができてしまうんですね。
ここまで読んで理解したとき、社内の別PJの手伝いでPHP開発のテストを行った時の環境構築、自宅でWoedPressの勉強する際に使用していた**「XAMMP」**に似ている印象を持ちました。
(すいません、見当違いなことを言っているかもしれません・・・)
heroku等のPaasを使用しないで1から環境を構築しようとすると下記を手作業で行わなければなりません。
herokuを使わないで環境構築を行う場合に必要なこと###
-
サーバPCやルータなどのハードウェアを購入 →お金がかかりますね・・・
-
インターネットに接続し、ネットワークを構築
-
サーバの仮想化環境を整備 →知識が必要になりますね
-
LinuxやWindowsサーバなどのOSをインストール →時間がかかりますね
-
Oracle、MySQL、PostgreSQLなどのデータベースをセットアップ
-
Java、Ruby、PHPなどのアプリケーション実行環境をセットアップ →単純にめんどいし、初心者には難しかったりする
herokuを使うことで以上の作業が10分ほどで完了してしまうのですね!!!すばらしい!!!
※決して私はheroku社の回し者ではありません・・・
環境構築に時間を取られずに済むので開発に集中できますね。
(環境構築に心が折れそうになり、途中で諦めかけた経験あり・・・( ノД`))
herokuを使うことでのメリット###
拡張機能が豊富
開発を進めていくうえで「あの機能が追加で必要だ」などとなったときにharokuの拡張機能を使用すればすぐに実装できる機能も豊富にあるそうです。
例えば
-
SendGrid:メール配信
-
PaperTrail:ログ管理
-
New Relic APM:監視
などがあるそうです。
②スケールアウトが簡単
ここはAWSでも出てくる話かと思いますが(以前少し勉強しました)
例えばWEBシステムにアクセスが殺到する時間帯にはサーバーを増やしたり、システムの処理能力を上げてサーバーが落ちないように増強する必要があります。
その時にそれを感知したりせず、そのままにしておくと最適な環境が維持できなくなってしまい、最悪サービスが落ちてしまいます。
herokuではherokuのダッシュボード画面で操作したり、簡単なコマンドを実行するだけですぐにスケールアウトができるそうです。
③運用をサポートする標準機能が揃っている
システムを開発したらそれで終わり、ではなく正しく運用できているか監視する必要があります。
具体的に言うと、アプリの状態を確認する「ログ」や、サーバーの状態を確認する「パフォーマンスモニター」などをチェックし、状態を把握しながらアプリが正常に動いているか監視を行います。
herokuでは、ログやパフォーマンスモニターなどを確認できる機能が備わっています。
そのため、状態のチェックをするために別途用意する必要がありません。
またデータベースのデータを守るためのバックアップ機能もあるため、運用にかかる手間が減らせるだけでなく、運用にかかるコストも抑えることができるのです。
herokuの利用に必要なこと###
登録に必要なのは基本的に**メールアドレス**のみです。
個人で開発するのに使用する分には料金はかからないようですが、有料版を使用したい時には支払情報なども必要になってくると思います。
herokuの料金体系####
herokuの料金体系
で確認することができます。
個人で開発する用途でしたら無料で充分事足りそうです。
herokuのインストール方法####
インストール、登録方法については前回の記事Windows10でherokuのCLIダウンロードとアカウント作成で書いていますので、参考にしていただければと思います。
最後に・・・####
私は今後、herokuとGit(研修は受けたけど実務で使ったことがない💦)とNode.jsで個人的に開発を進めていきます。
そちらの流れも、記事にしながらつまづきやすいところを調べつつ私のような初学者の方でも理解しやすいようにまとめていけたらと思います。
アウトプットすることで自分の理解も深まります。
文章を書くことはもともと好きなのですが、この業界に入ってからドキュメント制作などをする際に先輩からはよく「まともに日本語も使えないのか!」と怒られていました。
それだけでなく、何かの不具合が発生したときに状況を正しく伝えたり、実装方法について確認したりする際、前提知識も必要ですが、どのように伝えるとあいてにスムーズ伝わるか、を以前よりはよく考えるようになったと思います。
まだまだ不慣れでわからないことだらけですので、厳しいコメント等いただけますと励みになります。
宜しくお願いいたします。