ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] #1 3 계층 구조, VPC
    Software engineer/Infra 2023. 5. 16. 00:08

    백엔드 개발자로서 인프라와 관련된 스킬이 굉장히 중요해졌습니다. 물론 인프라를 전문적으로 다루는 Devops라는 포지션이 있지만, 그분들과 밀접하게 소통하여 협업하기 위해 인프라 공부를 시작해 보려 합니다.

     

    그 첫번째 주제로 3 계층 구조와 그 구조를 구현하는 VPC를 선택했습니다.

    예시

    3 계층 구조란?

    AWS의 3 계층 구조는 클라우드 애플리케이션을 구축하는 데 일반적으로 사용되는 아키텍처 패턴입니다. 이 구조는 웹 애플리케이션 및 서비스를 세 가지 주요 계층으로 나눕니다. 각 계층은 서로 다른 목적을 가지고 있으며, 확장성, 가용성 및 보안성을 강화하기 위해 분리됩니다.

     

    3 계층 구조의 주요 구성 요소는 다음과 같습니다.

     

    1. Presentation Layer (표현 계층)

    이 계층은 최종 사용자와 상호작용하는 부분으로, 일반적으로 웹 브라우저를 통해 접근됩니다. 사용자 인터페이스를 표시하고, 요청을 처리하며, 결과를 표시하기 위한 로직이 포함됩니다. 이 계층에서는 Amazon S3와 같은 정적 웹 호스팅 서비스, Amazon CloudFront와 같은 CDN(Content Delivery Network) 서비스를 사용하여 정적 콘텐츠를 제공하는 것이 일반적입니다.

     

    2. Application Layer (응용 계층)

    응용 계층은 비즈니스 로직을 처리하고 데이터를 가공하는 부분입니다. 이 계층은 Presentation Layer에서 받은 요청을 처리하고, 데이터베이스에 액세스 하고, 데이터를 처리하며, 필요한 경우 외부 서비스와 통신합니다. 일반적으로 Amazon EC2 인스턴스와 같은 가상 서버에서 실행되는 애플리케이션 서버로 구성됩니다. 이 계층은 Auto Scaling 그룹을 사용하여 수평적으로 확장할 수 있습니다.

     

    3. Data Layer (데이터 계층)

    데이터 계층은 데이터 저장 및 관리를 담당합니다. 이 계층에는 데이터베이스 시스템이 포함되며, 주로 Amazon RDS, Amazon DynamoDB, Amazon ElastiCache와 같은 서비스를 사용하여 데이터를 저장합니다. 데이터 계층은 데이터의 안정성과 내구성을 보장하기 위해 백업, 복제, 복구 및 보안 기능을 제공합니다.

     

     

     

    VPC란?

    VPC(Virtual Private Cloud)는 AWS에서 제공하는 가상 네트워킹 환경입니다. VPC를 사용하면 사용자는 AWS 클라우드에서 독립된 가상 네트워크를 구축하고 구성할 수 있습니다. VPC는 사용자가 제어할 수 있는 가상 네트워크로, AWS 리소스를 프라이빗하게 배치하고 보안 및 네트워크 액세스를 구성하는 데 사용됩니다.

     

    또한 여러 구성 요소를 조합하여 VPC를 구축하고 관리할 수 있으며, 사용자는 VPC 내의 리소스를 프라이빗하게 유지하고 필요한 경우 인터넷과의 연결을 설정할 수 있습니다. VPC는 다른 VPC나 온프레미스 네트워크와도 연결이 가능하며, 가상 프라이빗 클라우드를 구축하고 관리하는 데 매우 유연성과 확장성을 제공합니다.

     

    따라서 앞으로 아래와 같은 VPC의 구성 요소들을 공부해보려 합니다.

     

    AZ(Availability Zone)

    지리적으로 분리된 데이터 센터로, 고가용성과 내결함성을 제공하여 서비스의 가용성을 보장합니다.

     

    Subnet

    VPC 내에서 IP 주소 범위를 세분화한 작은 네트워크 세그먼트로, 리소스를 논리적으로 그룹화하고 네트워크 트래픽을 관리합니다.

     

    IGW(Internet Gateway)

    VPC와 인터넷 간의 통신을 담당하는 게이트웨이 입니다.

     

    ELB(Elastic Load Balancer)

    여러 대의 EC2 인스턴스나 컨테이너에 들어오는 트래픽을 분산시켜 애플리케이션의 가용성과 확장성을 향상시키는 로드 밸런싱 서비스입니다.

     

    NACL(Network Access Control List)

    서브넷 수준에서 동작하는 가상 방화벽으로, 인바운드 및 아웃바운드 트래픽을 제어하여 네트워크 보안을 강화합니다.

     

    SG(Security Group)

    인스턴스 수준에서 동작하는 가상 방화벽으로, 인바운드 및 아웃바운드 트래픽을 제어하여 EC2 인스턴스와 다른 리소스의 보안을 보장합니다.

     

    Route Table

    VPC 내에서 트래픽을 전달하는 라우팅 규칙의 집합으로, 서브넷과 연결되어 트래픽을 적절한 대상으로 라우팅 하여 네트워크 통신을 관리합니다.

     

    NAT(Network Address Translation)

    프라이빗 서브넷 내의 인스턴스가 인터넷과 통신할 수 있도록 공인 IP 주소와 프라이빗 IP 주소 간의 주소 변환을 수행하는 서비스입니다.

     

    S3(Simple Storage Service)

    클라우드 기반의 객체 스토리지 서비스로, 안정적이고 확장 가능한 방식으로 데이터를 저장하고 검색할 수 있으며, 웹 사이트 호스팅, 데이터 백업 및 복원, 애플리케이션 데이터 저장 등 다양한 용도로 활용됩니다.

     

    RDS(Relational Database Service)

    관리형 관계형 데이터베이스 서비스로, MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등 다양한 데이터베이스 엔진을 제공하여 데이터베이스의 프로비저닝, 패치, 백업 등의 관리 작업을 자동화하고, 확장성과 가용성을 제공합니다.

     

    EC2(Elastic Compute Cloud)

    가상 서버를 제공하는 서비스로, 유연한 컴퓨팅 리소스를 활용하여 애플리케이션을 실행하고 관리할 수 있게 해 줍니다.

     

    Auto Scaling

    애플리케이션의 수요에 따라 EC2 인스턴스의 수를 자동으로 조절하여 가용성과 성능을 유지하는 자동 확장 기능을 제공하는 서비스입니다.

     

    Bastion Host

    보안을 강화하기 위해 외부에서 안전한 방식으로 내부 네트워크에 접근할 수 있는 접근 지점으로 사용되는 보안 인스턴스입니다.

     

     

    앞으로 실습과 함께 공부해 보도록 하겠습니다!

     

Designed by Tistory.