初めてのポートフォリオサイトを起動する

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

はじめに

AWS の学習へようこそ。Amazon Web Services(AWS)は、アプリの実行、ファイルの保存、データ管理などのサービスを提供します。学習パスの最初のコース AWS Foundations for Beginners を始めます。8 つのガイド付き Lab で、この作品サイトを通じて公開、アクセス制御、素材の保存、復旧、監視を学び、その後リソース管理や各サービスを深く学びます。

EC2 を起動し、Terminal と AWS View を理解して完成したサイトを開き、最後にサーバーを終了します。

AWS、Linux、プログラミング経験は不要です。LabEx が CLI、接続、素材を準備します。個人の AWS アカウントやアクセスキーは不要で、各ラボは独立して開始します。

認定試験との関連

認定 タスク 練習内容
AWS Certified Cloud Practitioner (CLF-C02) Tasks 3.1, 3.3 AWS CLI と EC2 を使ってサイトを実行する。

ラボの概要

EC2 を起動し、Terminal と AWS View を理解して完成したサイトを開き、最後にサーバーを終了します。

サイトを起動して開く

このステップでは、用意された作業環境を確認し、サーバーを起動して作品サイトを開きます。

LabEx はブラウザーから使う準備済みのコンピューター、仮想マシン(VM)を提供します。AWS CLI (AWS のコマンドラインツール)、このラボのアクセス設定、サイトのファイルと初期ネットワークは設定済みです。自分のコンピューターへのツール導入、個人 AWS アカウントの作成、AWS へのログイン、アクセスキーの入力は不要です。

最初のコマンドを入力する前に、次の場所を確認します。

場所 用途
ステップの説明 現在の課題を読み、順番に進みます。
Terminal の上の AWS View リソースと状態を確認し、サーバー作成後にサイトのリンクを開きます。
下側の Terminal プロンプトの横にコマンドを入力し、応答を読みます。

LabEx 作業環境の例:上に AWS View、下に Terminal。タイトルや値は異なる場合があります。

この画像は起動前の作業環境です。No website instance yet は、サイトのサーバーがまだ作成されていないことを意味します。起動コマンドの後に EC2 カードが表示されます。下の Terminal でコマンドを入力し、上の AWS View で結果を確認します。

下側の Terminal で labex:project/ $ のようなプロンプトの横をクリックします。これは入力可能である印で、プロンプト自体は入力しません。コマンドだけを貼り付け、Enter を押し、プロンプトが戻るまで次のコマンドを待ちます。図中の Terminal アイコンは入力欄ではありません。AWS View は同じコマンドが操作するリソースのラボ用表示で、公式 Console とは別です。

二つのコンピューターを区別してください。LabEx VM でコマンドを実行し、これから作る EC2 インスタンスでサイトを実行します。Amazon EC2 はインスタンスと呼ばれる仮想サーバーを提供する AWS サービスです。ブラウザーはインスタンスのアプリにページを要求します。

用意されたフォルダーへ移動します。cd はディレクトリーを変更し、ディレクトリーはフォルダーを意味します。

cd /home/labex/project

JSON は名前付き設定です。launch.json には小型サーバー、サイト入りのイメージとアクセス可能なネットワークが準備されています。aws は CLI、ec2 はサービス、run-instances は起動操作です。--cli-input-json file://launch.json が設定を読みます。

aws ec2 run-instances --cli-input-json file://launch.json

AWS View で running を待ち、Open your portfolio website を開きます。Alex Morgan、大きな Make it memorable. と AURA、FORMA、ECHO が表示されます。実際のサーバー応答です。早く開いた場合は待って再読み込みし、起動を重ねないでください。

起動後の AWS View の例:portfolio-website、running、サイトのリンクを確認します。識別子は異なります。

実際のラボの確認例です。リソース ID は環境によって異なります。

起動したサーバーを理解する

このステップでは、 設定と結果を対応付け、ID を保存します。AMI は OS とソフトウェア、t3.micro は容量、MinCount/MaxCount=1 は 1 台を表します。SubnetId はネットワーク位置、SecurityGroupIds はアクセスルール、KeyName は SSH 準備、Tags は名前です。Region は地理的なサービス地域で、設定済みの接続は us-east-1 です。

公式 AWS Console を知る

AWS Management Console はサービス探索、リソースやグラフの表示、ときどき行うフォーム操作に便利な公式 Web 画面です。AWS CLI は正確な問い合わせ、繰り返す操作、自動化に向いており、オプションと出力を学ぶ必要があります。エンジニアは両方を使います。

