##CloudWatch
- 目的
- 監視
- ログ取得
- 用途
- ホストに入らずログを確認できる
- ログを保存期間を定めて、その期間ログの消失を防ぐ
- 障害発生時、起動しないEC2のログをS3に保存する設定をしておくことで確認できる
- ログを改ざんに気づける
- ログローテーションされてもログを見るられる
##SystemsManager(SSM)
- SystemsManagerとは
- AWSのインフラストラクチャを可視化し、制御する
- AWSサービスの運用データを確認でき、運用タスクを自動化できる
- 自動化ツール
- インベントリ
- オートメーション
- ランコマンド
- パッチマネージャー
- メンテナンスウィンドウ
- ステートマネージャー
- パラメータストア
###Run Command
- 対象
- Windows/Linux
- 用途
- ログインせずにコマンド実行
- 実行をCloudTrailで追跡可能
- タイムアウトやリトライ回数制御
- 実行対象はタグ、インスランス指定
- 実行内容はドキュメントとしてJSONで定義
- デフォルトで用意されているドキュメント
- SSMAgentアップデート
- EC2Configアップデート
- コマンド実行(Shell/powershell)
- Dockerアクション
- AD参加
- Windowsアップデート
- msiインストール
- など...
- 備考
- 実行結果が2500文字までしか見れない(それ以上全てみる場合はS3に保存する)
###パラメータストア
- 用途
- 値の一元管理
- パスワード、ライセンスキー等を管理
- 文字列またはリストを指定可能
- 暗号化も可能
- {{ssm変数名}}
###SSMからパラメータストアを作成し、保存する
- 作成手順
- 左ペインの最下部に移動して[パラメータストア]を選択
- オレンジ色の[パラメータの作成]をクリック
- [名前]と[値]を入力し、オレンジ色の[パラメータの作成]をクリック
- ※値の入力例は画像以下の「パラメータの値」を参考にしてください。
- パラメータの値
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/httpd/*-access_log",
"log_group_name": "isftest.ml",
"log_stream_name": "{instance_id}-access_log",
"timezone": "Local",
"timestamp_format": "%b %d %H:%M:%S"
},
{
"file_path": "/var/log/httpd/*-error_log",
"log_group_name": "isftest.ml",
"log_stream_name": "{instance_id}-error_log",
"timezone": "Local",
"timestamp_format": "%b %d %H:%M:%S"
},
{
"file_path": "/var/log/messages",
"log_group_name": "/var/log/messages",
"timezone": "Local",
"timestamp_format": "%b %d %H:%M:%S"
},
{
"file_path": "/var/log/secure",
"log_group_name": "/var/log/secure",
"timezone": "Local",
"timestamp_format": "%b %d %H:%M:%S"
}
]
}
}
}
}
###EC2にCloudWatchエージェントをインストール
###CloudWatch Logs Insights クエリ構文
##Amazon Athena
- AmazonAthenaとは
- 標準SQLを使用してアドホッククエリの実行を開始できる
- サーバーレスであり、インフラストラクチャの設定管理は不要
- 実行したクエリのみに課金される
- 自動的にスケールするため大規模なデータセットや複雑なクエリでも結果が早い
- 用途
- S3に保存された非構造化・構造化データを分析できる
- CSV 形式、JSON 形式、列データ形式に対応
- AthenaはAmazonQuickSightと統合しているため、データを簡単に可視化できる
- DBCやODBCを介してBIツールやSQLクライアントに接続し、レポート生成・データ探索を行う
- AthenaはAWSGlueデータカタログを統合することで永続的なメタデータストアを提供
- アクセス
- AWS マネジメントコンソール (JDBC または ODBC 接続経由)
- Athena API
- Athena CLI
- テーブル、データベース、およびデータカタログの理解
- テーブルのメタデータはS3内のデータ保存先と列名、データ型、テーブル名のデータ構造を指定
- クエリ対象のデータセットごとに基となるテーブルが必要
- テーブルに取得したクエリの結果が返される
- 事前にAthenaにテーブルを登録しておく必要があり、手動か自動で行う
###テーブルの手動作成方法
-
Athena コンソールを使用してテーブル作成ウィザードを実行します。
-
Athena コンソールを使用して Hive DDL ステートメントをクエリエディタに書き込みます。
-
Athena API または CLI で DDL ステートメントを使用して SQL クエリ文字列を実行します。
-
Athena JDBC または ODBC ドライバーを使用します。
-
ドキュメント
###VPCFlowLogsのS3に保存したものを基にAthenaでテーブル作成
-
手順
CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs (
version int,
account string,
interfaceid string,
sourceaddress string,
destinationaddress string,
sourceport int,
destinationport int,
protocol int,
numpackets int,
numbytes bigint,
starttime int,
endtime int,
action string,
logstatus string
)
PARTITIONED BY (dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '
LOCATION 's3://your_log_bucket/prefix/AWSLogs/{subscribe_account_id}/vpcflowlogs/{region_code}/'
TBLPROPERTIES ("skip.header.line.count"="1");
ALTER TABLE vpc_flow_logs
ADD PARTITION (dt='YYYY-MM-dd')
location 's3://your_log_bucket/prefix/AWSLogs/{account_id}/vpcflowlogs/{region_code}/YYYY/MM/dd';
- ドキュメント
#用語
- ビジネスインテリジェンスツール(BIツール)
- 企業に蓄積された大量のデータを集めて分析し、迅速な意思決定を助けるツール
- アドホッククエリ
- Facebookが公開した新しい分散処理基盤,Presto
- 超大規模なデータセットに対してインタラクティブに結果を返せるようにと開発
- 中間データをメモリが持つことで高速化しているため、メモリキャパシティエラーの原因
- 一回のクエリ内で,複数のデータソースからデータを参照できる
- 複数データソース(HBase, Cassandra, MySQL, etc...)
- ODBC (Open Database Connectivity)
- 関係データベース管理システム (RDBMS) にアクセスするための共通インタフェース (API)
- JDBC (Java Database Connectivity)
- Javaアプリケーションからデータベースを操作するAPI
- JDKのコアAPIとしてjava.sqlパッケージに実装されています