Open1
AWS;スプリント1-7

【AWS初心者向け】EC2インスタンス構築とメタデータ取得のデモ手順(Amazon Linux 2023)
AWS EC2インスタンスを構築し、ユーザーデータを用いて HTTPD インストールやインスタンスメタデータを取得する一連の流れを紹介します。
👉 日本語で自然に学べるAIサイト:gptjp.net
✅ 1. EC2インスタンスの作成
以下の設定で EC2 を立ち上げます。
-
タグ
-
Name
:test-ec2-1
-
Environment
:prod
-
- OS: Amazon Linux 2023
-
インスタンスタイプ:
t2.micro
- キーペア: 既存のキーペアを使用
- VPC: デフォルト
- パブリックIPアドレス: 割り当てあり
-
セキュリティグループ:
test-sg-1
(SSH のみ許可) - ストレージ: EBS(デフォルト)
- 高度な設定: メタデータのタグの許可 → 有効化
✅ 2. ユーザーデータスクリプト
#!/bin/bash
echo "===yum -y install httpd==="
yum -y install httpd
echo "===systemctl start httpd.service==="
systemctl start httpd.service
echo "===systemctl enable httpd.service==="
systemctl enable httpd.service
echo "===get token==="
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
echo $TOKEN
echo "===get instance-id >> /tmp/test==="
echo "instance-id" >> /tmp/test
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/instance-id >> /tmp/test
echo "===get Tag==="
echo "Name tag" >> /tmp/test
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/tags/instance/Name >> /tmp/test
echo "Environment tag" >> /tmp/test
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/tags/instance/Environment >> /tmp/test
☝️ 上記スクリプトで、HTTPD のインストールと起動、インスタンス ID・タグ情報の取得を /tmp/test に出力します。
✅ 3. TeraTermからの確認
SSHでログイン後、以下のコマンドでファイル内容を確認します。
cat /tmp/test
出力例:
instance-id
i-013b71c99738c58be
Name tag
test-ec2-1
Environment tag
prod
✅ 4. Cloud-initログの確認
/var/log/cloud-init-output.log にてユーザーデータの実行結果を確認できます。
たとえば yum エラーが発生しているケース:
Error: Unable to find a match: httpd
Failed to start httpd.service: Unit httpd.service not found.
これは、Amazon Linux 2023 のリポジトリにタイムアウトまたは httpd が存在しない可能性があるため、OSに応じた対処が必要です。
💡補足
amazon-linux-extras は Amazon Linux 2 専用で、2023には非対応
必要に応じて dnf install やリポジトリ設定を検討してください