AWS Console Home の例:サービス検索とカード。出典:AWS Console guide — https://docs.aws.amazon.com/pdfs/hands-on/latest/getting-started-with-aws-management-console/getting-started-with-aws-management-console.pdf.

これは参考画像で、このページを開く必要はありません。アカウント、リージョン、料金は例で、配置は変わる場合があります。個人アカウントにログインせず、準備された Terminal と AWS View を使い続けます。

cat で設定を表示し、上記の項目に注目します。

cat launch.json

変数は値を保存します。$(...) が実行結果を取得し、query が最初の ID、output text が文字列を選択します。echo の値を AWS View と比較します。引用符は値をひとまとめにし、変数はこの Terminal セッションに保存されます。

INSTANCE_ID=$(aws ec2 describe-instances --query 'Reservations[0].Instances[0].InstanceId' --output text)
echo "$INSTANCE_ID"

waiter が指定したインスタンスの running 状態を待ちます。

aws ec2 wait instance-running --instance-ids "$INSTANCE_ID"

条件を満たすと出力なしで戻ります。running はサーバーの状態、成功したページはアプリケーションの応答を別々に確認します。

AWS サービスとアプリの用途

すでに具体的な用途を体験しました。EC2 はサイトを実行します。ほかのサービスはアプリの別の部分を担当します。このコースでは S3、IAM、CloudWatch を同じ作品サイトに結び付け、後続のコースで表のサービス群を深く学びます。今は名前を暗記したり設定したりする必要はありません。

用途 サービス できること
ファイルと作品画像 S3 画像、文書などの素材を保存して取得する。
アクセス IAM 誰がリソースにどの操作を行えるかを制御する。
サーバーとネットワーク VPC, EC2, EBS リソースを接続し、アプリを実行し、ディスクを追加する。
トラフィックと容量 Elastic Load Balancing, Auto Scaling リクエストを分散し、サーバー容量を調整する。
アプリのデータ RDS, DynamoDB リレーショナルテーブルやキーでデータを保存する。
コード、API、ユーザー Lambda, API Gateway, Cognito 関数を実行し、HTTP エンドポイントとログインを提供する。
メッセージとワークフロー SQS, SNS, EventBridge, Step Functions 作業をキューに入れ、通知し、イベントを振り分け、処理を連携する。
保護と運用 KMS, Secrets Manager, Parameter Store, WAF, CloudWatch, CloudTrail, CloudFormation データや設定の保護、リクエストのフィルタリング、観測・監査、テンプレートによるインフラ定義を行う。

サーバーを削除する

このステップでは、 作成したサーバーだけを終了します。タブを閉じてもリソースは消えません。個人の AWS アカウントでは実行中インスタンスや保持したリソースに料金が発生することがあります。Terminate は永久削除、Stop は後で使うための停止です。

保存した ID で自分のインスタンスだけを終了します。

aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"

最終状態になるまで待ちます。

aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"

AWS View は terminated、ページは Your website is not running になります。記録が残ってもサーバーは動いていません。ネットワーク、イメージとキーを残し、次の独立ラボへ進みます。

次の学習方向を選ぶ

共通の基礎は AWS Foundations for Beginners → AWS Resource Management for Beginners → AWS S3 for Beginners → AWS IAM for Beginners の順です。最初のコースでサイトを通じて操作に慣れ、Resource Management でリソース識別、Region、検索、タグを学び、S3 と IAM で保存と権限を深めます。これは予定する学習順序で、オンラインのパスには以前の並びが残っている場合があります。

AWS の主要学習パス図:矢印は学習の進行を表し、ネットワーク通信やデプロイ済み構成ではありません。Resource Management を共通の出発点に追加し、サービス名は英語のままです。

基礎の後は方向を選べます。Web アプリはネットワーク、サーバー、リレーショナルデータを組み合わせ、Serverless アプリは自分でサーバーを管理せず関数と API を使います。セキュリティと監視は両方を支えます。後半のメッセージとワークフローのコースを終える前でも Serverless API プロジェクトを始められます。すべての分岐を終える必要はなく、配信、コンテナ、データ、AI は後から選べます。

終了前に共通の出発点と興味のある分岐を探してください。これは方向案内で、名称のテストではなく、追加のリソース作成も不要です。後続の各 Lab は新しい環境で始まります。持ち越すのは知識で、このサーバーではありません。

まとめ

サーバー、CLI、リソース表示と実際のページを対応付け、インスタンスを終了しました。

公式ドキュメント: EC2 instances, AWS CLI command structure, instance termination.