AWS EC2에서 웹 애플리케이션 호스팅

AWS EC2에서 웹 애플리케이션 호스팅, Apache 설치, FTP 구성, Load Balancer 및 Route53 통합에 대한 종합 가이드.

N
Necmettin Demir
2023년 7월 21일
로딩 중...

AWS EC2에서 웹 애플리케이션 호스팅

AWS EC2 Web Hosting
AWS EC2 Web Hosting
AWS 환경에서 웹 애플리케이션을 호스팅하는 방법은 여러 가지가 있습니다. 웹 애플리케이션은 전통적인 웹 사이트이거나 API 프로젝트일 수 있습니다. 두 유형 모두 이후부터 "웹 애플리케이션"(web app)으로 지칭됩니다.

소개

AWS 환경에서 웹 애플리케이션을 호스팅하는 방법은 여러 가지가 있습니다. 웹 애플리케이션은 전통적인 웹 사이트이거나 API 프로젝트일 수 있습니다. 두 유형 모두 이후부터 "웹 애플리케이션"(web app)으로 지칭됩니다. AWS에서 웹 애플리케이션을 호스팅하기 위해 적용할 수 있는 몇 가지 방법은 다음과 같습니다:
  1. S3 버킷에서 웹 애플리케이션 호스팅
  2. ECS, EKS 또는 Fargate 컨테이너에서 웹 애플리케이션 호스팅
  3. Elastic Beanstalk으로 웹 애플리케이션 호스팅
  4. EC2에서 직접 웹 애플리케이션 호스팅
[!NOTE] AWS에서 콘텐츠를 호스팅하기 위해 1, 2, 3번 옵션이 현대적인 접근 방식이지만, 이 문서에서는 레거시 시스템에서 많이 작업했지만 기존 습관으로 AWS 환경으로 전환하고자 하는 분들을 대상으로 합니다!
우리의 목표는 Route53, Application Load Balancer, Security Groups 등의 흐름을 EC2와 함께 빠르게 소개하는 것입니다.
이 문서에서는 마지막 옵션을 살펴볼 것입니다. EC2에서 사용할 수 있는 많은 운영 체제가 있습니다. 우리는 "Free Tier"(무료 계층) 내에서 접근 가능한 가장 낮은 구성의 Linux를 사용할 것입니다. AWS Free Tier에 대한 자세한 정보는 여기를 클릭하세요.
Amazon EC2는 웹 애플리케이션을 호스팅하기 위해 직접 사용할 수 있습니다. 이 문서에서는 이러한 작업을 수행하기 위해 필요한 모든 단계를 단계별로 설명합니다.

배경

무엇을 할 것인가?

기본 아키텍처는 다음과 같을 수 있습니다:
시스템 아키텍처
시스템 아키텍처
이미지-001: 메인 시스템 뷰
웹 사이트를 AWS EC2 머신에서 호스팅하는 것이 목표라고 가정해 봅시다. 애플리케이션의 단순화를 위해 AWS EC2의 Apache 웹 서버에서 정적 HTML 페이지를 게시할 것입니다. Apache의 기본 www 폴더에 FTP를 통해 접근할 수 있게 할 것입니다. 이러한 요구 사항 외에도 도메인 이름이 AWS Route53을 통해 이 웹 애플리케이션으로 라우팅될 것입니다.
이미지-001에 표시된 아키텍처를 설계하기 위해 회색 동그라미 안의 숫자 순서대로 AWS 요소를 생성할 것입니다.
도메인 이름이 WELR.com이고 작동하는 요소들을 EC2에서 호스팅하려고 한다고 가정해 봅시다.
WELR.com 콘텐츠를 AWS EC2에서 호스팅하기 위한 모든 단계는 다음과 같을 수 있습니다.

단계 1: AWS에서 보안 그룹 생성

이 보안 그룹은 EC2에 사용됩니다. 보안 그룹은 연결된 객체의 방화벽으로 생각할 수 있습니다.
다음과 같이 모든 인바운드(inbound) 포트를 설정하세요:
  • 20-21 (FTP)
  • 1024-1048 (FTP), 선택 사항
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP 사용자 지정), 선택 사항
  • 443 (HTTPS)
아래 이미지의 빨간색 직사각형은 관련 보안 그룹을 통해 ALB에서 EC2로의 흐름을 보여주는 데 중요합니다.
인바운드 규칙
인바운드 규칙
이미지-002: SG-for-EC2-for-WELR의 인바운드 규칙

단계 2: EC2 인스턴스 생성

AWS에서 EC2 인스턴스를 생성하는 것은 간단한 프로세스입니다. 아래 이미지의 오른쪽 상단에 있는 Connect(연결) 버튼은 EC2에 연결하는 데 사용됩니다.
EC2 생성
EC2 생성
이미지-003: EC2-for-WELR
EC2-for-WELR에 모든 요구 사항을 설치하세요.
먼저 EC2 명령줄에 연결해야 합니다. 이 단계를 수행하는 방법은 여러 가지가 있지만 가장 간단한 방법은 AWS 웹 콘솔을 통해 직접 연결하는 것입니다.
EC2 연결
EC2 연결
이미지-004: EC2-for-WELR에 연결
Connect 버튼을 누르면 ec2-user로 EC2 명령줄에 연결됩니다.

