2
0

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 3 years have passed since last update.

ServiceNowのデータをAppFlow経由でS3に保管してみる

Posted at

diagram.jpg
ServiceNow内のデータをどこかに保管しておきたいのですが、楽にできそうなAmazon AppFlowを触ってみることにしました。今回はサーバーの構成情報をS3に保管するという体です。

Amazon AppFlowとは

Amazon AppFlowはSaaSのアプリケーションとAWSサービスのデータ転送を可能にする「フルマネージド(ここ重要)」なサービスです。SlackやDatadogなど20のサービス(2021/3現在)と接続が可能になっています。

App Flowのセットアップ方法はドキュメントに書いていますが、GUIどおりに進めていけば問題なかったです。
https://docs.aws.amazon.com/ja_jp/appflow/latest/userguide/requirements.html

AWS Management Consoleへログインし、AppFlowを選択する

flowsnow (81).png
マネジメントコンソールから検索画面で入力します

使用するサービスを選択する

flowsnow (82).png
データ送信元のサービスをここで選択します。
新規作成でも大丈夫ですが、ここで選択をしておくと送信元を選択するときに自動で選択されるのでちょっと楽になります。

フローの詳細を指定

flowsnow (83).png
フロー名を入力する以外はデフォルトのままにします

フローを設定

flow (106).png
送信元と送信先を設定します。送信元は自動で選択されているのでそのままです(新規作成から作成した人はここで送信元のサービスを選択します)。接続のボタンがあるので詳細情報を入力します。

送信元の詳細

flow(85).png
接続するを押すとインスタンスの情報を入力します。

  • ユーザー:管理者権限をもつユーザーを入力する必要があるので、使用するユーザーにロールが付与されているかは確認をしておきます。
  • パスワード:特に説明なし
  • インスタンス名:ServiceNowの個人インスタンスはdevXXXXXX(数字)で表記されているので、そこをコピペしてきます。
  • 接続名;どこと接続するのかわからなくなるので、自分が後々わかれば大丈夫です(今回は- ServiceNowからAWSへの接続テストなので名前も適当にしています)

flowsnow (86).png
上記を入力後に接続を押すと、問題なければServiceNowオブジェクトを選択が表示されます。
今回は構成管理のサーバー名を保存したいので、cmdb_si_serverを選択します。どの情報を送信させたいのかはここで検索することも出来ますが、予めServiceNow上でのテーブル名をメモって置くほうがスムーズに行きます

送信先の詳細

flow(84).png
送信先は送信元と違って数が限られています(オレゴンはHoneyCodeが追加されています)。
今回単純にServiceNow上のデータを保管したいだけなので、S3を選択します。

フロートリガー

flowsnow (89).png
いつどのタイミングで転送するのかを選択します。1分おきにデータを取りに行く設定もできますが、課金されるのも嫌なので今回はオンデマンドで実行を選択します
画面はスケジュールで実行を選択した場合、どのぐらい細かく見れるのかを表示させたかっただけです。

データフィールドをマッピング

flowsnow (90).png
送信元の情報を送信先のどこにマッピングするのかをここで設定します。そのまま全てを保存したいだけなので、今回は「全てのフィールドを直接マッピングする」を選択します。
問題がなければ次へ。

フィルターを追加する

flowsnow (91).png
必要なものだけを送信したい場合はここで指定ができます。
お試しで入力しますが、全部取り込みたい場合はそのまま次へいきます。

flowsnow (92).png
確認して全てOKなら、フローを作成を押します。

フローを実行する

flowsnow (93).png
無事に作成されたのでフローを実行します。割とすぐに完了しましたって出ました。

flowsnow (95).png
flowsnow (96).png
S3のバケットを見てみるときちんと出力されていました。
ファイルをダウンロードして中身を見るとサーバー41台がしっかり「全部」送信されたのが確認できました。
(devXXXXXXは変換しました。ちなみにこれらは全部デモデータです)

ServiceNowでデータを追加して再度フローを実行する

せっかくなのでサーバーの情報を追加してもう一度実行してみます。

flowsnow (97).png
ServiceNowにログインし、フィルターナビゲーターと呼ばれる検索窓に「cmdb_ci_server.list」と入力し、サーバー一覧を表示させます。

flowsnow (98).png
新規作成画面から情報を入力して送信します。サーバー名等情報は思いついたものを適当に入力しました。
これで42台に増えましたので、AWSのAppFlowの画面から同じようにフローを実行します。

flowsnow (99).png
flowsnow (100).png
結果がこちら。S3のバケットには新規でファイルが作成され、中身を見るとちゃんと先程のデータがきちんと追加されていますね。

構築も管理もめっちゃ楽

ServiceNowのデータ連携をするのに書いたコードは「ゼロ」です。わかりやすくマッピングしたり、データの精査にはCSVファイルを出力したりフィルターの設定をする必要がありますが、どちらにしてもコードを一切書かなくても良いのがメリットです。

ServiceNowは外部の連携ツールにMIDサーバーを経由させるのですが、構築するのが地味にめんどくさいです。そのためだけに作るのが面倒だったなんて言えない
AppFlowを使ってやると1時間もかからずに自動バックアップの仕組みを作れるので、便利だなーって感じました(小並感)

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?