handson: AWS CDP (Instance Stateful SSH)

目的

SSHログイン可能なステートフルなインスタンスを構築する。

前提

作業環境条件

本作業は、以下の作業環境で行います。

作業環境条件1: OSとバージョン

本手順は、Amazon Linux "Amazon Linux AMI release 2018.03"以降のOS環境での実施を前提としています。

コマンド:

cat /etc/issue | head -1

結果(例):

Amazon Linux AMI release 2018.03

作業環境条件2: シェルとバージョン

本手順は、bash "4.2.46(2)-release"以降のシェル環境での実施を前提としています。

コマンド:

bash --version -v | head -1

結果(例):

GNU bash, バージョン 4.2.46(2)-release (x86_64-redhat-linux-gnu)

作業環境条件3: AWS CLIのバージョン

本手順は、AWS CLIの最新バージョンでの実施を前提としています。

コマンド:

aws --version

結果(例):

aws-cli/1.16.2 Python/3.6.5 Linux/4.14.59-64.43.amzn1.x86_64 botocore/1.11.2

バージョンが古い場合は最新版に更新しましょう。

コマンド:

sudo -H pip install -U awscli

手順

ローカル環境での作業

  • 今回は"${HOME}/tmp/parameter-handson-cli-instance-stateful-ssh"をパラメータファイル情報用ディレクトリとします。

ディレクトリが存在することを確認します。

コマンド:

ls -d ${HOME}/tmp/parameter-handson-cli-instance-stateful-ssh

結果(例:存在する場合):

${HOME}/tmp/parameter-handson-cli-instance-stateful-ssh

存在しない場合は作成します。

コマンド:

mkdir -p ${HOME}/tmp/parameter-handson-cli-instance-stateful-ssh

4. EC2インスタンス内での作業 (ec2-userでの作業)

4.3. ディスクへの書き込み

変数の宣言:

MOUNT_POINT_NAME='/mnt-handson-cli-instance-stateful-ssh'

コマンド(リモートホスト):

touch ${MOUNT_POINT_NAME}/test.txt

結果(例):

(出力なし)

コマンド(リモートホスト):

ls -l ${MOUNT_POINT_NAME}/test.txt

結果(例):

-rw-rw-r-- 1 ec2-user ec2-user 0 Sep 16 05:43 /mnt-handson-cli-instance-stateful-ssh/test.txt

4.4. インスタンスからのログアウト

コマンド(リモートホスト):

exit

今後ログインしない場合は、ホストキーを削除しておきましょう。

変数の確認

cat << ETX

  # EC2_PUBLIC_IP:"xxx.xxx.xxx.xxx"
    EC2_PUBLIC_IP="${EC2_PUBLIC_IP}"

ETX

コマンド:

ssh-keygen -R ${EC2_PUBLIC_IP}

結果(例):

# Host xxx.xxx.xxx.xxx found: line 2
/home/ec2-user/.ssh/known_hosts updated.
Original contents retained as /home/ec2-user/.ssh/known_hosts.old

ローカル環境での作業

パラメータファイル情報用ディレクトリを削除します。

コマンド:

rm -Rf ${HOME}/tmp/parameter-handson-cli-instance-stateful-ssh

備考