1 Tier Web site

ghkdrbals·2023년 11월 15일

요구사항

  1. 퍼블릭 서브넷 2개 프라이빗 서브넷 2개 생성

  2. 프라이빗 서브넷에 웹서버 배포 (httpd)

  3. 외부에서 alb 주소로 요청 시 설정한 html파일로 응답하도록 구성

이번 문제는 모든 문제을 이어서 진행합니다.

1번 요구사항에 따라 퍼블릭 서브넷 프라이빗 서브넷 2개을 생성합니다. (인스턴스는 Amazon Linux로 생선한다)

서브넷을 생성한 이후 인스턴스을 퍼플릭 인스턴스 하나 프라이빗 인스턴스 하나 식 만들어 준다.

퍼블릭

프라이빗
프라이빗을 생성한때 에는 userdata에 아래의 명령어을 작성해 줍니다.

#!/bin/bash
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd
echo 'password' | passwd --stdin ec2-user

인스턴스을 모두 생성한 이후에 아래 명령어을 사용하여 cmd을 통해 퍼블릭 인스턴스에 접속해 줍니다.

ssh -i <pem key 위치> ec2-user@<ip 주소>


접속이후 퍼블릭에서 프라이빗으로 접속해 줍니다.

ssh ec2-user@<ip 주소> (password: 1234)


접속이후 아래 명령어들을 이용하여 2번 요구상항의 해결해준다

아래 명령어을 통해 최신 버그 수정 및 보안 업데이트을 해줍니다.

sudo yum update -y

아래 명령어을 통해 인스턴스을 재부팅을 하여 업테이트 내용을 적용 시켜 줍니다.

sudo reboot

아래 명령어을 통해 다시 한번더 프라이빗 으로 접속해 줍니다.

ssh ec2-user@<ip 주소> (password: 1234)


접속한 이후 아래 명령어로 아파치(httpd)을 설치해 줍니다.

sudo yum install -y httpd

설치 이후 아래 명령어을 통해 아피치 웹 서비스 시작 해줍니다.

sudo systemctl start httpd

그리고 아래 명령어을 통해 웹 서버가 시스템 부팅 때맏 시작되도록 구성 합니다

sudo systemctl enable httpd

이후 웹 서버 상태 및 가동시간 확인 합니다. "active(running)"

아래 명령어 순서대로 사용하여 루트 계정으로 접속 하고 /var/www/html 폴더로 이동하고 추가로, 폴더 내 파일이 있는지 확인합니다.

sudo -i
cd /var/www/html
ls


아래 명령어로 사용하여 vi 편집기로 index.html 파일에 접속하여 아무 문장이 작성해 줍니다.

sudo vi index.html

다시 aws로 넘어가 프라이빗 인스턴스의 보안그룹의 인바운드 규칙에 http을 추가하고 ip을 0.0.0.0/0을로 설정하여 추가해 줍니다.

추가 이후 로드밸런싱에서 로드밸런서와 대상그룹을 생성 합니다.
(로드밸런서을 생성하다 보면 대상그룹을 생성 할수 있어 따로 대상그룹을 생성할 필요는 없다.)

대상 그룹에서 대상에서 프라이빗 인스턴을 추가해 줍니다.
업로드중..
그리고 로드밸런서에 설정된어 있는 보안 그룹에 인바운드 규칙에도 http을 추가하고 ip을 0.0.0.0/0으로 설정하여 축가해 줍니다.
모든 설정이 끝난 이후에 웹 사이트에 로드 밸러서에 DNS을 주소칸에 연결하면 아까 접속 하고 /var/www/htmL에 작성한 문장이 사이트에 작성되어 있는 걸 확인활 수 있습니다.
업로드중..

문제 해결

profile
집가고 싶다

0개의 댓글