VPC를 생성 후에 인스턴스 생성
Apache 웹 서버 설치:
접속 후 Apache 웹 서버를 설치합니다.
웹 서버 시작 및 부팅 시 자동 시작 설정:
EC2 인스턴스에서 웹 서버의 루트 디렉토리로 파일 이동:

Amazon Linux 2023 인스턴스 시작:
시스템 업데이트:
인스턴스에 SSH로 접속한 후, 시스템 패키지를 업데이트합니다.
sudo dnf update -y
Ansible 설치:
Amazon Linux 2023은 dnf 패키지 관리자를 사용합니다. EPEL(EPEL은 Extra Packages for Enterprise Linux의 약자) 리포지터리를 사용하여 Ansible을 설치할 수 있습니다.
sudo dnf install epel-release -y
sudo dnf install ansible -y
Ansible 버전 확인:
설치가 완료되면 Ansible 버전을 확인하여 설치가 성공적으로 이루어졌는지 확인합니다.
ansible --version
AWS CLI는 AWS 서비스와 상호작용하는 명령줄 도구입니다. AWS 자격 증명을 설정하려면 AWS CLI를 먼저 설치해야 합니다.
AWS CLI 설치:
aws 버전 확인
AWS 자격 증명 설정:
AWS CLI가 설치된 후, 다음 명령을 사용하여 AWS 자격 증명을 설정합니다.
Ansible은 Python 기반 도구이므로 Python 및 패키지 관리 도구인 pip가 필요합니다.
Ansible을 사용하여 AWS를 관리하려면 boto3와 botocore, 그리고 AWS CLI와 같은 추가 패키지가 필요합니다.
이후에 playbook을 통해 리소스 생성
---
- name: Create an EC2 instance
hosts: localhost
gather_facts: False
collections:
- amazon.aws
tasks:
- name: Create EC2 instance
amazon.aws.ec2_instance:
key_name: home
instance_type: t2.micro
image_id: ami-02428dc32a3b6596f # 올바른 AMI ID로 변경
wait: yes
region: ap-northeast-2
count: 1
register: ec2
- debug:
var: ec2
명령어를 통해 실행
ansible-playbook create_ec2.yml

Ansible 버전 경고 해결: ansible-galaxy collection install amazon.aws --upgrade
ec2가 생성되는 것을 테스트 해보았으며, lambda함수를 zip파일로 압축하여 s3로 이동시키는 것을 수행?
보안을 위해 엑세스 키 갱신하며 하기
Python 가상 환경을 사용하여 Ansible을 설치하고 관리하는 것이 좋습니다.
# 가상 환경 생성
python3 -m venv ansible-env
# 가상 환경 활성화
source ansible-env/bin/activate
가상 환경이 활성화된 상태에서 Ansible을 설치합니다.
Ansible의 AWS Collection을 설치합니다
가상 환경이 활성화된 상태에서 botocore와 boto3 라이브러리를 설치합니다.
Ansible이 올바른 Python 인터프리터를 사용하도록 플레이북에 ansible_python_interpreter를 추가합니다. 이렇게 하면 Ansible이 가상 환경의 Python을 사용하게 됩니다.
플레이북을 수정하여 다음과 같이 ansible_python_interpreter를 추가합니다:
---
- name: Create S3 bucket and upload file
hosts: localhost
gather_facts: False
collections:
- amazon.aws
vars:
s3_bucket_name: "my-unique-bucket-phj-12345" # 원하는 버킷 이름으로 변경
source_file_path: "/home/guru/ImportJson.zip"
s3_object_name: "ImportJson.zip"
tasks:
- name: Create S3 bucket
amazon.aws.s3_bucket:
name: "{{ s3_bucket_name }}"
state: present
region: ap-northeast-2 # 원하는 AWS 리전으로 변경
- name: Upload file to S3 bucket
amazon.aws.s3_object:
bucket: "{{ s3_bucket_name }}"
object: "{{ s3_object_name }}"
src: "{{ source_file_path }}"
mode: put
가상 환경이 활성화된 상태에서 Ansible 플레이북을 실행합니다.

기록용 스크린 샷
aws 계정 인증

s3 버킷에 lambda 함수를 업로드하는 play book 작성

ansible 실행

업로드 확인
