0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ansible】AnsibleでEC2にNginxを自動構築してみようの巻(AWS無料枠)

0
Posted at

【Ansible】AnsibleでEC2にNginxを自動構築してみようの巻(AWS無料枠)

1. はじめに(背景・目的)

■ 筆者について

20代後半・インフラエンジニア3年目・東京都内IT企業勤務

Ansibleに触れたことはありませんでしたが、現在参画しているプロジェクトで採用されているため、キャッチアップとして実際にサーバ構築を行ってみました。


⚠️ 注意事項(セキュリティについて)

本記事は学習・検証目的のハンズオンとして構成しています。
そのため、以下のようなセキュリティ観点は考慮していませんのでご注意ください

  • セキュリティグループの最小権限設計
  • SSHアクセス制御(IP制限・踏み台構成など)
  • 鍵管理や認証強化
  • OSやミドルウェアのセキュリティ設定

本記事では、

  • AWS無料利用枠を使用
  • EC2を2台構成で用意

という前提で、

👉 Ansibleを使ってEC2にNginxを自動インストールするところまで

をハンズオン形式でやってみました。


2. 構成

今回はシンプルな構成です。

[ローカルPC](Mac / Windows)
     ↓ SSH
[Ansibleサーバ](制御ノード)
     ↓ SSH
[ターゲットサーバ](管理対象ノード)
  • EC2:2台(t3.micro / Amazon Linux)

    • Ansibleサーバ(操作用)
    • ターゲットサーバ(Nginxをインストールする対象)

3. EC2作成

Ansibleサーバ用とターゲットサーバ用にEC2を2台作成します。
(作成手順は省略)

■ セキュリティグループ設定

両方のEC2に以下を許可します。

  • TCP 22(SSH)
  • TCP 80(HTTP)

4. Ansibleインストール(Ansibleサーバで実行)

実行場所:Ansibleサーバ

SSHでAnsibleサーバに接続後、以下を実行します。

■ パッケージ更新

sudo dnf update -y

■ Ansibleインストール

sudo dnf install ansible -y

■ バージョン確認

ansible --version

実行結果例

ansible [core 2.15.3]

5. SSH設定

AnsibleサーバからターゲットサーバへSSH接続できるようにします。

■ 秘密鍵の配置(ローカルPCで実行)

scp -i your-key.pem your-key.pem ec2-user@<AnsibleサーバIP>:~

■ 権限変更(Ansibleサーバで実行)

chmod 400 your-key.pem

■ 接続確認(Ansibleサーバで実行)

ssh -i your-key.pem ec2-user@<ターゲットサーバIP>

6. インベントリ設定(Ansibleサーバで実行)

■ ファイル作成

vi inventory.ini

■ 内容

[target]
target1 ansible_host=<ターゲットサーバIP> ansible_user=ec2-user ansible_ssh_private_key_file=~/your-key.pem

■ 接続確認

ansible -i inventory.ini target -m ping

成功例

target1 | SUCCESS => {
    "ping": "pong"
}

7. Playbook作成(Ansibleサーバで実行)

■ ファイル作成

vi nginx.yml

■ 内容

- name: Install and start Nginx
  hosts: target
  become: yes

  tasks:
    - name: Install nginx
      dnf:
        name: nginx
        state: present

    - name: Start nginx
      service:
        name: nginx
        state: started
        enabled: yes

■ ポイント

  • become: yes → sudo権限で実行
  • dnf → パッケージ管理
  • service → サービスの起動・自動起動設定

8. Playbook実行(Ansibleサーバで実行)

ansible-playbook -i inventory.ini nginx.yml

■ 成功ログ例

changed=2
failed=0

9. 動作確認

ブラウザで以下にアクセスします。

http://<ターゲットサーバIP>

👉 NginxのWelcome画面が表示されれば成功です。

スクリーンショット


10. ハマりポイント・注意点

  • 秘密鍵の権限が緩いとSSH接続できない
    chmod 400 your-key.pem を忘れずに

  • セキュリティグループでSSH許可していないと接続不可

  • インベントリのIPミスが多いので注意


11. まとめ

今回はAnsibleを使って、

  • EC2環境の構築
  • SSH接続設定
  • Playbook作成
  • Nginxの自動インストール

までを一通り実施しました。

今後は、

AWSを導入してみようと思います。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?