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
1. VPCの構築 (EC2権限での作業)¶
1.2. IGWの作成¶
1.3. ルートテーブルの作成¶
1.4. ルートの作成¶
1.5. サブネットの作成¶
1.6. セキュリティグループの作成¶
2. EC2インスタンスの構築 (EC2権限での作業)¶
3. ECSボリュームの追加 (EC2権限での作業)¶
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
5. AMIの作成 (EC2権限での作業)¶
ローカル環境での作業¶
パラメータファイル情報用ディレクトリを削除します。
コマンド:
rm -Rf ${HOME}/tmp/parameter-handson-cli-instance-stateful-ssh