tech.farend

技術メモ置き場

AWS AMIの公開(Amazon Linux)

AMI(Amazon Machine Image)の元になるインスタンスを構築

普通にインスタンスを作成しアプリケーションほか構築

サービス停止

自動起動の設定等はそのまま、起動しているデーモン等(特にログを出力するもの)の停止をおこなう。

サンプル

1
2
[ec2-user@xxx ]$ sudo service mysqld stop
[ec2-user@xxx ]$ sudo service postfix stop

重要情報削除

削除対象

  • ログ
  • 操作履歴
  • 個人操作履歴

ec2-user履歴削除

1
2
3
[ec2-user@xxx ]$ export HISTSIZE=0
[ec2-user@xxx ]$ history -c
[ec2-user@xxx ]$ sudo su -

削除用スクリプト作成

下記内容の delete.sh ファイルを /root に作成する。
下記シェルスクリプトでは、 root および ec2-user でのMySQLに関するログも削除している。 またログファイルに関してはhttpdのログなど、公開したくないログがあればサンプルを参考に内容を消去するスクリプトを追記すること。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

service rsyslog stop
cp /dev/null /root/.ssh/authorized_keys
cp /dev/null /root/.bash_history
cp /dev/null /root/.mysql_history
cp /dev/null /home/ec2-user/.ssh/authorized_keys
cp /dev/null /home/ec2-user/.bash_history
cp /dev/null /home/ec2-user/.mysql_history
cp /dev/null /var/log/boot.log
cp /dev/null /var/log/btmp
cp /dev/null /var/log/cron
cp /dev/null /var/log/dmesg
cp /dev/null /var/log/dmesg.old
cp /dev/null /var/log/lastlog
cp /dev/null /var/log/maillog
cp /dev/null /var/log/messages
cp /dev/null /var/log/secure
cp /dev/null /var/log/spooler
cp /dev/null /var/log/tallylog
cp /dev/null /var/log/wtmp
cp /dev/null /var/log/yum.log
cp /dev/null /var/log/audit/audit.log
cp /dev/null /var/log/cloud-init.log
cp /dev/null /var/log/cloud-init-output.log
cp /dev/null /var/log/dracut.log
cp /dev/null /var/log/mail/statistics

処理実行

1
[root@xxx ]# sh delete.sh

delete.shを削除する。

1
[root@xxx ]# rm delete.sh

rootの履歴を削除する。

1
2
[root@xxx ]# export HISTSIZE=0
[root@xxx ]# history -c

AMIを作成する。

AWS管理コンソールで、対象のインスタンスを指定し、 [Actions] をクリックして [Image] を選択し、[Create Image] でしばらくすると、My AMIsに追加される。
DiscriptionName は、作成時のみ指定可能であとから変更することができないので、あらかじめ記入内容を決めておき、コピペでしていする用が良い。
作成元のインスタンスはログイン用公開鍵を削除しているので、もうログインできない。
インスタンスは使えないので、 STOPもしくはTerminate する。

AMIの公開

Imageを作成した段階では、 Private 状態なので、 Public に変更するとAMIが公開される。
AMIは各リージョン毎に別々の扱いなので、他のリージョンでも公開したいときは、別リージョンへコピーする。各リージョンにあるAMIは、それぞれ個別の扱い(IDも別)なのでそれぞれで公開設定を行う。 AMIの内容を更新し作り直した際も、それぞれ個別に扱う必要がある。