6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【OCI クラウド移行ガイド】AWS SNS+CloudWatch AlarmをOCI Notifications+Alarmsで実装できるか検証してみた~監視&通知サービス編~

Last updated at Posted at 2023-11-05

OCIクラウド移行ガイドとは

オンプレミスやAWSなど、複数のプラットフォームからOracle Cloud Infrastructureへの移行プロジェクトに取り組んでいるクラウドエンジニア(@araidon,@kazunishi,@yama6)による、OCI移行手順をまとめたシリーズ記事です。
各回、サンプルワークロードから対象サービスを取り上げ、移行手順をガイドいたします。
まとめ記事は以下になります。

移行したいサンプルワークロード

日々の業務でよく目にするサービスを中心に、サンプルワークロードとしてまとめてみました。このシリーズでは、主にAWSからの移行を取り上げます。
このワークロードは、ユーザがログインして、Web上で写真を共有するWebサービスをイメージしています。

image.png

移行検討するサービス:SNS+CloudWatch Alarm

近年のパブリッククラウド上のサーバの各種監視サービスは、対象クラウドのサービスを組み合わせて監視&通知を実装することが可能です。
(今回は上記ワークロードと少しズレてしまいますが)AWSだとSNS+CloudWatch Alarmが有名ですが、それと同様のことがOCIでも実装できるのか試したいと思います。

作業の流れ

①SNSの設定
②動作確認用のAWS EC2インスタンス作成
③CloudWatch Alarmの設定
④SNS+CloudWatch Alarmの動作確認
⑤動作確認用のOCI Computeインスタンス作成
⑥アラームの通知先の作成(=Notifications)
⑦アラーム定義の作成(=Alarms)
⑧Notifications+Alarmsの動作確認
image.png

AWS側検証

①SNSの設定

Amazon SNS トピックの作成
 タイプ:Standard
 名前:任意
 表示名:任意
 その他:デフォルト値
image.png
image.png

トピックの作成後、"サブスクリプションの作成"を実施
image.png
トピックARN:上記で作成したトピックを選択
プロトコル:今回は"Eメール"選択
image.png

登録したEメール宛てに検証メールが来ますので"Comfirm Subscription"します
image.png

ステータスが"確認済み"になっていれば問題ありません
image.png

②動作確認用のAWS EC2インスタンス作成

今回、CPUの使用率に閾値を設けて通知をする検証をするので検証インスタンスを作成します
image.png

③CloudWatch Alarmの設定

CloudWatch Alarmの作成をします
image.png

メトリクスが出てきますのでEC2を選択します
image.png

さらに先ほど作成したインスタンスかつ、CPUUtilizationを選択します
image.png

「メトリクスと条件の指定」に進みます
CPU使用率20%を超過すると通知をする設定としております
(その他は基本的にデフォルト設定としています)
image.png
image.png
image.png
image.png
image.png
image.png

④SNS+CloudWatch Alarmの動作確認

対象インスタンスでCPU使用率20%を1分間超過すると指定したEメールアドレスに通知が来る設定が完了したので、検証のためにインスタンスのCPU使用率を高めます。

下記コマンドはサーバスペックによっては瞬時にCPU使用率100%に到達します
検証時はシステム影響など十分に留意の上、実行してください

3回ほど下記コマンドを実行します

yes > /dev/null &
yes > /dev/null &
yes > /dev/null &

停止させる場合は下記コマンドにて番号を確認します

jobs

下記コマンドでプロセスキルして停止します(番号はjobsコマンドで確認したものを指定してください)

kill %1 %2 %3

しばらくすると指定したメールアドレス宛に閾値を超過した旨のメールが届きます。
image.png
image.png

実際にAWSのコンソール画面を確認するとCPU使用率が向上していることが確認できます
これにてAWS側の実装検証は完了となります
image.png

OCI側検証

⑤動作確認用のOCI Computeインスタンス作成

OCIでもAWSと同様に検証用のComputeインスタンスを作成します(今回はOracleLinuxにて検証しています)
Oracle Cloudエージェント "コンピュート・インスタンスのモニタリング"が有効化されていることを確認します
image.png

⑥アラームの通知先の作成(=Notifications)
メニューより「開発者サービス > 通知」を選択します
image.png

トピック作成を実施します
 名前:任意
 説明:任意
image.png

トピック作成後、詳細画面にて"サブスクリプションの作成"を実施します
任意のEメールアドレスを入力します
image.png

"サブスクリプションの作成"を実施すると登録したメール・アドレス宛てに検証メールが送付されます
Confirm subscriptionをクリックします
image.png

ステータスが"Pending"→"Active"になっていることを確認します
image.png

⑦アラーム定義の作成(=Alarms)

メニューより「監視及び管理 > アラーム定義」を選択します

image.png

アラームの作成を実施します

アラーム定義
 アラーム名:任意
 アラームの重要度:任意
 アラーム本体:任意
メトリックの説明
 コンパートメント:任意
 メトリック・ネームスペース:oci_computeagent
 リソース・グループ・オプション:任意
 メトリック名:CPUUtilization
 間隔:1分
 統計:Mean
メトリック・ディメンション
 ディメンション名:resourcid
 ディメンション値:先ほど作成したインスタンスのOCIDを指定
トリガー・ルール
 演算子:次より大きい
 値:20
 トリガー遅延分数:1分
アラーム通知の定義
 宛先サービス:通知
 コンパートメント:任意
 トピック:先ほど作成したトピックを選択

image.png

⑧Notifications+Alarmsの動作確認

対象インスタンスでCPU使用率20%を1分間超過すると指定したEメールアドレスに通知が来る設定が完了したので、検証のためにインスタンスのCPU使用率を高めます。

下記コマンドはサーバスペックによっては瞬時にCPU使用率100%に到達します
検証時はシステム影響など十分に留意の上、実行してください

3回ほど下記コマンドを実行します

yes > /dev/null &
yes > /dev/null &
yes > /dev/null &

停止させる場合は下記コマンドにて番号を確認します

jobs

下記コマンドでプロセスキルして停止します(番号はjobsコマンドで確認したものを指定してください)

kill %1 %2 %3

しばらくすると指定したメールアドレス宛に閾値を超過した旨のメールが届きます。
image.png
image.png
image.png

実際にOCIのコンソール画面を確認するとCPU使用率が向上していることが確認できます
image.png

最後に

AWS SNS+CloudWatch AlarmをOCI Notifications+Alarmsで代替できるか検証しましたが、ほとんど同等の機能があるように思えました。
特にOCI側の通知メールは綺麗にフォーマットされているのが個人的には好みでした。

AWSにせよ、OCIにせよクラウド上で監視機能まで実装されているのはやはり便利だと感じました。
あまり運用関連のやってみた系をしたことがなかったので個人的にも良い勉強になりました。

OCIで監視関連の機能を実装しようとしている人の一助になれば幸いです。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?