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
아래도 겸사겸사 참고.
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 그룹이 있는지 확인.
④ /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 웹 서버에 잘 접속 된 것을 볼 수 있다.
'코딩수업 > AWS 클라우드환경 네이티브' 카테고리의 다른 글
6/13 도메인 등록 + 아마존에 연결하는 법 (0) | 2022.06.13 |
---|---|
6/10 Auto Scaling 설정 (0) | 2022.06.10 |
6/8 AWS Icon PPT, AWS 전체적인 모식도에 따라 네트워크 개념 정리 (VPN, VPC, 서브넷, 게이트웨이 등) (0) | 2022.06.08 |
6/7 AWS 개념, AWS EC2 실습 (0) | 2022.06.07 |
6/3 DNS 의 개념과 정의 (0) | 2022.06.03 |
댓글