AWSのサービスの中には、エージェントをインストールすることで、オンプレのサーバーとも連携できるものがある。そういったサービスを一覧した。他にもあったかな?
SystemsManager
サーバーを一括管理するサービス。個別にSSHでログインせずに、コマンドを実行したり(Run Command)、OSアップデートをしたり(Patch Manager)できる。
他のエージェントをインストールすることもできるので、SystemsManagerは最初にインストールしておくのが良さそう。
なお、EC2の新しめAMIでは最初からインストールされているはず。
CodeDeploy
デプロイ作業サービス。個別にSSHログインしなくて良いし、ロールバックがしやすくなる。全サーバーに一気にデプロイするだけでなく、一部のサーバーから順にデプロイすることができる(カナリアデプロイ、線形デプロイ)。CodePipelineなどの他サービスと連携して、継続的インテグレーション・継続的デプロイ(CI/CD)ができる。
CloudWatch
ログ管理サービス。個別にSSHログインしなくても(略)。fluentdに比べて集約サーバーの管理などの手間が少ない。AWSコンソールの中にログ検索画面もある。
Kinesis Data Streams
リアルタイムデータ処理サービス。サーバーログ用のCloudWatchに対し、KinesisはIoTなどの多ソース・高頻度・大量のログを処理するためのサービス。ストリームに流したログをLambdaで処理して、S3、Redshift、GCP BigQueryなどに投入するのがよくある使い方。
S3
S3をファイルシステムとしてマウントするツールは複数ある。しかし、いずれも公式推奨ではないはず。
- goofys: https://github.com/kahing/goofys
- s3fs: https://s3fs.readthedocs.io/en/latest/
- s3fs-fuse: https://github.com/s3fs-fuse/s3fs-fuse
単にS3にファイルをアップロードしたいだけなら aws-cli の aws s3 cp
や aws s3 sync
コマンドを使うのが面倒が少ない。
また、オンプレ内にS3へのゲートウェイとなるサーバーを立てる、S3ファイルゲートウェイがある。プロトコルはNFSとSMB。また、ゲートウェイは、AWS公式のイメージから仮想マシンを作る方法と、ハードウェアアプライアンスを購入する方法がある。
よく似た機能にストレージゲートウェイがある。こちらは、プロトコルがiSCSIで、ファイルシステムではなくボリュームレベルでS3に保存する。
MGN(Application Migration Service)
オンプレサーバーをEC2に移行するサービス。オンプレサーバーに Replication Agent をインストールし、ファイルを随時ミラーリングしながら移行する。
なお、移行の方法としては、VM Importで仮想マシンを移行したり、Docker化しECSに移行したり、そもそも移行しないで廃止したりするなど、複数の選択肢がある。
まず、AWS Migration Hubに現状を登録し、AWS Application Discovery Serviceで現状分析するところから始める。