IAMロール

シンプルなEC2インスタンスの自動起動・停止について

こんにちは、SIOS Coati開発チームの黒田です。

開発や検証などを目的とした環境では、不要なEC2インスタンスの停止や削除は、
システムのランニングコスト削減に対して小さくない効果があります。
特に前月からはEC2の課金単位が、時間単位から秒単位へ変更となっておりますので、
停止・削除によるコスト削減がより効果的なものとなっています。

このような停止・削除といった操作は、EC2インスタンスの数が少ないうちは手動で
行われても良いかも知れませんが、実は地味に面倒な作業でもあります。
うっかり止め忘れたために想定以上の費用がかかってしまうケースも…?

そこで今回は、AWS Lambdaのスケジュール機能を利用した、
シンプルなEC2インスタンスの自動起動・停止方法を紹介したいと思います。

基本動作としては、全てのリージョンで、以下の特定タグが設定されているEC2インスタンスを
スケジュールされた時間に自動起動・停止します。

EC2インスタンスタグの動作一覧

key value 動作
Ec2StartStop Auto 起動・停止を実行
Ec2StartStop Start 起動のみ実行
Ec2StartStop Stop 停止のみ実行

※タグのkeyやvalue名は、環境にあわせて設定してください。

設定するAWSサービス

  • Lambda
  • IAM Role
  • CloudWatch Event

設定方法

Lambda

1.AWS マネージドコンソールへログインしてからAWS Lamdbaサービスを選択し、関数の作成を選択します。


 

2.トリガーの設定をスキップし、次へを選択します。


 

3.Lamdba関数の「名前」を入力し、ランタイムは「Python3.6」を選択します。


 

4.コードをインラインで編集します。

コードのサンプルは、以下になります。

※必要に応じてコードを変更してください。

IAM Role

5.「Lambda 関数ハンドラおよびロール」の「ロール」で、「カスタムロールの作成」を選択します。


 

6.「ロール名」と「ポリシードキュメント」を入力してください。

ポリシードキュメントは、以下になります。


 

7.「詳細設定」の「タイムアウト」値の変更

デフォルト3秒から30秒へ
※タイムアウト値は、環境にあわせて変更してください。

CloudWatch Event

 

8.まずは、起動のスケジュール設定をします。AWS CloudWatchサービス画面に移動し、「イベント」->「ルール作成」を選択してください。


 

9.「イベントソース」のスケジュールを選択し、「Cron式」を選択して、起動時間のcron式を入力してください。

cron式(UTC)

※環境にあわせて起動時間を変更してください。


 

10.「ターゲットの追加」を選択し、作成したLambda関数(Ec2StartStop)を選択します。「入力の設定」の「定数(JSONテキスト)」を選択し、以下を入力してください。

定数(JSONテキスト)


 

11.「名前」を入力と「状態」の「有効」をチェックし、「ルールの作成」を選択します。


 

12.停止スケジュールの設定をします。以下のようにcron式と定数(JSONテキスト)を入れ替え、8~11の手順を繰り返してください。

cron式(UTC)

※環境にあわせて停止時間を変更してください。

定数(JSONテキスト)


 

13.動作確認を行います。EC2インスタンスにタグを設定し、スケジュールされた時間にEC2インスタンスが起動・停止されているかを確認してください。

以上、AWS Lambdaのスケジュール機能を利用したシンプルなEC2インスタンスの自動起動・停止方法の紹介でした。

『SIOS Coatiの申し込みから利用開始までのプロセス』更新のお知らせ

こんにちは、SIOS Coatiチームの黒田です。
前回の記事で、『AWS認証方式の変更のお知らせ』を紹介しましたが、AWS認証方式の変更により
『SIOS Coatiの申し込みから利用開始までのプロセス』を更新しましたので、再度、Coatiの申し込みから利用開始までのプロセスをSTEP1~7を紹介したいと思います。

Coatiの申し込みから導入までのプロセス
STEP1 Coatiの申し込み
STEP2 ヘルプデスクアカウントの登録
STEP3 VPC Peeringリクエストの承認
STEP4 ルートテーブルとセキュリティーグループの設定
STEP5 AWSの認証情報の登録
STEP6 監視対象のインスタンスでスクリプト実行
STEP7 Coatiの利用開始

続きを読む

AWS認証方法の変更のお知らせ

SIOS Coatiチームの黒田です。
暦は9月となりましたが、日々みなさまいかがお過ごしでしょうか。

この度、セキュリティー強化の一環として、SIOS CoatiのAWS認証方法を変更しました。

今までは、Access Key IDとSecret Access Keyを設定する方法だったのですが、
今回のアップデートにより、SIOS CoatiのAWSアカウントからのアクセスのみを
許可するIAMロールを設定し、AssumeRoleで認証する方法に変更となりました。

旧認証方法:
Access Key IDとSecret Access Keyを設定する方法

新認証方法:
CoatiのシステムのAWSアカウントからのアクセスのみを許可するIAMロールを設定し、
AssumeRoleで認証する方法

旧認証方法では、長期的なセキュリティ認証情報を保持していましたが、
新認証方法へ変更することで、一時的なセキュリティ認証情報になることが
大きな変更となります。

一時的なセキュリティ認証情報を使用する利点については、以下のドキュメントを参照してください。
http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_temp.html

AWS認証方式を変更に伴い、SIOS Coatiのセットアップ方法も変更なりましたので、
併せてご確認ください。

http://manual.sios-coati.com/setupflow/setupflow.html

また、次回の記事で、今回の新認証方法での『SIOS Coatiの申し込みから利用開始までのプロセスを紹介』を紹介したいと思います。

注意:
※旧認証方法のAccess Key IDとSecret Access Keyを設定する方法を利用しているお客様へ
サポートからお客様へ個別に移行案内をしていますので、ヘルプデスクを参照してください。
※旧認証方法のAccess Key IDとSecret Access Keyを設定する方法は、廃止となりました。