반응형

* 주의 Amazon Linux AMI와 Amazon Linux 2는 다르다. 아래 과정은 Amazon Linux 2 의 과정이다.

 

Amazon Linux는 AMI(Amazon Machine Image)중 하나로, 리눅스 Redhat Enterprise Linux 배포판을 배이스로 한다.

자세한 사항은 아래 블로그 참고.

https://pikabu.tistory.com/44

 

AMI는 무엇인가? Amazon Linux(AMI)와 CentOS의 차이

Amazon Linux란? Amazon Linux는 Amazon사가 개발한 Red Hat Enterprise Linux 베이스의 배포판으로, EC2 인스턴트를 만들때 선택 가능한 AMI (Amazon Machine Image) 중의 하나입니다. 주요 메리트와 디메리트는..

pikabu.tistory.com

 

 

 

Amazon Linux 인스턴스를 생성하고 접속하는 방법이 선행되어야 한다. (아래 참고)

https://ansan-survivor.tistory.com/1070

 

[AWS] 아마존 클라우드 Amazon Linux OS 인스턴스 만들기, SSH로 접속하기

아마존 AWS를 사용하기 위해서는 회원가입이 필요한다. (아래 참고) https://ansan-survivor.tistory.com/1058 [AWS] 아마존 AWS 클라우드에 회원가입하고 사용하기 (무료, AWS free tier) 아마존 AWS 클라우드 리..

ansan-survivor.tistory.com

 

이제 위에 생성한 Amazon Linux에 LAMP를 설치한다.

1. yum 업데이트

sudo yum update -y

최신상태면 아무업데이트도 안할 것이다.

2. Amazon Linux용 마리아DB(mysql) 및 PHP레포 받기.

sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

(sudo: amazon-linux-extras: command not found 오류가 발생시, OS가 Amazon Linux 2 AMI로 실행되지 않은 것)

 

3. 마리아DB 설치

sudo yum install -y httpd mariadb-server

 

4. 웹서버 실행, 부팅시 자동실행 설정, 잘 실행되는지 확인.

sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl is-enabled httpd

enabled가 나와야 제대로 작동하는 것.

 

5. 보안 인바운드 규칙의 HTTP, HTTPS 포트 개방 확인

이제 브라우저에 퍼블릭 DNS를 검색해보면 아래와 같은 페이지가 나온다.

 

6. 파일 권한 설정

    6-1. 그룹 생성

    * 기본적으로 /var/www/html 의 소유권한이 root로 되어있다.

      이 디렉터리 파일 조작을 위해서는 현재 유저인 ec2-user 으로 바꿔주어야 한다.

      ec2-user를 apache 라는 그룹을 생성해서 추가한 후, 소유권을 주고 쓰기(write)권한까지 부여한다.

sudo usermod -a -G apache ec2-user
exit

그룹에 추가한 후 exit으로 putty접속 종료
그리고 재접속

       그룹 포함 여부 확인

groups

위와 같이 떠야 한다.

    6-2. 소유 권한 변경

sudo chown -R ec2-user:apache /var/www
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

이제 ec2-user apache 그룹 내의 멤버는 Apache document root에서 파일 추가, 삭제, 편집을 할 수 있고, 이를 통해 사용자는 정적 웹 사이트 또는 PHP 애플리케이션과 같은 콘텐츠를 추가할 수 있음.

 

 

7. php파일 생성

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

    브라우저 창을 통해 php가 잘 나오는지 확인. 아까 작성한 DNS뒤에다가 "/phpinfo.php"를 추가하면 된다.

    작동 여부를 확인했으면, 보안을 위해다시 phpinfo.php 파일을 삭제해준다.

rm /var/www/html/phpinfo.php

 

이제 웹서비스는 정상적으로 작동한다.

 

 

데이터베이스 서버 보안 설정

 

1. Mariadb 실행, mysql 보안 설치

sudo systemctl start mariadb
sudo mysql_secure_installation

위와 같이 뜨면 그냥 엔터를 누르면 된다.

    y를 누르고 암호를 설정한다. (설정 안하려면 엔터로 넘어간다)

    암호는 2번 입력해야 하며, 참고로 보여지지 않는다.

    총 4번의 y를 눌러서

  1. Y를 눌러서 익명 사용자 계정을 제거합니다.
  2. Y를 입력하여 원격 루트 로그인을 비활성화합니다.
  3. Y를 눌러서 테스트 데이터베이스를 제거합니다.
  4. Y를 눌러서 권한 테이블을 다시 로드하고 변경사항을 저장합니다.

 

2. 부팅시 MariaDB가 자동 실행되도록 설정

sudo systemctl enable mariadb

 

3. 웹기반 DB관리도구 phpMyAdmin 설치에 필요한 종속성 항목들 설치

sudo yum install php-mbstring php-xml -y

 

4. 아파치, php 재시작

sudo systemctl restart httpd
sudo systemctl restart php-fpm

 

5. html 디렉터리로 이동 후, wget명령을 이용한 phpMyAdmin 설치 파일 다운로드

cd /var/www/html
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

 

6. phpMyAdmin 폴더를 생성, 해당 폴더로 압축해제

mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

 

7. 필요없는 tar 제거

rm phpMyAdmin-latest-all-languages.tar.gz

 

8. 마리아 db 시작

sudo systemctl start mariadb

 

9. 웹브라우저로 phpMyAdmin 로그인 페이지 접속하기 

    내 DNS도메인 뒤에 "/phpMyAdmin" 입력하면 된다.

위와 같이 떠야 한다. 위에서 만든 root 암호로 로그인하면 접속이 되야 한다.

 

 

이제 기본적인 웹서비스가 구축되었다.

DNS 네임서버 등록 방법은 아래 참고.

https://ansan-survivor.tistory.com/1073

 

[AWS Amazon Linux] 아마존 클라우드 웹서비스 도메인 네임 (DNS) 등록하기 (Route 53), Godaddy 네임서버 변

AWS를 이용하기 위해서는 회원가입이 필요하다. https://ansan-survivor.tistory.com/1058 [AWS] 아마존 AWS 클라우드에 회원가입하고 사용하기 (무료, AWS free tier) 아마존 AWS 클라우드 리전에 한국에도 있다..

ansan-survivor.tistory.com

 

 

 

(참고 링크)

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html

 

자습서: Amazon Linux 2에 LAMP 웹 서버 설치 - Amazon Elastic Compute Cloud

Amazon Linux을 사용하지 않는 경우, 이러한 연결을 허용하도록 인스턴스의 방화벽을 구성할 필요가 있습니다. 방화벽 구성 방법에 대한 자세한 내용은 사용자의 특정 배포에 대한 문서를 참조하십

docs.aws.amazon.com

 

(아래 링크는 AWS 우분투로 구축)

https://ansan-survivor.tistory.com/1063

 

[AWS] 아마존 클라우드에 웹서비스 수동으로 구축하기 (과금방지를 위해 서비스 없이 수동으로) P

AWS를 사용하기 위해서는 AWS를 가입해야 한다. 방법은 아래 참고. https://ansan-survivor.tistory.com/1058 [AWS] 아마존 AWS 클라우드에 회원가입하고 사용하기 (무료, AWS free tier) 아마존 AWS 클라우드 리..

ansan-survivor.tistory.com

 

반응형

+ Recent posts