【AWS】知識ゼロから理解するRDS超入門
AWSのデータベースサービス「Amazon RDS」を初心者にもわかるように解説します。未経験には難しいMultiAZ構成やレプリケーションは、マスター/スレ...
2018-10-01 21:16 2018-10-01 21:16
Herokuの無料枠で最も課題となるのが、一定期間誰からもアクセスがないと「サーバーが寝てしまう」ことです。笑
人の手で定期的にアクセスするのは、流石に現実味がなさすぎるのでそれを自動化したいですよね。
その課題を解決できるのが、今回取り上げるアドオン「Heroku Scheduler」です。
10分あれば誰でも設定できるくらい簡単な作業なので、ぜひ軽い気持ちで読んでいって下さい。
Herokuは、無料プランだと 30 分間誰もアクセスをしないと Sleep 状態になってしまい、次にアクセスする際にレスポンスを返すのが遅くなってしまいます。
しかし、「Heroku Scheduler」を使えば、無料でHerokuのスリープを回避することができるのです。
Heroku Schedulerとは、定期的な処理を Heroku 上で行うためのHerokuアドオンです。
(公式Herokuリファレンス:Heroku Scheduler)
10分おき、1時間おき、1日おきから定期的に処理を行わせることが選択できるので、10分おきを選択して、アクセスを定期的に行うことでこの課題が解決します。
いきなり、Heroku Schedulerをインストールしようとしていると、このようなエラーが出てしまいます。
$ heroku addons:create scheduler:standard
Creating scheduler:standard on ⬢ [アプリ名]... !
▸ Please verify your account to install this add-on plan (please enter a credit card) For more information, see
▸ https://devcenter.heroku.com/categories/billing Verify now at https://heroku.com/verify
要は、無料枠でもクレジットカードの情報を登録しないとHeroku Schedulerはインストールできないようです。
クレジットカードの情報を登録は、トップページの右上にあるアイコンを押すと、「Account settings」という項目があるのでここから登録していきましょう。
次に、一番右のタブの「Billing」へ進んでください。
下のスクリーンショットは、もう登録が終わったに撮ったものなので、少し実際の画面とは異なりますが、ここの「Billing Information」にクレジットカードの情報を登録できます。
下のスクリーンショットが、実際のフォームとなっています。
「Save Details」を押すと、クレジットカードの登録が完了です。
では、Heroku Schedulerの早速のインストールを行なっていきましょう。
以下のコマンドをHerokuをログインした後に、対象のアプリのファイルがあるディレクトリ で実行してください。
heroku addons:create scheduler:standard
実際にインストールが成功すると、
Creating scheduler:standard on ⬢ [アプリ名]... free
To manage scheduled jobs run:
heroku addons:open scheduler
Created scheduler-colorful-xxxx
Use heroku addons:docs scheduler to view documentation
といったメッセージが表示されます。
それでは、ブラウザからもHeroku Schedulerがインストールできているか確認してみましょう。
対象のアプリのトップページで、「Installed add-ons」に追加されていればOKです。
(Heroku Postgresは、ぼくがデータベースを使うために別件で追加したものなので、気にしないでください。)
これが最後の手順です。
先ほどのトップページにあるHeroku Schedulerをクリックして設定を行いましょう。
「Add new job」を押すと、定期的に行わせたい処理を追加できます。
$の右側のテキストボックスに、あなたが定期的に実行したいコマンドを入力してください。
今回は、定期的にアクセスして30分間誰からもアクセスされていない状態にさせたくないだけなので、
curl https://[アプリ名].herokuapp.com/
このように、curlコマンドを使ってアクセスするだけのコマンドでOKです。
あとは、「FREQUENCY」を「Every 10 minutes」と設定しましょう。
「Save」を押せばこれで完了です。
実際に、Heroku Schedulerがアクセスしてくれるかログから確認しましょう。
2018-09-20T08:15:15.161885+00:00 heroku[scheduler.3703]: Starting process with command `curl https://[アプリ名].herokuapp.com/`
このように、Heroku Schedulerがcurlコマンドを実行している様子がみられれば完成です。
Herokuの無料枠を使用する場合は、1つのアカウントあたりすべてのアプリケーションやアドオンを含めて月に1,000時間の使用が可能です。
1つのアプリだけなら、24時間 x 30(日) = 720時間で常時稼働することができます。
しかし、2つのアプリを作成して(無料枠なら最大5つまで)それを常時稼働させたいと思うのと、720時間 x 2(アプリ) = 1,440時間とオーバーしてしまいます。
1,000時間以上になった場合は、アプリはスリープ状態になるので気をつけてください。
学生Webエンジニア PLANインターン生 PHP Laravel Python HTML CSS JS
【名前】 "ゆざ"
【関連】 株式会社PLAN / MIYABI Lab / Tmeet(twitterユーザーマッチングサービス) /
【MIYABI Lab運営】23歳/同期がト◯タやMicr◯softに就職する中、ベンチャーに未経験でWebエンジニアになるのを選んだ脳科学専攻の理系院生◆人見知り日本縦断◆機械学習/Web歴5ヶ月
【AWS】知識ゼロから理解するRDS超入門
AWSのデータベースサービス「Amazon RDS」を初心者にもわかるように解説します。未経験には難しいMultiAZ構成やレプリケーションは、マスター/スレ...
【AWS】Auto Scalingする前に知っておくべき7つのこと
Amazon EC2 Auto Scaling(オートスケール)を使用すると、CPU使用率等に応じてEC2の台数を自動的に増減できます。ここでは、初心者の持つ疑問を通し...
WordPressの基本構造を理解してオリジナルテーマを作ろう(後半)
WordPressのテーマを自作するために必要なテンプレートファイル(functions.phpやstyle.css)の役割やファイル構造を理解して、どのようにオリジナ...
WordPressの基本構造を理解してオリジナルテーマを作ろう(前半)
WordPressのテーマを自作するために必要なテンプレートファイル(functions.phpやfront-page.php)の役割やファイル構造を理解して、どのようにオ...
【Heroku入門】無料枠サーバーを24時間スリープさせない方法
フリープランのHerokuサーバーでは、30分以上アクセスがないと自動的にスリープしてしまいます。ここでは、Herokuサーバーを寝かせない方法につい...
【入門編】Laravelのディレクトリ構造とMVCの処理の流れを理解する
Laravel初心者が学習する際にわかりにくいLaravelのディレクトリ構造を具体的な例を交えて解説します。MVCの基本であるビュー、モデル、コントロー...
【初心者向け】PythonによるHeroku環境で簡単LINEBot開発
誰でも簡単にLINEBotをpythonを使ってHeroku環境で開発できる方法を解説します。ここでは、LINE Messaging APIを用いることでおうむ返しをするBot...
AWSでWebサーバー構築!踏み台サーバーでセキュアなネットワークを構築する(第5回)
連載の第5回です。メインEC2に対して直接SSH接続できる状態というのは、セキュリティの観点からあまり望ましくありません。MySQLやEBSが紐づいたメ...
AnacondaでのTensorFlow環境構築と基礎的な使い方
Anaconda(アナコンダ)のインストールからJupyter notebook(ジュピターノートブック)とTensorFlow(テンサーフロー)の基本的な使い方を初心者...
脱初心者!MNIST beginnerに隠れ層を加えたニューラルネット解説
TensorFlowのチュートリアルであるMNIST beginnerの応用して、隠れ層と活性化関数を加えたニューラルネットワークで手書き文字識別を解説します。...
AWSでWebサーバー構築!Apache2.4, PHP7, MySQLの導入と初期設定(第4回)
連載の第4回です。今回は作成したEC2インスタンスにWebサーバーとしての機能を持たせるため、Apache2.4のインストールおよびhttpd.conf等の各種設...
AWSでWebサーバー構築!EC2を作成してSSH接続する(第3回)
連載の第3回です。前回作成したVPC・サブネットにおいて、セキュリティーグループに保護されたEC2インスタンスの作成・設定およびSSH接続の確立ま...
初心者必読!MNIST実行環境の準備から手書き文字識別までを徹底解説!
Pythonによる機械学習をプログラミング初心者にもわかりやすいように、TensorFlowチュートリアルのMNIST beginnerを使って、手書き文字(MNIST)識別...
AWSでWebサーバー構築!専門用語の解説とVPC環境を構築する手順(第2回)
連載の第2回です。AWSにてVPCネットワークを構築してWebサーバーを設置・運用するためには、AWS内で利用される重要単語について正しく理解しておく...
知識ゼロで機械学習・AIを理解するために必要なニューラルネットワークの基礎知識
機械学習・AIを理解するために必要なニューラルネットワークの基礎について、これから機械学習を勉強したい人、プログラミング未経験の人にもわか...
Canvaで簡単におしゃれなアイキャッチ画像を作ろう!使い方を徹底解説!
PhotoshopやIllustratorを使えなくてもCanvaなら誰でも簡単におしゃれなアイキャッチ画像が作れます。豊富なデザインテンプレートを組み合わせるだ...
プレビュー機能付きの記事編集画面の作り方(Laravel5)
記事編集フォームにはプレビュー機能の実装が必須です。記事を保存する処理とプレビューを表示する処理を共存させるにあたり、ボタンをクリックし...
AWSでWebサーバー構築!VPC設計に必要なIPアドレスとサブネットの基礎知識(第1回)
連載の第1回です。AWSのVPCネットワークを設計して実際に構築するためには、IPアドレスの基礎を理解することが非常に大切です。EC2 Webサーバーを...
MIYABI Labホームページを製作しました
様々な理由でプログラミングの勉強を困難だと感じてしまっている方のお役に立てれば嬉しいです。これからも小さなWebサービスを作り続けていき、技...
ゆざ、株式会社PLANを卒業します。
2年間インターンとしてお世話になった株式会社PLANを卒業します。AWS,Laravel,Pythonなどの技術的なことだけではなく、エンジニアとして、社会人と...