본문 바로가기
코딩수업/AWS 클라우드환경 네이티브

6/9 Elastic Load Balancing - EC2 생성 및 연결, 웹 서버의 파일 추가, 삭제, 편집 등을 위한 파일 권한 설정

by 인생즐겜러 2022. 6. 9.
728x90
반응형

AWS 클라우드환경 네이티브 수업 21일차

 

진행

로드 밸런서 생성 및 EC2와 연결

 

리액트 네이티브

82~102까지 재정리

 

요약

1. 로드 밸런서 생성 및 EC2와 연결

2. Apache 웹 서버의 파일 추가, 삭제, 편집 등을 위한 파일 권한 설정

 

 

 


 

 

 

Elastic Load Balancing - EC2 생성 후 Auto Scaling 설정까지 실습

 

 

1. 우선 EC2 생성 및 설정한 웹서버로 바로 들어 갈 수 있는 주소를 만들어야 한다.

 

 

1-1. 인스턴스를 새로 생성

 

키페어는 ppk로 만들고

보안그룹은 기존에서 일단 설정.

 

생성 후 퍼블릭 IPv4 주소를 보면 비어 있다.

우리가 웹 서버로 접근 할 수 있는 임시 주소를 받기 위해 왼쪽 메뉴에서 탄력적 IP에 들어간다.

 

 

1-2. 임시 IP 생성

 

탄력적 IP  오른쪽 위에서 탄력적 IP 주소 할당 클릭. 

따로 설정 필요 없이 오른쪽 아래에서 할당.

 

나중에 탄력적 IP 주소 릴리즈를 하면 해당 주소를 삭제 가능.

 

 

 

 

 

1-3. 할당 된 IP 확인

 

인스턴스로 다시 돌아와서 새로고침을 눌러보면

 

 

퍼블릭 IPv4주소와 탄력적 IP주소가 할당이 되어 있다.

 

 

 

 

 

2. 생성한 EC2 를 PuTTY 프로그램을 이용해서 리눅스로 접속

 

 

2-1. 다운 받은 PuTTY를 실행 후 Session에서 Host Name에 따로 할당 받아 놓은 IP를 적는다.

 

 

2-2. 이 후 SSH - Auth에서 Private key file을 올려 놓고 Open

 

 

 

2-3.  바로 나오는 창에서 기본적으로 설정되어 있는 ID인 ec2-user를 입력하면 아래와 같이 뜬다. 

 

 

 

 

 

 

3. LAMP 서버 준비

 

LAMP는 웹사이트나 서버 운영에 자주 같이 쓰이는 다음의 소프트웨어들의 이름을 합한 약자다

=> Linux (리눅스 운영체제), Apache (아파치 웹 서버), MySQL / MariaDB 데이터베이스 관리 시스템(데이터베이스 서버)

 

'Amazon linux Apache 설치' 

라고 구글에 치면 아마존에서 설명 페이지 만들어 놓은 게 있음 참고.

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/install-LAMP.html

 

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

0.0.0.0/0을 사용하면 모든 IP 주소에서 SSH를 사용하여 인스턴스에 액세스할 수 있습니다. 테스트 환경에서 잠시 사용하는 것은 괜찮지만 프로덕션 환경에서는 안전하지 않습니다. 프로덕션에서는

docs.aws.amazon.com

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateWebServer.html

아래도 겸사겸사 참고.

 

 

Apache 웹 서버를 LAMP 웹 서버 또는 LAMP 스택이라고도 한다.

 

 

 

3-1. 모든 소프트웨어 패키지가 최신 상태인지 확인하기 위해, 인스턴스에서 퀵 소프트웨어 업데이트를 실행

 

sudo yum update -y

=> sudo : 슈퍼 유져의 권한을 빌리겠다. / yum : 패키기 관리자 /  update : 업데이트 할거고 / -y : 너가 뭘 묻든 yes 할거임

 

 

3-2. 인스턴스가 최신이므로 Apache 웹 서버, MySQL, PHP 소프트웨어 패키지를 설치

 

sudo yum install -y httpd24 php72 mysql57-server php72-mysqlnd

=> MySQL, PHP 소프트웨어 패키지까지 다 설치

 

하지만 우리가 필요한 건 Apache 웹 서버 패키지까지므로

sudo yum install -y httpd

=> 이렇게만 입력한다. (24는 구버전 이름)

 

 

 

3-3. 아래 명령으로 Amazon Linux 버전 확인.

 

cat /etc/system-release

 

 

 

3-4. Apache 웹 서버를 시작

/ chkconfig 명령을 사용하여 Apache 웹 서버가 매번 시스템이 부팅할 때마다 시작되도록 설정.

