1. 실습과제
1. 웹서버 만들기
웹서버를 만들어보는 것도 중요하지만 삭제해보는 경험도 중요하다고 한다.
나중에 혼자 웹서버를 다시 만들어 볼 수도 있으니 이전에 웹서버 만드는 법을 작성해놓은 페이지를 참고하려고 했다.
주의할 점은 AWS에서 지역 설정을 잘 해야한다는 것...! 오하이오로 했다가 만들던 중간에 처음부터 다시 했다.. :)
https://bo5mi.tistory.com/51?category=569937
2. HTML(웹페이지를 구성하는 코드)소스를 웹서버에 배포
웹서버를 다시 만들었고, apache에 HTML 소스를 배포해보자!
이 실습과제를 완료하면 정적 웹페이지는 잘 다룰 수 있다고 볼 수 있다.
웹서버를 성공적으로 만들었을 때, 위와 같은 Apache 페이지가 떴었다.
위 페이지는 EC2 퍼블릭 주소 80 포트로 들어가면 볼 수 있다.
작업할 내용은 이 페이지 대신 내가 만든 index.html이 나오도록 하는 것이다.
1) 파일을 html 폴더에 위치시켜야 한다.
EC2에 접속한 터미널에 다음 명령어를 친다.
cd /var/www
그다음 ll(소문자 L2개) 명령어로 html 폴더를 확인한다.
cd .. : 상위 폴더로 이동
cd 폴더명: 폴더 위치로 이동
ll: 현재 폴더에 있는 파일 조회
다시 cd 명령어로 html 폴더 안에 들어가서 ll로 조회해보면 아무 파일이 없는 것을 확인할 수 있다.
2) 파일을 옮겨야 한다. (Window 사용자: Filezilar 프로그램/AWS에서 권고는 방법, 맥 또는 리눅스: SFTP 명령어/보통 실무에서는 맥 또는 리눅스가 많이 사용 된다.)
서버에 파일을 넣는 것이 배포이다...!!
실제 운영 중인 사이트에 배포를 잘못 했다가는 사이트가 먹통이 되거나 사이트가 다운될 수 있다.
가장 쉬운 파일배포를 해보자..! 이 방식은 사내에서 작은 사이트나, 잠깐 다운되어도 괜찮은 사이트에 자주 사용된다.
무료로 사용할 수 있는 파일 전송 프로그램, 파일질라를 설치한다! https://filezilla-project.org/
Mac이든 Window든 왼쪽에 있는 클라이언트를 설치하면 된다. (서버도 있는데 파일전송이랑 무관함)
FTP가 EC2에 접근하기 위해서는
EC2에 접근할 때 키 파일을 사용하는 것처럼 pem 파일(MAC) 또는 ppk 파일(Window)을 등록해줘야한다.
편집>설정>SFTP>키파일추가 로 키파일을 추가해주고 확인버튼까지 눌러야한다.
EC2주소는 AWS웹 콘솔에서 확인가능하다.
퍼블릭 IPv4 DNS를 복사하면 되는데 DNS 정보가 없다면 퍼블릭 IPv4를 사용해도 된다. (필자는 DNS 정보가 없어서 퍼블릭 IPv4를 걍 썼다~!~!)
파일질라에 접속한 다음,
호스트에는 복사한 퍼블릭 IPv4 주소를 붙여넣고,
사용자명에는 ec2-user를 입력하고,
포트는 22로 접속해본다.
만약!!
~:21 연결에 오류가 뜬다면 EC2에 21번 포트를 열어주면 된다.
연결이 되면 권한이 있는 폴더에 Assests폴더, images 폴더, index.html 파일을 드래그앤드롭으로 서버측에 넣어준다.
처음부터 /var/www/html 폴더에 넣어도 되긴하는데,
바로 폴더에 배포하는 방식은 너무 위험하다. 전송하다가 파일이 깨져버리면 날라가버리는거니깐!?!!
3) /home 폴더에 파일을 Apache가 읽고 있는 폴더로 옮기기
파일질라로 /home 폴더에 드래그앤드롭으로 파일을 옮겼다..!
/home 폴더는 apache가 읽고 있는 폴더가 아니기 때문에, 옮긴 것만으로 아무 변화가 없다.
임시로 옮겨졌던 파일과 폴더를 Apache가 읽고 있는 폴더로 옮긴다..!
sudo service httpd start 명령어로 아파치를 시작한다.!
sudo chkconfig httpd on 명령어로 설정한다.!
현재까지 정리하자면,
현재 웹서버에 배포하고자 하는 html을 올릴려면
로컬 사이트에서 Assests폴더, images 폴더, index.html 파일을 선택해서
리모트 사이트에서 권한이 있는 파일에 옮겨주었다. (나 같은 경우 ec2-user 폴더에 넣었다.)
먼저 EC2에 접속해서 옮겨진 파일을 확인한다.
pwd로 현재 위치를 확인하고, ll(소문자 L 2개)로 목록을 조회한다.
/home/ec2-user 에서 목록을 조회하니 파일들이 잘 들어간 것을 확인할 수 있다.
/var/www/html 폴더에 권한이 없기 때문에 sudo를 붙여 관리자권한으로 실행한다.
mv는 move의 약자로 옮기는 명령어이다.
mv (옮길파일) (위치)로 파일을 옮겨주면 된다.
3. AWS 클라우드 자동화 서버구축도구로 배포
AWS beanstalk
beanstalk는 직접 네트워크 구성, EC2에 apache 설치 등을 하지 않고 웹서버를 구축할 수 있는 새로운 방법이다.
[웹서버 배포 방법에 관해서]
HTML 소스를 웹서버에 배포하는 방법과 AWS 클라우드 자동화 서버구축도구로 배포하는 방법 두 가지 중 보통 많이 사용되는게 무엇인가?
전자의 방식이 일반적이다. 후자의 방식은 커스터마이징할 수 있는 선택지가 제한적이고, 보통 개발자가 엔지니어 도움 없이 간단히 테스트할 때 사용하는 편이다.
[트래픽과 서버에 관해서]
트래픽은 쉽게 예측할 수 있는 부분이 아니다. 사용자가 얼마나 들어올지 알기 어렵다.
보통 목표 트래픽이 존재하는 상태에서 프로젝트가 시작하지만 애매한 경우 목표 트래픽 선정도 쉽지 않다.
이럴 때에는 최소 스팩으로 시작하고, 이 최소 스팩이 얼마나 많은 트래픽을 감당할 수 있을지 알아보는 것이 좋다.
전문적인 장비 없이 개인 컴퓨터로는 최대 부하를 주기 어렵지만, 컴퓨터에서 최대 부하를 주었을 때 서버에서 얼마나 많은 리소스를 사용했는지를 보면서 추정해볼 수 있다.
예를 들어, 100 유저가 1초에 한 번 접속한 것으로 테스트 했을 때, 서버의 CPU와 메모리 모두 50% 사용했다면 200유저 동접으로 예상해볼 수 있다.
[백엔드 기술 선정에 관해서]
클라우드는 기술이 아닌 환경일 뿐이므로 클라우드 자체로 할 수 있는건 아무 것도 없다.
즉, 클라우드 서비스를 도구로 생각하는 것이 좋다. IDC나 AWS나 똑같은 기능을 사용하되 구현하는 환경이 다른 것일 뿐이므로, 클라우드를 기술로 보는 것은 적합하지 않다.
그러면 어떤 기술을 쓰는게 맞는가? 3-tier를 떠올리며 필요한 기술을 적용하면 된다.
웹 페이지로 구현이 될 것이니 apache 또는 nginx 프로그램이 필요하다.
데이터를 저장할 것이라면 DB가 필요하다.
또 기타 연산이 필요하다면 웹 프로그래밍이 필요하며 여기에 쓰일 수 있는 언어는 JSP, python 등이 있다.
이 기술을 통해 구현하려면 공부하는 시간이 각 기술당 2주~1달은 필요하므로 시간이 오래 걸린다.
따라서 일단 목적을 달성하기 위해 간단하게 먼저 구현한 다음 나중에 기술을 하나씩 배워가면서 직접 만들어보는 것을 추천한다.
'알아두면쓸데있는신기한잡학사전 > 고군분투흔적들' 카테고리의 다른 글
[Project] WEB, WAS 서버 (0) | 2022.08.04 |
---|---|
[직무부트캠프] 3주차 세션 정리(About 서버) (0) | 2022.08.04 |
[직무부트캠프] 1주차 과제(웹페이지 기획하기) (0) | 2022.07.26 |
[직무부트캠프] 1주차 과제(AWS 계정 만들기, 웹 서버 만들기, EC2 추가기능 사용, 리소스 삭제, 웹 페이지 기획) (0) | 2022.07.22 |
[직무부트캠프] 1주차 정리(현직자 직무 강의 및 Q&A) (0) | 2022.07.12 |