はじめに
短いプロフィールを編集し、SCP で EC2 に公開して実際のページの変更を確認します。
先に前段のポートフォリオラボを完了してください。この環境は必要な前段機能と独自のリソースを提供します。以前のインスタンス、ファイル、認証情報ではなく知識を引き継ぎます。
認定試験との関連
| 認定 | タスク | 練習内容 |
|---|---|---|
| AWS Certified Cloud Practitioner (CLF-C02) | Task 3.3 | EC2 アプリケーションを操作し、ローカルとリモートのファイルを区別する。 |
ラボの概要

プロフィールを準備する
このステップでは、 ローカルファイルを編集し、サイトは元の内容のままにします。まず Alex Morgan のページを確認します。ローカルは LabEx、リモートは EC2 上のファイルです。ローカル変更は自動公開されません。
プロジェクトへ移動します。
cd /home/labex/project
name はナビゲーションとフッター、headline は大きな主見出し、about は短い補足文です。元のプロフィールは JSON 文字列内の \n で改行します。練習用の見出しは 1 行です。
cat profile.json
cat > はファイルへの書き込みです。JSON マーカーで囲む here-document が内容を供給します。最後のマーカーまで含めて練習用の 3 項目を書きます。
cat > profile.json <<'JSON'
{
"name": "Sam Rivera",
"headline": "Design with purpose.",
"about": "Brand identities and digital experiences."
}
JSON
読み返して値を確認します。
cat profile.json
ページを更新しても Alex Morgan のままであることを確認します。まだ転送していません。チェックには指定値を使い、完了後に別の文章も試せます。
公開してページを確認する
このステップでは、 暗号化接続 SSH を使う SCP でファイルをコピーします。ssh_config がキーと経路を準備するため、秘密鍵を読んだりコピーしたりしません。
source が公開可能な識別子を読み込みます。PUBLIC_IP を AWS View と比較します。$PUBLIC_IP は保存値を使い、引用符でひとまとめにします。
source website.env
echo "$PUBLIC_IP"
-F は接続設定、ubuntu はリモートユーザー、コロン以降は送信先です。プロフィールを転送します。
scp -F ssh_config profile.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json
ページを更新して Sam Rivera を確認し、SSH のリモートコマンドで公開済みファイルを読みます。
ssh -F ssh_config ubuntu@"$PUBLIC_IP" cat /home/ubuntu/portfolio/profile.json
初回のホストキー案内と100%が表示されることがあります。再読み込みすると Sam Rivera、Design with purpose. と Brand identities and digital experiences. が表示されます。リクエストごとにプロフィールを読むため再起動は不要です。古い内容ならアドレス、パスと転送を確認します。

サーバーを片付ける
このステップでは、 公開を確認したあとインスタンスを終了します。
INSTANCE_ID を AWS View と比較します。
echo "$INSTANCE_ID"
このインスタンスだけを終了します。
aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"
terminated を待ちます。
aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"
サイトが動かないことを確認します。用意されたネットワークとキーは残します。
まとめ
JSON を編集して SCP で公開し、リモートファイルとページを確認してサーバーを終了しました。
公式ドキュメント: Connect to a Linux instance with SSH, transfer files to an instance.



