100%レンタルサーバーを使いこなすサイト100%レンタルサーバーを使いこなすサイトホームページ初心者・レンタルサーバー初心者の方でもレンタルサーバーを100%使いこなす情報を徹底調査します。インスタンスをスケジュール通りに起動・停止するプログラムを作成手順を作りました。は新しい機能が次々と追加されています。機能だけで、ビジネスに必要なすべての環境が準備できるのではないかと思います。設定手順や設定画面が変わっていたので、再度手順を作り直しました。進化して付いていくのも大変ですよね。参考サイトまとめLambda(ラムダ)とは?Lambdaとは「ラムダ」と読みます。ギリシア文字の第11字母です。ギリシア文字では「λ」と書きます。ラムダと入力してスペースキーを押下して変換候補を出力すると「λ」の文字があるかと思います。ギリシア文字の中の1文字なので「λ」そのものに意味はありません。「Lambda」というサービスがあります。「Lambda」はプログラムを実行できるサーバーレスの環境なのでサーバーの準備が不要です。2016年まで「Lambdaの利用手順」は結構ありますが、2017年から設定手順が変わりました。2018年から設定手順が変わりました。(AWSは変化のスピードが速いため昔の手順が利用できなくなることがよくあります)そのため、2018年現在の「Lambda」で、EC2インスタンスを起動・停止するプログラム(Python)を作り、スケジューリングの設定をする手順を説明します。利用するとプログラムを実行するためのサーバーが不要になります。通常プログラムを実行するためにはサーバーが必要です。実行環境)が必要です。コンパイルをして実行する環境が必要です。私のようなインフラ系エンジニアにとって、この「プログラムを実行する環境」が意外と運用管理をする手間が掛かります。開発環境である「Eclipse(エクリプス)」なども環境を構築することが大変です。そのため、せっかくプログラムに興味があっても環境がなくて挫折する方が多いと思います。提供してくれるため、プログラムの実行環境の運用・管理・保守は気にせずにガシガシとプログラムを作ることに専念できます。私は、このサービスはかなりプログラマーにとっては大きなイノベーションになると思っています。プログラマーが開発に専念できる、サーバーのアップデートやパッチの適用や障害対応に時間を割く必要がない、これはビジネスにおいて大きな影響を与えるだろうと思います。「アイデア」を持っている人がいるとします。通常、どんなにいい「アイデア」を持っていたとしても、実現できなければ「絵に描いた餅」です。アイデアを実現するためには「プログラム」の知識も必要ですが、「環境」も必要になるのです。Lambda」を利用することで、ほぼタダですぐに「アイデア」を実現させる可能性が広がります。ダイレクトにサービスを作って、すぐに全世界にサービスを提供できるようになるかもしれません。これも大きなメリットです。1ヶ月に100万件(1,000,000件)のリクエストが無料といわれてもピンと来ないので、割り算をしてみると、1,000,000÷30日=33,333件/1日33,333÷24時間=1,388件/1時間1,388÷60分=23件/1分つまり、1分間に23回以上プログラムを実行すると料金が発生します。USドル程度なので、ほぼ無料と言ってもいいでしょう。メリット】トリガーの選択肢が豊富プログラムを実行するトリガーが豊富です。※トリガーとはプログラムを起動させる「キッカケ」です。Home」が追加されました。開発した音声サービスシステムです。AI(人工知能)が搭載されています。(ファブリック)Alexaは以下のような情報提供ができます。対してトリガーを設定するだけで様々なプログラムを実行することができるようになります。スケジューリングをする今回は「CRON」によりスケジューリングができる「CloudWatch」を利用してスケジューリングをしてみます。機能を利用することで、例えば毎週日曜日午後8時にプログラムを実行する、月~金の9:00~18:00までプログラムを実行するなど、細かくスケジューリングができます。管理画面上より簡単に設定でき、すぐに利用できます。アカウントを作成してください。マネジメントコンソール」へログインします。https://aws.amazon.com/jp/console/ルートユーザーサインインの画面(ログイン画面)が表示されるのでログインします。ログインしたら左上の「サービス」をクリックします。下図のように「サービス」一覧が表示されるので「コンピューティング」-「Lambda」をクリックします。インスタンスを操作するプログラムを作り、「Lambda(サーバー上ではなく)」より実行します。作業の流れ初めに何をどうするのか作業の流れを確認しましょう。インスタンス2台です。以下の2台のインスタンスを利用します。Linux」でも「RedHat」でも「Windows」でも何でも大丈夫です。インスタンスは「Ubuntu」です。最終的には以下のスケジューリングを考えました。インスタンスを利用するのは勉強のためで仕事が終わってからです。24時間起動しっぱなしでもいいのですが、従量課金制なので使ってなくても少しずつ課金されます。機械学習用にスペックの良いマシン(と言ってもせいぜいt2.mediumですが)を使っているので料金が嵩んでいきます。そのために上記のようなスケジュールを設定することにしました。ちなみに、将来的にはもっとトリガーの条件を増やしてみたいです。してから実行する)など。インスタンス起動プログラム以下の「起動プログラム」を利用します。言語は「Python3.6」で「boto3」というライブラリを利用します。ここにリージョンを設定します。ここにインスタンスを設定します。スクリプトを終了します。インスタンス停止プログラム以下「停止プログラム」です。インスタンスを強制的に停止します。ここにリージョンを設定します。ここにインスタンスを設定します。スクリプトを終了します。'要点:インスタンスタイプを変更してもインスタンスIDは変わらない使用状況によってインスタンスタイプを変更したくなることがあります。インスタンスの場合は「インスタンスタイプ」を変更しても「インスタンスID」は変更されません。パブリックIP」は変更されます。アドレスは再利用できません。「バージョン3」のことを言います。操作することができます。コマンドでインストールが可能です。インストールされています。公式サイトがプログラム例を記載しています。Lambda?https://aws.amazon.com/jp/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/?nc1=h_ls※2017年7月にアップデートをしているのですが、プログラムがまだ「Python2.7」のままなのが気になります。登録する起動プログラム・停止プログラムが完成したら「Lambda」に登録します。「Lambda」にプログラムを登録することで「実行」できるようになります。マネジメントコンソールにログインして、左上の「サービス」をクリックすると下図のようにサービス一覧が表示されるので「Lambda」をクリックします。ページに移動すると下図のように「関数の作成」ボタンがあるのでクリックします。「関数の作成」画面が表示されたらデフォルトでは「一から作成」が選択されています。今回は「一から作成」でプログラムを設定します。ロールを作成する下へスクロールすると「一から作成」画面があるので下図のように設定します。「カスタムロールの作成」を選択すると別ページに移動し「ロール」の設定画面が表示されます。以下のように設定します。「ポリシードキュメントを表示」をクリックします。以下のポリシー画面が表示されるので「編集」をクリックします。「ポリシーの編集」確認画面が表示されるので「OK」ボタンをクリックします。※コピペして利用できます。インスタンスの起動・停止権限(「ec2:Start*」と「ec2:Stop*」)を与えています。リソースすべてに対する権限を与えています。※多人数で共有している場合は、セキュリティを考えて更に細かく設定した方がいいでしょう。インスタンスを起動する権限を与えています。インスタンスを停止する権限を与えています。リソースすべてに対する権限を与えています。}]}下図のようにポリシーを設定したら「許可」ボタンをクリックします。元のページに戻るので設定を続けます。「既存のロール」は先ほど設定した「lambda_basic_execution」を選択します。下図のように設定をしたら「関数の作成」ボタンをクリックします。関数が正常に作成されたメッセージが表示されることを確認します。この状態になり、初めてプログラムのコードを設定できるようになります。次にトリガーを追加します。Events」をクリックします。Events」が追加されます。下の方にスクロールすると「ルール」の設定画面があるので「ルール」のプルダウンメニューより「新規ルールの作成」を選択します。「新規ルールの作成」を選択すると下図のように設定画面が表示されるので設定します。インスタンスを起動します。ルールに則ったスケジュールを設定します。設定する必要があるので注意)設定が完了したら「追加」ボタンをクリックします。設定するスケジュールを確認すると以下のように設計しました。構文を入れますが、構文規則は以下のような順番になっています。※タイムゾーンはUTCのみになるので注意です。値を特定しないという意味です。日に「?」を指定していますが、何日でも(1日でも31日でも)構いませんという意味です。簡単ですが、一瞬で分かるように「UTC」と「JST」の対応表です。日本時間の21時に設定したい場合は、「12」を設定します。簡単に計算する方法ですが、UTCで表示された数字を見たら「+9」すればOKです。8(翌日)下図のように「新しいトリガー」が追加されたことを確認します。プログラムを設定する次に作成したプログラムを設定します。Start_Instances)」を選択します。下図のように作成したプログラムをコピペします。プログラムをコピペしたら右上にある「保存」ボタンをクリックします。「保存されました」のメッセージを確認します。プログラムの動作テストをする設定が完了すると下図のように「テスト」ボタンが表示されるので、クリックしてプログラムの動作テストをします。※実際にプログラムが実行されます。(単なる構文チェックではなく実際にプログラムが動くことに注意)設定や構文に問題がなければ以下のように「実行結果:成功(ログ)」が表示されます。関数の新規作成は完了です。停止プログラムの設定をする続けて「起動プログラム」を参考に「停止プログラム」の設定もします。コンソール画面より「サービス」-「Lambda」をクリックします。関数一覧画面が表示されたら右上の「関数の作成」ボタンをクリックします。「一から作成」画面で以下のように設定情報を入力します。起動プログラム作成時に作成したロールを流用します。設定をしたら「関数の作成」ボタンをクリックします。Events」を選択し下図のように「Stop_Instances」と紐付けます。下の方へスクロールすると「トリガーの設定」があるので下図のように「新規ルールの作成」を選択します。最終的に以下を例にスケジュールを設定します。設定が完了したら「追加」ボタンをクリックします。次にインスタンス停止プログラムを設定します。「Stop_Instances」をクリックします。function」に停止プログラムをコピペします。コピペしたら「保存」ボタンをクリックします。エラーが出力されず、下図のように「保存されました」のメッセージが表示されることを確認します。停止プログラムを設定したら動作確認をします。画面上にある「テスト」ボタンをクリックします。※「テスト」ボタンをクリックするとプログラムが実行されるので本番環境の場合は注意(構文チェックではなく実際に動作します)以下のように「実行結果:成功(ログ)」が表示されることを確認します。インスタンスの状態も「stopped」になっています。関数(Start_Instances、Stop_Instances)を実行すると以下のように「ログ」確認のリンクが表示されます。「ログ」のリンクをクリックすると以下のように「ログストリームのロード中にエラーが発生しました。このページを更新して、再試行してください。ログストリームの欄には「表示するログストリームがありません」のメッセージも表示されています。理由はログへの「アクセス権限」がないから今回の設定では「実行ロール」は「lambda_basic_execution」を設定しました。一度「ロール」の内容を確認します。上のメニューより「サービス」-「セキュリティ、アイデンティティ、コンプライアンス」-「IAM」をクリックします。左側ペインより「ロール」をクリックします。「lambda_basic_execution」を選択します。「ポリシーのアタッチ」ボタンをクリックします。検索欄に「log」を入力して検索します。検索結果より「CloudWatchLogsFullAccess」を選択します。下図のように「CloudWatchLogsFullAccess」にチェックを入れて「ポリシーのアタッチ」ボタンをクリックします。ポリシーがアタッチされていることを確認します。ログの動作確認ログが表示されるか動作確認をします。関数を表示して「テスト」ボタンをクリックして関数を実行します。「ログ」のリンクをクリックします。ログが出力されていることを確認します。ログの中身を確認します。エラーについてまとめました。関数(プログラム)を実行した際に以下のエラーが出た場合です。l7MY0PYC56eqaEawpuQVHMM7t_GrItkkwYy0tMJMRzxDOGIFDh1YydM5MXLbSa-もう一度正しいポリシーが設定されているか確認します。"*"}]}参考サイトhttps://aws.amazon.com/jp/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/?nc1=h_lshttp://qiita.com/pyr_revs/items/abd29d9472f4cba9032cまとめ2017年版からインタフェースや手順などが変更されていたので、改めて2018年版の手順を作成しました。日々進化していくので気が付くと新しいサービスが始まっています。非常に便利でできることがたくさんありすぎて全貌をつかめていません。何ができるのかアイデアを出していろいろとプログラムを試します。解説書を読んで勉強しています。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。