프로그래밍 및 기타/Cloud : AWS

[aws] 리눅스 서버 연결 및 nginx 설치

기록자_Recordian 2025. 2. 18. 16:46
728x90
반응형
전 내용
 

[aws] 인스턴스 생성하기

이전 내용 [aws] VPC, 서브넷, IGW, 라우팅 테이블 설정하기이전 내용 [aws] route 53 으로 DNS 작업하기이전 내용 [클라우드] 도메인 만들기 (feat. 가비아)가비아에서 도메인 만들기 클라우드 수업을

puppy-foot-it.tistory.com

 

[aws] 보안 그룹 설정하기

이전 내용 보안 그룹 생성 및 설정하기 EC2 화면의 [보안] - [보안 그룹] 으로 들어간 뒤, '보안 그룹 생성' (빨간 네모)를 클릭한다. 보안 그룹 생성 항목의 이름 및 설명 (본인 프로젝트 명) 을 넣

puppy-foot-it.tistory.com


리눅스 서버 연결하기 - 1
Xshell 8, Xftp 설치

 

앞서 인스턴스를 생성하고나서 다음 작업은 생성한 인스턴스를 리눅스 서버에 연결하는 것이다. 이를 위해서 설치해야 할 파일이 하나 있는데, 바로 'Xshell 8' 이라는 프로그램이다.

★ Xshell 8 이란?

Xshell 8은 네트워크 관리 및 파일 전송을 위한 유용한 소프트웨어다.
NetSarang에서 개발하였으며, 다양한 기능을 제공하여 사용자들이 네트워크를 쉽게 관리하고 데이터를 전송할 수 있도록 돕는다.
Xshell 8은 고급 터미널 에뮬레이터로, 주로 서버와의 SSH, SFTP, SSL, Telnet 등의 프로토콜을 사용하여 원격 접속을 가능하게 한다.

[주요 기능]
- 다양한 프로토콜 지원: SSH, Telnet, Rlogin, Serial 연결 등을 지원하여 다양한 시스템에 연결할 수 있다.
- 다중 세션 관리: 여러 개의 세션을 동시에 관리할 수 있어, 복수의 서버를 효율적으로 모니터링하고 관리하는 데 유용하다.
- 스크립트 및 자동화: 사용자가 스크립트를 작성하여 반복적인 작업을 자동화할 수 있는 기능을 제공헌다.
- CSV 세션 내보내기: 세션 설정을 CSV 형식으로 내보내어 쉽게 공유하거나 백업할 수 있다.
- 탭 인터페이스: 여러 세션을 탭으로 관리하여 직관적인 사용자 경험을 제공한다.

 

◆ Xshell8 다운 및 설치하기

※ Xtfp 역시 다운 받도록 한다. (사용법 관련 글은 추후 업로드)

Xftp
Xftp는 파일 전송 클라이언트로, FTP, SFTP 및 FTPS 프로토콜을 사용하여 파일을 전송할 수 있는 프로그램이다.

[주요 기능]
- 다양한 프로토콜 지원: FTP, SFTP, FTPS 등 여러 가지 파일 전송 프로토콜을 지원한다.
- 파일 드래그 앤 드롭: 사용자 친화적인 인터페이스를 통해 파일을 간편하게 드래그 앤 드롭하여 전송할 수 있다.
- 대량 전송: 여러 파일을 동시에 전송할 수 있는 기능을 제공하여 대량의 파일 전송 시 효율성을 높인다.
- 파일 동기화: 로컬과 원격 서버 간의 파일을 동기화하여 데이터를 일관되게 유지할 수 있다.
- 인터넷 브라우저와의 통합: 웹 브라우저를 통해 직접 파일을 다운로드하거나 업로드할 수 있는 기능을 제공한다.

 

구글에서 '넷사랑 다운로드' 검색하여 둘 중에 하나를 클릭하여 넷사랑 사이트에 접속한다.

XSHELL과 XFTP 각 아래의 다운로드 버튼을 클릭한다. (필자는 교육용이라 무료 버전을 다운받았다.)

 

유료 버전

https://www.netsarang.com/ko/all-downloads/

 

무료 버전(교육용)

https://www.netsarang.com/ko/free-for-home-school/

 

 

다운 받고나서 설치는 매우 간단하므로 생략한다.

설치를 하고나서 실행하면 아래와 같은 화면이 뜨는데,

사용하고자 하는 이름과 메일 주소를 입력 후 [보내기] 버튼 클릭

 

등록한 메일로 들어가보면 아래와 같은 메일이 와있고, 링크(빨간 네모)를 클릭하면

아래와 같은 화면이 뜬다.


리눅스 서버 연결하기 - 2
Xshell8 사용하기

 

설치한 Xshell8을 실행하고 세션 창에서 [새로 만들기] 클릭

 

먼저 aws 인스턴스에 들어가서 퍼블릭 IPv4주소를 복사한다.

 