2.1- Apache 설치

TEXT
> sudo s
> yum update -
> yum install -y httpd.x86_6
> systemctl start httpd.servic
> systemctl enable httpd.service
모든 웹 애플리케이션 파일은 Apache의 기본 웹 폴더에 있을 것입니다.
Apache의 기본 웹 폴더는 /var/www/html 디렉토리입니다.

2.2 - FTP 설치

TEXT
> sudo su
> yum update -y
> yum install vsftpd
		
> sudo vi /etc/vsftpd/vsftpd.conf
FTP 구성 파일에서 아래에 표시된 일부 변경 사항을 수행해야 합니다.
구성 파일에서 이 모든 줄이 표시된 대로 있어야 합니다. vi 편집기를 사용하려면 사용 방법을 알아야 합니다. vi 편집기를 처음 사용하는 경우 여기를 참조하세요.
TEXT
# 아래 모든 줄에서 # 기호를 제거하세요
anonymous_enable=NO
#
local_enable=YES
#
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#
xferlog_enable=YES
#
connect_from_port_20=YES
#
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
#
listen=NO
#
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
vsftpd 서비스를 다시 시작하려면 다음 중 하나를 사용할 수 있습니다:
TEXT
> /etc/init.d/vsftpd restart
또는:
TEXT
> systemctl restart vsftpd
FTP용 사용자를 추가하려면 EC2 명령줄에서 다음을 수행하세요:
TEXT
> adduser awsftpuse
> passwd awsftpuse
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuse
> chown -R awsftpuser /var/www/htm
> systemctl restart vsftpd

2.3 - FTP 클라이언트 설치

예를 들어 Windows에서 Filezilla 클라이언트.
AWS에서 모든 요소를 생성한 후 FTP 클라이언트로 연결하고 파일을 업로드해 보세요. index.html 파일을 EC2의 FTP 웹 폴더에 업로드할 수 있어야 합니다.

단계 3: ALB용 보안 그룹 생성

다음과 같이 모든 인바운드(inbound) 포트를 설정하세요:
  • 20-21 (FTP)
  • 1024-1048 (FTP), 선택 사항
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP 사용자 지정), 선택 사항
  • 443 (HTTPS)
ALB 인바운드 규칙
ALB 인바운드 규칙
이미지-005: SG-for-ALB-for-WELR의 인바운드 규칙

단계 4: Target Group 생성

Target Group
Target Group
이미지-006: Target Group TG-for-WELR

단계 5: Application Load Balancer 생성

이 ALB는 TG-for-WELR 타겟 그룹을 가져야 합니다.
타겟 그룹(Target group)은 EC2 그룹입니다. 그러나 지금은 EC2-for-WELR 인스턴스만 포함하고 있습니다.
또한 이 ALB는 SG-for-ALB-for-WELR 보안 그룹을 가져야 합니다.
이미지-007: Application Load Balancer ALB-for-WELR
ALB 생성
ALB 생성

단계 6: 보안 그룹 간 권한

SG-for-EC2-for-WELRSG-for-ALB-for-WELR에서 오는 모든 TCP 요청을 수락하도록 인바운드 규칙을 추가하세요.
보안 그룹 간 흐름
보안 그룹 간 흐름
이미지-008: 보안 그룹을 통해 ALB에서 EC2로의 흐름 허용

단계 7: Route53 Hosted Zone 생성

다음과 같은 네 개의 레코드(record)가 있어야 합니다:
  • NS와 SOA는 자동으로 생성됩니다
  • Record A를 생성하세요. 아래 이미지와 같이
  • Record CNAME을 생성하세요 - welr.com
이미지-009 - Route53 레코드
Route53 레코드
Route53 레코드
NS 주소는 도메인 관리 인터페이스에서 도메인을 EC2 Apache에서 호스팅하는 웹 애플리케이션으로 라우팅하는 데 사용할 수 있습니다.

결론

이 문서의 시작 부분에서 언급했듯이 클라우드 환경에서 웹 애플리케이션을 호스팅하는 방법은 여러 가지가 있습니다. AWS EC2에서 일부 검토를 수행했습니다. 보시다시피 웹 애플리케이션의 작동 요소를 FTP를 통해 Apache에 수동으로 배포한다고 가정합니다. 그러나 모든 CI/CD 도구를 사용하여 FTP 명령을 사용하여 이 프로세스를 자동화할 수 있습니다.
이 문서의 주요 목적은 Route53 및 로드 밸런서(Load Balancers) 뒤의 EC2에서 웹 애플리케이션이 AWS 환경에서 어떻게 호스팅되는지 보여주는 것입니다.

배운 것들:

  • EC2 인스턴스 생성 및 구성
  • Apache 웹 서버 설치
  • FTP 구성 및 사용자 추가
  • Security Group 설정
  • Application Load Balancer 설정
  • Route53으로 도메인 라우팅

☁️ 클라우드 컴퓨팅 서비스

AWS, Azure 및 Google Cloud 플랫폼에서 인프라 설계, 마이그레이션, 관리 및 최적화 서비스를 제공합니다.

서비스 보기

📞 문의하기

AWS 및 클라우드 컴퓨팅 솔루션에 대한 자세한 정보를 얻으려면 팀에 문의하세요.

문의