投稿

ラベル(Linux)が付いた投稿を表示しています

EC2起動時にスクリプトを自動実行する方法 — User Dataで初回起動時にNginxをインストールする

EC2インスタンスを起動するたびに手動でSSH接続してNginxをインストールしていた経験があるなら、User Dataの仕組みを理解することで、その作業を完全に自動化できる。AMIからインスタンスを量産する場面や、Auto Scalingグループで新しいインスタンスが追加される場面では、この自動化が運用品質を左右する。 TL;DR — EC2 User Dataの要点 項目 内容 実行タイミング インスタンスの 初回起動時のみ (デフォルト動作) 実行ユーザー root (sudoなしで実行される) スクリプト形式 シェルスクリプト( #!/bin/bash )またはcloud-init directive 文字数上限 16 KB(Base64エンコード後) ログ出力先 /var/log/cloud-init-output.log 設定場所 コンソール起動ウィザード / AWS CLI / Launch Template User Dataの仕組みを理解する EC2インスタンスが初回起動すると、 cloud-init というデーモンがインスタンスメタデータサービス(IMDSv2)からUser Dataを取得し、実行する。このフローを理解しておかないと、「スクリプトを貼ったのに動かない」という状況で原因の見当がつかない。 sequenceDiagram participant HV as ハイパーバイザー participant OS as Linux OS participant CI as cloud-init participant IMDS as IMDS (169.254.169.254) participant SH as シェルスクリプト HV->>OS: インスタンス起動 OS->>CI: cloud-initデーモン起動 CI->>IMDS: GET /latest/user-data IMDS-->>CI: スクリプト内容を返...