AWS ConfigとAWS CloudTrailとAWS CloudWatchの機能と違い
はじめに
AWSの中でも、これらのサービスは「リソースを監視する」という点で似ています。
AWSの勉強をしていると、毎回混乱するので、それぞれの機能と違いをまとめてみました。
(Associateレベルの資格勉強のメモ程度に書いています)
サービス概要
AWS Config
AWS上のリソースの構成を評価・監査することができるサービスです。
また、AWS上のリソースの変更を継続的に記録することができます。
機能概要
- AWSリソースの変更の記録
- 記録の保存
- リソースの変更発生時の通知(AmazonSNSとの連携)
- ポリシーに準拠しているか監査・評価
などなど
AWS CloudTrail
AWS上のユーザーアクティビティとAPI使用状況を追跡することができるサービスです。
AWSインフラ全体のユーザー操作を記録・監視することができます。
機能概要
などなど
AWS CloudWatch
AWS上のリソースとアプリケーションを監視するサービスです。
メトリクスを監視し、リソースの状況を可視化したり、リソースが異常な状態になった場合にアラームの状態を変更したりすることができます。
機能概要
- 各種メトリクスのトラッキング(EC2のパフォーマンス等)
- ログファイルの収集・保存(各種アプリケーションログの収集等)
- アラームの設定(メトリクスが閾値を超えた場合にアラーム状態を変更)
- アラームとEvent Bridgeを連携し、アラームが発生したときに特定の動作を実施
などなど
(AWS CloudWatch Eventという機能がありましたが、これはEventBridgeへ変更されるようです)
サービス比較
それぞれのサービスの目的を比較してみます
AWS Config vs AWS CloudTrail
どちらもリソースの変更のモニタリングという点で似ていますが、 興味の対象が「リソース」であるか「ユーザー」であるか、の違いと考えられます。
AWS CloudTrail vs AWS CloudWatch
目的が「監査」なのか「監視」なのか、の違いと考えられます。
まとめ
それぞれ似た機能を持つサービスですが、ドキュメントを読んでみると目的等が異なることがよくわかります。 それぞれのサービスを利用する場合は、達成したい目的に沿ったサービスを利用したいですね。
Linux MintにSML#を導入してみた
とある用事でSML#を使う必要があったのですが、自分が仮想環境で利用していたLinux MintにSML#を導入するのにかなり苦労してしまいました。というのも現在リリースされているSML#は32bit版なのに対し、SML#のコンパイルと実行に必要なライブラリがデフォルトで64bit向けになっているためapt-getが使えず。あちらこちらから必要なものを直接落としてコンパイルする必要がありました。
後学のために導入の手順を残しておきます.(冗長な部分があるかもしれないので適宜取捨選択してください)
32bit向けコンパイラの導入
まずは必要なSML#に必要なライブラリの32bit向けコンパイルを行うためにgcc-multilibを導入します。(ついでにg++-multilibも導入しちゃいましょう。)
(もしかしたら32bit環境のライブラリを用意しておくと幸せになれるかもしれない)
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
GMP,LLVMのダウンロード
続いてSML#のコンパイルと実行に必要なライブラリであるGMPとLLVMを導入します。それぞれ以下のサイトからダウンロードして適当なところ展開してください。
※この時、gmpのバージョンは5.1.2、LLVMのバージョンは3.4を推奨します。gmpに関しては別バージョンでも構いませんが、LLVMはバージョンによって仕様が大きく異なるため、3.4以外を導入すると最悪動きません。
gmp,LLVMの32bit向けコンパイル
gmp,LLVMの32bit向けコンパイルを行うために下準備をします。展開したそれぞれのフォルダの中に移動し、configureを実行します。これはgmpもLLVMも共通です。
もしかしたらLLVMのconfigureの実行時にMakefileが作成されないかもしれません。その場合はパッケージでM4をインストール(sudo apt-get install M4)してから再度configureを実行してみてください。 (ちなみにconfigureはMakefileを生成するスクリプトで、オプションとしてABI=32を付与することで32bit向けコンパイルを行ううためのMakefileを生成することができます。)
続いて、makeを行います。
make install
SML#のダウンロード・コンパイル
最後のステップです。SML#を以下のリンクからダウンロードし展開します。パッケージ種別はsourceで。
展開したら中に入り、configureを実行します。
configureが完了したらMakeを行います。
make install
※makeをするときに付けるオプション-j4の数字の部分はCPUのコア数にしてください。このオプションを付けることである程度高速にコンパイルできます。
以上がSML#の導入手順になります。
まとめ
結論から言ってしまえばSML#のコンパイル、実行に必要なライブラリを32bit向けにコンパイルすれば良かっただけの話でした。
で、64bit版SML#の公開はまだですか?