그리고나서 Xshell8 로 다시 돌아와서 범주의 '연결' 에서 이름을 입력 후,

'호스트' 칸에 앞서 복사한 퍼블릭 IPv4 주소를 붙여넣기 한다.

 

그리고 '연결' 범주 하단에 있는 '사용자 인증' 범주에서 사용자 이름을 입력 후,

 

 

방법에서 [Public Key]를 클릭 후 '설정' 버튼을 클릭

 

혹시, 지난 번 포스팅에서 키 페어를 쓸 곳이 있으니 잘 보관해두라고 했던 것이 기억나는가?

그 키 페어는 바로 여기서 사용된다.

 

Public Key 설정 창에서 사용자 키 옆에 ...(빨간 네모) 버튼을 클릭하고, '가져오기' 버튼을 누른 뒤 저장해둔 키 페어 경로를 찾아 선택해준다.

 

그리고나서 '연결' 버튼을 누르면 아래와 같이 SSH 보안 경고 창이 나오는데, 여기서 그냥 [수락 및 저장] 버튼을 클릭해주면 된다. (최초에 한 번만 뜬다)

 

다음 작업을 위해 Xshell8 은 종료하면 안 된다.


리눅스 서버를 웹 서버로 만들기
nginx 사용하기

 

이렇게 하면 인터넷 창에 내 도메인을 입력하면 홈페이지가 뜨는가... 아직 아니다.

이제 해줘야 할 일은 리눅스 서버를 웹서버로 만들어줘야 하는데, 이를 위한 소프트웨어인 nginx를 사용한다.

Nginx란?

Nginx는 고성능의 웹 서버이자 리버스 프록시서버로, 특히 정적 콘텐츠의 제공 및 다양한 서버 환경 관리에 적합한 소프트웨어다. Igor Sysoev에 의해 개발되었으며, 오픈소스 소프트웨어로 많은 개발자와 기업들에 의해 널리 사용되고 있다.

[Nginx의 주요 특징]
- 비동기 이벤트 기반 아키텍처: Nginx는 비동기적인 이벤트 기반 모델을 채택하고 있어, 다수의 클라이언트 연결을 효율적으로 처리할 수 있다. 이는 높은 동시 요청 처리 능력을 의미한다.
- 리버스 프록시 기능: Nginx는 리버스 프록시로 사용되어, 클라이언트의 요청을 처리하고 여러 백엔드 서버로 전달함으로써 부하 분산 기능을 수행한다. 이렇게 하면 시스템의 성능을 최적화할 수 있다.
- 정적 콘텐츠 제공: 이미지, CSS, JavaScript 파일과 같은 정적 콘텐츠를 빠르게 제공할 수 있는 기능이 강력하여, 웹사이트의 성능을 향상시키는 데 유리하다.
- SSL/TLS 지원: Nginx는 SSL 및 TLS 암호화를 지원하여, 안전한 데이터 전송이 가능하게 한다. HTTPS를 통해 사용자 데이터를 보호하는 데에 필수적이다.
- 서버 서스와 호스팅: 하나의 Nginx 인스턴스에서 여러 도메인을 호스팅할 수 있는 기능을 제공하여, 리소스를 효율적으로 사용할 수 있다.
- 모듈 구조: Nginx는 다양한 모듈을 통해 기능을 확장할 수 있다. 부하 분산, HTTP 캐싱, 메일 프록시 등의 기능을 추가하여 사용할 수 있다.

[Nginx의 사용 사례]
- 웹 서버: 많은 웹사이트와 웹 애플리케이션에서 Nginx를 웹 서버로 활용하고 있다.
- 로드 밸런서: 트래픽 분산을 통해 서버의 부하를 관리하고 성능을 최적화하기 위해 로드 밸런서로 사용된다.
- API 게이트웨이: API 요청을 처리하고 다양한 서비스와의 통신을 관리하는 게이트웨이 역할을 한다.
- 미디어 스트리밍: 정적 콘텐츠와 미디어 파일의 빠른 전송을 위해 미디어 서버로 사용되기도 한다.

Nginx는 안정성과 성능을 고려할 때, 많은 현대 웹 시스템에서 필수적으로 사용되는 솔루션이다. 서버의 안정성을 높이고, 웹사이트의 응답 속도를 개선하려는 경우, Nginx는 매우 유용한 선택이 될 것이다.

 

Xshell8 프로그램을 통해 세션을 만들고 나면 아래와 같은 리눅스 화면이 뜬다.

여기서 아래의 명령어를 입력하여 루트 계정으로 변경한다.

sudo -i

 

그리고나서 vi 편집기를 이용하여 파일에 Nginx 저장소 설정을 추가하기 위해 하단의 명령어를 입력한다.

