この記事の目次
AWSのサービスである「ジョブスケジューラー」とは
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/356a192b7913b04c54574d18c28d46e6395428ab/1d7a1055-8af3-4756-9433-1e4826ebdb20.jpg)
Cronとは
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/35243f00-6773-4465-8ac2-7ac2bb3bf90c.jpg)
crontab -e
と実行するとCron式の確認と編集を行うことができます(下記はRaspbianをインストールしたRaspberry Piにて実行した例です。)
pi@raspberrypi:~ $ crontab -e
# Edit this file to introduce tasks to be run by cron.
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
~中略~
20 * * * * /home/ichiro.sato/application/hogehoge.jar
10 17 * * * /home/ichiro.sato/application/helloworld.jar
詳しい式の読み方は後で解説します。ここではhogehoge.jarとhelloworld.jarが定期的に実行されるような設定がなされている、というのを理解してください。
Cron式の書き方
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/654bd373-e8cd-4bfa-b2e9-6a2405b5a5ff.jpg)
Cron式のサンプル
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/f5ef944a50653ad198392450d8cdba1dea4885cc/87a2e1f3-0fdc-4110-8476-dbf1920c6d4e.png)
30 18 25 * * *
【例2】毎週月曜日の10時15分に実行するジョブ
15 10 * * 1 *
【例3】2021年12月21日の0時0分に実行するジョブ
0 0 21 12 * 2021
【例4】毎時5分に実行するジョブ
5 * * * ? *
【例5】5分毎に実行するジョブ
*/5 * * * ? *
【例6】2時間毎に実行するジョブ
0 */2 * * ? *
AWSにおけるCron式の書き方の注意点
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/8c7f204d9ede4027afb1e4450514b993d07cd4a1/660227e9-6a91-4eeb-9c7a-32517e6a6ec4.jpg)
20 * * * * /home/ichiro.sato/application/hogehoge.jar
というようにRasbianでは「*」が5つ分ですが、前セクションで話した記載方法では「*」が6つです。本記事で説明しているCronの書き方は、あくまでAWSのサービスで指定できる記載方法であると認識してください。
AWSであってもEC2でLinuxインスタンスを立てて、そのインスタンス内でCronを記載する場合は、OSの記載の仕方に合わせてください。
ハンズオン:Cloud Watch EventとLambdaを連携
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/356a192b7913b04c54574d18c28d46e6395428ab/7dbb12a1-8c30-483a-a005-82dd0f8d7ee5.jpg)
Lambda関数の作成
以下の手順で、Cron式で実行するための簡易な関数を作成します。 1.AWSコンソールにログインし、AWS Lambdaを開きます。 2.「関数の作成」ボタンを押下します。 3.「設計図の使用」を選択し、設計図の中から「hello-world」のテンプレートを選択後、右下にある「設定」ボタンを押下します。 4.「関数名」に任意の関数名を入力します。実行ロールは「基本的な Lambda アクセス権限で新しいロールを作成」を選択します。その後、右下の「関数の作成」を押下します。 5.作成されたら。「関数コード」にてソースコードを修正します。以下のコードをコピー&ペーストし、「デプロイ」を押下します。'use strict';
exports.handler = (event, context, callback) => {
console.log('※スケジュールイベントを受信!');
callback(null, '終了');
};
以上でLambda関数の作成は完了です。
Cloud Watch Eventの設定
以下の手順で、Cron式によるスケジュールを設定します。 1.AWSコンソールにログインし、Could Watch Eventを開きます。 2.イベント>ルール を選択します。 3.イベントソースの「スケジュール」をチェックします。その後、「Cron式」をチェックします。その後テキストボックスに、0/3 * * * ? *を入力します。 4.ターゲットにて先程作成したLambda関数を選択します。 5.画面右下の「設定の詳細」を押下します。 6.名前・説明に任意の文字列を入力した後、「ルールの作成」を押下します。 以上でスケジュールの設定は完了です。この例では3分毎にLambda関数を実行する、というジョブが完成しました。 実行された結果は、CloudWatch Logs→Log groups から確認することができます。3分毎にログが出力されているか確認してみてください。CloudWatchイベントとLambdaを上手に活用しよう
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/5e9e289364bb3ddfa01b2e7a2998e19f5b1eaf36/065316f3-57ed-4e3d-9ee4-7d5f7ba7eedf.jpg)
この記事の監修者・著者
![株式会社オープンアップITエンジニア](https://tenshoku-careerchange.jp/wp-content/uploads/2023/07/fzxADbr-_400x400-1-150x150.jpg)
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】