LAMP란 Linux, Apache, MySQL/MariaDB , PHP의 이름을 합친 약자로 웹사이트나 서버 운영에 자주 쓰이는 소프트웨어들의 조합을 말합니다.
이번 실습에서는 Linux OS 인스턴스에 Apache, MySQL, PHP를 설치하여 AMI를 만들어보겠습니다.
01. EC2 생성
이름 및 태그
인스턴스 이름을 지정하고 추가적으로 필요한 태그가 있다면 설정합니다.

애플리케이션 및 OS 이미지
인스턴스는 Amazon Linux를 사용할 것입니다. Amazon linux는 라이센스 비용이 없고 자동으로 업데이트 된다는 장점을 가지고 있습니다.
애플리케이션 이미지는 Amazon Linux를 선택하고 나머지는 기본값으로 선택합니다.

인스턴스 유형
인스턴스 유형은 t2.medium으로 선택합니다.

키 페어
기존에 해당 리전에 키가 존재 한다면 기존 키 페어를 사용합니다.
만약 키 페어가 없다면 [키 페어 생성]을 누른 뒤 키 페어를 생성합니다.

네트워크 설정
테스트를 위한 실습이므로 default 네트워크를 이용합니다.
- VPC: default VPC
- 서브넷: [가용 영역: ap-northeast-2a], [가용 영역: ap-northeast-2c] 중에 선택합니다.
- 퍼블릭 IP 자동 할당 : 활성화(enable)
- 방화벽(보안그룹): 기존에 http(80), ssh(22)를 허용한 보안그룹이 있다면 기존 것을 사용하고, 그렇지 않은 경우 보안 그룹 생성에서 http, ssh를 허용하는 규칙을 추가합니다.

나머지 설정은 기본 값으로 두고 [인스턴스 시작]을 합니다.
02. 이미지 생성
LAMP AMI이미지를 생성하기 전에 AMI를 이해하고 실습하기 위해 간단한 text파일을 만들어 본 후 AMI 이미지를 만들어보겠습니다.
02-01. SSH로 EC2 접속
- SSH 접속을 위해 Tera Term을 설치합니다.
- pem 키를 이용하여 인스턴스에 접속합니다.
02-02. root 권한 주기
sudo su -
02-03. name.txt 파일 생성
echo myec2 > name.txt
02-04. AMI 이미지 생성
해당 EC2로 이미지를 생성합니다.

이미지 생성
이미지 이름을 지정하고 재부팅 안 함은 꼭 ‘활성화’를 체크합니다.
만약 체크하지 않는다면 OS가 중지되는 현상이 생깁니다.

생성 확인
EC2 > 이미지 > AMI에 들어가서 이미지가 생성 된 것을 확인 할 수 있습니다.

02-05. 인스턴스 삭제
이미지 생성을 위해 만들었던 EC2를 삭제 해줍니다. 이때 중지(Stop)이 아니라 종료(Terminate)를 선택해야 인스턴스가 삭제됩니다.

03. AMI로 인스턴스 시작
앞서 만든 AMI 이미지로 인스턴스를 새로 시작해보겠습니다.
AMI이미지를 선택한 후 [AMI로 인스턴스 시작]을 누릅니다.

이름 및 태그
인스턴스의 이름을 지정하고 추가적으로 지정할 태그가 있다면 설정합니다.
애플리케이션 및 OS 이미지는 자동으로 내가 만들었던 AMI 이미지가 선택되어 있는 것을 확인할 수 있습니다.

나머지 설정은 처음 EC2를 생성했던 것과 동일하게 설정합니다.
EC2에 SSH 접속
AMI 이미지로 만든 EC2에 접속하여 파일 목록을 확인해보면 이전에 만들었던 name.txt가 있고 그 내용도 내가 입력한 내용과 동일 한 것을 확인 할 수 있습니다.

04. 아파치(httpd) 설치
아파치 설치
아래의 명령으로 아파치를 설치합니다.
yum install httpd -y
서비스 및 포트 확인
httpd 서비스가 있는지, 80 port가 열려있는지 확인합니다.
ps -aux |grep http

netstat -ntpl |grep 80

EC2 public ip로 브라우저에 접속하여 아파치 서비스가 실행 되는 것을 확인할 수 있습니다.

05. MySQL 설치
MySQL 설치
아래의 명령으로 mysql을 설치합니다.
yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install mysql-community-server
MySQL 실행
아래 명령으로 MySQL을 실행합니다.
systemctl start mysqld
MySQL 설치 확인
아래 명령으로 MySQL 설치 버전을 확인합니다.
- mysql –version
06. PHP 설치
PHP 설치
아래의 명령으로 php를 설치합니다.
yum install -y php
PHP 설치 확인
아래 명령으로 PHP 설치 버전을 확인합니다.
php —version
07. 기존 AMI 삭제 및 새로운 AMI 생성
기존 AMI 삭제
처음에 만든 AMI이미지에 우클릭 후 AMI 등록 취소를 누릅니다.

새로운 AMI 이미지 생성
앞서 http, mysql, php를 설치한 EC2로 이미지를 생성합니다.
이미지 생성 방법은 이전과 동일합니다.

AMI 이미지 생성 확인
AMI 콘솔 창에 들어가면 새로운 이미지가 생성 된 것을 확인 할 수 있습니다.