vi /etc/yum.repos.d/nginx.repo
  • vi: Vi Editor를 통해 파일을 열기 위한 명령어. Vi는 UNIX 및 Linux 시스템에서 널리 사용되는 텍스트 편집기.
  • /etc/yum.repos.d/nginx.repo: Nginx 저장소 정보를 저장할 파일의 경로. 이 파일은 YUM 패키지 관리자에서 사용할 수 있는 저장소 설정을 정의.

그리고나서 아래의 5줄을 입력한다. (참고로 리눅스에 붙여넣기 할 때는 ctrl+shift+v 를 눌러야 한다.)

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
  • [nginx]:  저장소의 ID를 정의. YUM이 이 저장소를 구분할 수 있도록 이름을 설정하는 것.
  • name=nginx repo: 해당 저장소의 설명을 제공. 사용자에게 Nginx 저장소임을 알려주는 역할
  • baseurl=http://nginx.org/packages/centos/7/$basearch/:  baseurl은 Nginx 패키지를 다운로드할 URL을 정의 / $basearch는 현재 시스템의 아키텍처를 나타내며, 예를 들어 x86_64 또는 i386으로 대체. 이 URL로부터 패키지를 다운로드 할 수 있음.
  • gpgcheck=0: GPG(GNU Privacy Guard) 체크를 비활성화하는 설정. 즉, 패키지를 설치할 때 GPG 키 체크를 하지 않겠다는 의미. 보안적인 측면에서 이 값을 1로 설정하여 검증하는 것이 권장됨.
  • enabled=1: 해당 저장소가 활성화되어 있음을 나타냄. 1로 설정되어 있으면 사용 가능하며, 0으로 설정되면 비활성화.

 YUM 패키지 관리자를 사용하여 Nginx 패키지에 대한 정보를 조회하는 명령어는 다음과 같다.

sudo yum info nginx

※ yum: Linux 배포판에서 사용되는 패키지 관리자로, 소프트웨어 패키지를 설치, 업데이트, 삭제하는 등의 작업을 수행할 수 있게 해줌.

이 명령어를 실행하면 패키지의 이름, 버전, 릴리즈 번호, 아키텍처, 저장소, 설명, 메타데이터 등의 정보가 출력된다.

 

 

 YUM 패키지 관리자를 사용하여 Nginx 웹 서버를 시스템에 설치하는 명령어를 입력하여 Nginx를 설치한다.

sudo yum install -y nginx
  • -y:  "yes"의 약자로, 설치 과정 중에 나타나는 모든 확인 메시지에 대해 자동으로 "예"로 응답하는 기능을 제공. 따라서 사용자가 별도의 확인 없이 설치를 계속 진행할 수 있음.

 

설치가 완료된 후, 앞서 Public Key로도 쓰였던 퍼블릭 IPv4 주소를 주소창에 복사해보면

 

이렇게 홈페이지가 출력되는 것을 확인할 수 있다.

 


홈페이지 내용 바꿔보기

 

먼저 해당 홈페이지의 html 을 조회해보기 위해 하단의 명령어를 입력한다.

cd /usr/share/nginx/html
ls
cat index.html

 

그러면 아래와 같이 해당 홈페이지의 html 문이 출력된다. 

 

현재 바꾸고자 하는 html 문은 아래와 같다.

<html>
<head> 
<title>Amazon CLB-Nginx-2A Connected Success !!!</title> 
<style>
body {margin-top: 40px; background-color: red;}
</style> 
</head>
<body>
<div style=color:white;text-align:center>
<h1>Amazon CLB-Nginx-2A Connected Success !!!</h1>
<h2>Congratulations!</h2>
<p><em>Your application is now running on a container in Amazon CLB.</em></p>
</p> </div>
</body>
</html>

 

새로운 html로 바꾸기 위해서는 vi 에디터를 이용해야 하는데, 아래와 같이 명령어를 입력한다.

vi index.html

그리고나서 'd' 버튼을 계속 눌러 내용을 전체적으로 삭제한 후 'i' 버튼을 눌러 INSERT 모드로 바꾼 뒤, 새로운 html 문을 복사 붙여넣기 해주고 esc 버튼을 누르고

:wq

명령어를 통해 저장해준다.

 

그리고 시스템에 설치된 Nginx 웹 서버 서비스를 시작하는 명령어를 입력해준 뒤 해당 사이트를 들어가보면

sudo systemctl start nginx

 

이렇게 새로 변경되어 있는 것을 볼 수 있다.

 

당연히 2a과 2c의 두 개의 서브넷이 있으므로, 이중화를 시켜줘야 하기 때문에 2c를 위한 같은 작업을 수행한다.

 


다음 내용

 

[aws] 로드 밸런서 생성 및 서브넷 연결하기

이전 내용 [aws] 리눅스 서버 연결 및 nginx 설치이전 내용 [aws] 인스턴스 생성하기이전 내용 [aws] VPC, 서브넷, IGW, 라우팅 테이블 설정하기이전 내용 [aws] route 53 으로 DNS 작업하기이전 내용 [클라

puppy-foot-it.tistory.com

728x90
반응형