CloudWatch

シンプルな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インスタンスの自動起動・停止方法の紹介でした。

Amazon Linuxに対応しました

SIOS Coati開発チームの清水です。

先日のアップデートで、SIOS Coatiで監視できるOSとして Amazon Linux に対応しました!

Amazon Linuxとは、EC2 Management Console上からインスタンスを作るとき一番上に表示されるAMIです。

AWSが公式で提供しているAMIということもあり、使用している方も多いのではないかと思われます。

このAmazon Linuxのインスタンスも、これまでサポートしていたRHELやCentOSと同様の手順ですぐに使い始めることができます。

もし「使ってみたいけどAmazon Linuxを使ってるんだよなあ…」と思っていた方は、是非この機会に無料トライアルでお試しください。こちらの製品ページから申し込むことができます!

SIOS Coatiのオンラインマニュアルの作成方法(後編)

始めに

SIOS Coatiのチームにいる高正(たかしょう)です。
みなさまいかがお過ごしでしょうか。私は先日、夏休みをとって、家族で山梨県に旅行に行ってきました。
昨年も山梨県で今年も山梨県です。特に山梨に所縁はありませんが、去年旅行に行って気に入ったので今年も山梨に赴いた感じです。山梨のおすすめスポット色々あると思いますが、私のおすすめスポットは、ほったらかし温泉です。なんでほったらかし温泉という名前であるかは公式のホームページにお任せしましょう。私がおすすめする理由はただ一つ、景色が良いからです。ここの温泉はあっちの湯、こっちの湯と2つの温泉があります。去年はこっちの湯に入り、今年はあっちの湯に入りました。それぞれ微妙に違いがあって良いです。どのように違うかは実際に行って体験してみたください。ちなみに、天気がよければ富士山がとーってもきれいにみれるビュースポットなのですが、実は私、去年も今年も富士山を拝むことはできていません。いつの日か素敵な富士山を見たいものです。

オンラインマニュアルをデプロイするまでの流れ

前回の記事ではマニュアルの作成はSphinxを使って、マニュアルのデプロイにはBitbucket Pipelinesを使っていると説明しましたが、これらについて具体的などのようなプロセスを経てデプロイされるか説明をしたいと思います。

ざっくりとうちの開発チームにおけるデプロイまでの流れを書くと以下のようになります。

1.reStructuredText(reST)*1で書いたマニュアル用のソースコードを開発用ブランチにコミットする

2.開発用ブランチへのソースコードのコミットを契機にステージング用のS3バケットのマニュアルをデプロイ*2する

3.2のレビューで問題がなければ、本番用ブランチにソースコードをマージしてプロダクション用のS3バケットにマニュアルをデプロイ*2する

*1.reStructuredText(reST)はSphinxで採用されているマークアップ言語です。Markdown記法と似ています。Markdownを理解している方であれば、比較的簡単にreSTを使えると思います。

*2.Bitbucket Pipelinesはざっくりといえば、リポジトリへのコミットを契機に、環境をデプロイするサービスです。現在、SIOS CoatiではBitbucket PipelinesをオンラインマニュアルをS3のデプロイするために利用しています。

利点

ちょいとわかりづらいと思いますが、この流れに共通している名詞にお気づきでしょうか。はい、ソースコードです。この方式の良い点はreSTの書き方さえ抑えてしまえば、製品コードを書くのと同じ感覚でオンラインマニュアルの作成が行える点です。ちなみに、BitbucketがreSTに対応しているのでマニュアルの大まかな確認はBitbucket上で行えます。オンラインマニュアルの構造など、全体の見た目の部分はS3にデプロイされたhtmlファイルを見れば確認できます。

今後の展望

デプロイ作業は今回の記事で説明している方式によりとても簡単になりました。しかし、マニュアルの中身という点では表記揺れがあったり、冗長な表現があったりと改善したい箇所があります。SIOS Coatiでは文章校正は現在、人力でやっています。できれば、これは人力ではなく、ツールで解消したいところです。文章校正のツールとしては、RedPentextlintがあります。今後はこれらのツールを使って、文章校正の手間を極力軽減して、マニュアル作成を楽しく行える環境にしていきたいと思います。

レポートの紹介

SIOS Coati開発チームの清水です。

今回はSIOS Coatiのレポート画面を紹介します。

レポート画面

今回もGUI画面と同様に、まずは画面をご覧ください!

SIOS Coatiのレポートには、障害発生の直前と直後のインスタンスの各情報が書かれています。

レポートに集約された情報を参考に、今後の調査方針や対応方針など意思決定の材料のひとつとしてご活用いただければと思います。


レポート画面をもう少し詳しくみていきます。

レポート画面の右側は、収集されたインスタンスの情報などがのっています。

下記のサンプルでは、障害の発生した時間やプライベートIPアドレス、マウントされたディスクの情報が一例として載っています。

この下にはCloudWatchのメトリクスなど、さまざまな情報が載っています。

レポート画面の左側は、ナビゲータとなっています。

この索引から閲覧したい項目をクリックすると、実際に収集されたその情報をすぐに表示することができます。

SIOS Coatiのレポートには、収集された数多くの情報が記載されているので、こちらのナビゲータを上手く活用していただけると素早くレポートをチェックできるかと思います。

レポートのリンクページ

 

レポート画面の右側上部にある  をクリックすると、過去に発行されたレポートの一覧ページに移動することができます。

一覧ページでは、レポートへのリンクが並んでいるので、閲覧したいレポートのリンクを選択し、レポート画面に移動してください。

 


いかがでしたでしょうか。現在、SIOS Coatiを無料10,000時間お試しすることができますので、是非、お試しください!