/ 명령을 실행하여 httpd가 실행되고 있는지 확인

 

 

명령어

sudo service httpd start

/sudo chkconfig httpd on

/chkconfig --list httpd

 

 

 

3-5. 인스턴스에 대해 인바운드 HTTP(포트 80) 연결을 허용하는 보안 규칙이 없는 경우 추가

 

인스턴스에서 보안 - 보안그룹 클릭.

 

 

 

오른쪽 아래에 인바운드 규칙 편집

 

 

규칙 추가해서 HTTP/ HTTPS 2개를 만든다 

소스는 Anywhere-IPv4로 설정하고 규칙 저장

 

 

 

3-6. 웹 서버를 테스트

 

아래와 같이 인터넷 창에 쳐보면 해당 서버로 접속이 된다.

/var/www/html 에 딱히 콘텐츠가 없으면 아래처럼 Apache 테스트 페이지가 표시가 된다.

 

 

 

내용이 있으면 아래 처럼 뜬다. 

 

 

 

 

위 같은 내용 및 컨텐츠를 수정 변환하기 위해서는 서버에 대한 권한이 있어야 한다.

 

 

 


3-7
. Apache 웹 서버에 대한 파일 권한 설정 방법

 

ec2-user가 Apache 웹 서버의 기본 루트 디렉터리에 있는 파일을 관리할 수 있도록 하려면

/var/www 디렉터리의 소유권 및 권한을 변경해야함.

 

이 아래는 ec2-user를 apache 그룹에 추가하여

apache 그룹에 /var/www 디렉터리의 소유권을 부여하고 쓰기 권한을 할당하는 방식으로 진행.

 

 

 

① ec2-user 사용자를 apache 그룹에 추가

 

sudo usermod -a -G apache ec2-user

 

 

② 권한을 새로 고치고 새 apache 그룹을 포함하려면 로그아웃

 

exit

 

 

③ 다시 PuTTY를 실행하여 로그인한 다음, apache 명령을 사용하여 groups 그룹이 있는지 확인.

 

apache 그룹이 있는게 확인 된다.

 

④ /var/www 디렉터리 및 해당 콘텐츠의 그룹 소유권을 apache 그룹으로 변경

 

sudo chown -R ec2-user:apache /var/www

 

 

⑤ /var/www 및 그 하위 디렉터리의 디렉터리 권한을 변경 -> 그룹 쓰기 권한을 추가,

    나중에 생성될 하위 디렉터리에서 그룹 ID를 설정

 

sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;

 

 

⑥ /var/www 디렉터리 및 하위 디렉터리의 파일 권한을 계속 변경해서 그룹 쓰기 권한을 추가

 

find /var/www -type f -exec sudo chmod 0664 {} \;

 

 

 

 

이제 ec2-user와 apache 그룹의 향후 멤버는 Apache document root에서 파일 추가, 삭제, 편집을 할 수 있다.

사용자는 웹 사이트 콘텐츠를 추가할 수 있게 되었음!

 

=> 3-6 명령어를 html 해당 폴더로 가서 텍스트가 있는 html 파일을 만들고

웹페이지 접속 하면 그림처럼 해당 텍스트가 뜬다!

 

 

 

 

 

4. 로드 밸런서 생성

 

 

4-1. 왼쪽 메뉴에서 로드 밸런서 들어간 후 왼쪽 위 로드 밸런서 생성 클릭

 

 

 

4-2. 왼쪽 어플리케이션 로드 밸런서 생성 클릭

 

 

 

 

로드 밸런서 이름 설정하고 

 

 

매핑에서 2a, 2c 설정 / 가용 영역을 2개 이상 설정하는 것이 좋다. 데이터 잃기 싫으면.

 

보안 그룹 맞춰서 설정하고

 

 

대상 그룹을 설정해야하기 때문에

리스너 및 라우팅에서 대상 그룹 생성 클릭

 

 

원하는 인스턴스 선택하고 

아래에 보류 중인 것으로 포함 클릭.

그 후에 오른쪽 아래 대상 그룹 생성 클릭.

 

 

다시 로드 밸런서 리스너 및 라우팅으로 돌아와서

생성한 그룹(Firstwebgroup)을 추가한다.

 

 

그 후 로드 밸런서 생성하면

 

 

 

탄력 IP 주소를 삭제하고 나서

로드 밸런서의 DNS 이름을 복사해서 

 

http:// DNS이름 / 

 

으로 접속하면 

아까 탄력 IP 주소로 들어간 것처럼 똑같이 EC2 웹 서버에 잘 접속 된 것을 볼 수 있다.

 

 

 

 

 

728x90
반응형

댓글