やーまんぶろぐ

気が向いた時にだけ書くブログ

踏み台サーバのCloudFormationテンプレートを実行してみる

踏み台サーバの要件を洗い出してみたところ、ほとんどが提供されているCloudFormationのテンプレートでカバーできていることがわかったので、まずは実行してみることにしました。

基本的には以下のサイトと同じです。
dev.classmethod.jp

要件

  • テンプレートで実現できていること
    • ログインの証跡を残す
    • 証跡はS3に保存
    • yum updateが定期的に走る
    • オートスケールする(可能であればログインするときだけ起動するようにしたい)
  • テンプレートで実現できていなかったこと
    • ユーザアカウントごとにログインさせる
    • 可能な限りユーザアカウントの管理を減らしたい
    • sudo を使わせない

今回はテンプレートでほとんどの要件を満たしていることを確認しました。
実現できていないことに関しても対策を行ったので別の記事にしたいと思います。

※2017/11/16 追記しました。
yamano3201.hatenablog.jp

実行

リンク先から「Launch Quick Start(for new VPC)」を実行します。遷移先はオレゴンリージョンになってるので構築したいリージョンに変更しましょう。
docs.aws.amazon.com

詳細は以下を入力して実行しました。
f:id:yamano3201:20171115111419p:plain

for existing VPCのほうを実行するとなぜかAutoScallingGroupの作成でタイムアウトになって以下のエラーが出てしまいました。解析はしてないです。

Received 0 SUCCESS signal(s) out of 1. Unable to satisfy 100% MinSuccessfulInstancesPercent requirement

確認

  • ログインの証跡を残す
    • ec2-userでログインして/var/log/bastion/bastion.log を確認するとコマンド履歴が残っていることがわかります
  • 証跡はS3に保存
    • CloudWatchLogsにLinux-bastion-BastionStack-XXXX-BastionMainLogGroup-YYYY というロググループが作成されています。その下にインスタンスID名のLogStreamsが作成されています。オートスケールされるたびに同一のロググループに新しいLogStreamsが作成される形になります。
  • yum updateが定期的に走る
    • cronで実現していました。
$ crontab -l
0 0 * * * yum -y update --security
  • オートスケールする(可能であればログインするときだけ起動するようにしたい)
    • インスタンスを停止させると、インスタンスが削除されて新しいインスタンスが作成されました
    • ログインするときだけ起動すれば充分なので、夕方に削除されるスケジュールアクションを追加しました。

f:id:yamano3201:20171115111129p:plain

まとめ

これでほとんどがOKですね。次回は、テンプレートで実現できなかった部分をまとめたいと思います。

※2017/11/16 追記しました。
yamano3201.hatenablog.jp