自分のホームページを公開する

ShellBeginner
オンラインで実践に進む

はじめに

短いプロフィールを編集し、SCP で EC2 に公開して実際のページの変更を確認します。

先に前段のポートフォリオラボを完了してください。この環境は必要な前段機能と独自のリソースを提供します。以前のインスタンス、ファイル、認証情報ではなく知識を引き継ぎます。

認定試験との関連

認定 タスク 練習内容
AWS Certified Cloud Practitioner (CLF-C02) Task 3.3 EC2 アプリケーションを操作し、ローカルとリモートのファイルを区別する。

ラボの概要

短いプロフィールを編集し、SCP で EC2 に公開して実際のページの変更を確認します。

プロフィールを準備する

このステップでは、公開中のページを変えずに、新しいローカルのプロフィールを準備します。

このラボでは、すでに実行中の新しいサーバーを用意しています。Terminal と AWS View の準備ができたら、このラボの AWS View からポートフォリオを開き、Alex Morgan を確認します。前のラボのサーバーを探したり、起動し直したりする必要はありません。

AWS View の例:このラボでは portfolio-website が実行中です。識別子とアドレスは環境によって異なります。

ローカルファイルは LabEx の作業環境にあり、リモートファイルはサイトの EC2 サーバーにあります。ローカルを編集しても、リモートは自動では変わりません。

プロジェクトへ移動します。

cd /home/labex/project

プロフィールは JSON ファイルです。名前付きの項目で設定を保存するテキスト形式です。cat はその内容を表示します。変更する前に profile.json を確認しましょう。

cat profile.json

name はナビゲーションとフッター、headline は大きな主見出し、about は短い補足文です。元のプロフィールは JSON 文字列内の \n で改行します。練習用の見出しは 1 行です。 文字列は二重引用符で囲み、項目はカンマで区切ります。

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 が、このラボのキーと接続経路を選択します。

website.env にはサーバーのアドレスと識別子が入っています。source で現在の Terminal セッションに変数を読み込み、まずアドレスを表示します。

source website.env
echo "$PUBLIC_IP"

AWS View のアドレスと比較します。$PUBLIC_IP は保存された値を使い、引用符はそれを一つの引数にまとめます。

ローカルの profile.json をサイトへコピーします。-F ssh_config は接続設定、ubuntu は EC2 のユーザーです。コロンでサーバーのアドレスと送信先のパスを区切ります。

scp -F ssh_config profile.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json

初回接続では、用意されたサーバーのホストキーを追加したという案内が表示される場合があります。転送の 100% はコピー完了を示します。続いて、ページへの反映を確認します。

このラボの AWS View から開いたサイトを更新します。Sam Rivera、Design with purpose.、Brand identities and digital experiences. が表示されるはずです。アプリはリクエストごとにプロフィールを読むため、再起動は不要です。

公開したページに新しい名前、見出し、短い紹介が表示されます。

最後に、サーバー上のファイルも確認します。SSH アドレスの後のコマンドはリモートで実行され、終了すると Terminal に戻ります。

ssh -F ssh_config ubuntu@"$PUBLIC_IP" cat /home/ubuntu/portfolio/profile.json

リモートの JSON はローカルファイルと一致するはずです。コピーと、それを使うページの両方を確認できました。まだ Alex Morgan が表示される場合は、転送完了、AWS View のアドレス、送信先のパスを確認し、このラボのページを再読み込みします。

公開は完了です。サイトを開いたまま成果を眺めても構いません。次のラボでは別のサーバーを用意し、訪問者の接続を許可するネットワークルールを学びます。

まとめ

ローカルの JSON プロフィールを編集し、SCP で EC2 に公開して、SSH でリモートファイルを確認しました。実際のページの新しい名前と見出しから、変更がローカルにとどまらずアプリに届いたことを確かめました。

公式ドキュメント: Connect to a Linux instance with SSH, transfer files to an instance.