사진과 음악을 좋아하는 개발자 지망생의 블로그

[클라우드] 1. AWS(Amazon Web Services), EC2, Elastic Beanstalk 본문

개발/클라우드(with amazon)

[클라우드] 1. AWS(Amazon Web Services), EC2, Elastic Beanstalk

devculture309 2023. 5. 15. 15:24
반응형

1. Amazon Web Services(AWS)

1) 클라우드 컴퓨팅

  - 인터넷을 통해 컴퓨팅 서비스를 제공하는 기술

  - 기업이나 개인이 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신, Amazon Web Services와 같은 

    클라우드 공급자로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스와 같은 기술 서비스를 대여하고 사용한다

  - 클라우드 컴퓨팅의 이점

    ① 민첩성(Agility): 클라우드 컴퓨팅은 IT 리소스를 더욱 빠르고 쉽게 프로비저닝하고 관리할 수 있기 때문에,

                                 기업이나 개인이 비즈니스 요구사항에 빠르게 대응할 수 있다

    ② 탄력성(Elasticity): 클라우드 컴퓨팅은 컴퓨팅 리소스를 필요한 만큼 추가하거나 제거할 수 있기 때문에,

                                      기업이나 개인이 IT 리소스를 신속하게 스케일 업 또는 다운시킬 수 있다

    ③ 비용절감(Cost Savings): 클라우드 컴퓨팅은 기업이나 개인이 인프라를 구축하거나 운영하는 데 필요한 비용을

                                                절감할 수 있다. 기업이나 개인은 클라우드 제공 업체로부터 필요한 만큼의 IT 리소스를

                                                 대여하고 사용하기 때문에, 인프라 구축 비용이나 운영 비용을 최소화할 수 있다

    On-demand: 클라우드 컴퓨팅은 필요한 IT 리소스를 On-demand로 제공하기 때문에, 기업이나 개인이 필요한 만큼의

                             리소스를 언제든지 사용할 수 있다.

    ⑤ 관리 용이성(Manageability): 클라우드 컴퓨팅은 IT 리소스를 제공하는 클라우드 제공 업체가 대부분의 관리 작업을

                                                     수행하기 때문에, 기업이나 개인은 IT 인프라를 더욱 쉽게 관리할 수 있다.

 

 

2) Amazon Web Services(AWS)

  - 데이터 센터가 전 세계적으로 분포해 있으며 200개가 넘는 완벽한 기능의 서비스를 제공하는,

    세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드 플랫폼

  - 빠르게 성장하는 스타트업, 가장 큰 규모의 엔터프라이즈, 주요 정부 기관을 포함하여 수백만 명의 고갱이 

    AWS를 사용하여 비용을 절감하고, 민첩성을 향상시키고 더 빠르게 성장함

  - AWS  기본용어

    ① 가상화

      - 나의 물리적인 서버를 여러 개의 가상 서버로 나누어 사용하는 기술

      - 이를 통해 물리적인 서버의 자원을 효율적으로 활용할 수 있다

 

    ② 가상머신

      - 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상 환경 → 가상화를 통해 만들어진 가상 서버

      - 물리적인 서버와 비슷한 형태로 구성되어 있으며, 필요한 운영체제(OS)와 애플리케이션을 설치하여 사용할 수 있다

 

    ③ 스냅샷

      - 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술

      - 장애나 데이터 손상 시 스냅샷을 생성한 시점으로 데이터를 복구

      - 원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과 달리 초기 생성 시 혹은 데이터의 변경이 있기 전까지는

        스토리지의 공간을 차지하지 않는다.

      - 메타데이터(데이터에 대한 부가적인 정보)의 복사본에 해당하기 때문에 생성하는 데 오랜 시간이 걸리지 않고,

        장애 상황이 발생해도 빠르게 데이터를 복원

 

     데이터 센터(Data Center): 클라우드 서비스를 제공하기 위해 서버들을 한데 모아 네트워크로 연결해 놓은 시설

 

    ⑤ 지역(Region)

      - 데이터 센터가 위치한 지역

      - IT 리소스를 생성할 Region은 선택 가능

      - 대상 고객의 지역과 자원 생성할 Region이 최대한 가까워야 함

      - 각 리전은 독립적으로 운영 → 국가마다 자원사용 비용이 다름

 

    ⑥ 가용 영역(Availability Zone)

      - 지리적으로 격리된 데이터 센터 그룹

      - 각 가용 영역은 서로 다른 전원, 네트워크 및 연결성을 갖추고 있으며, 이를 통해 가용성과 내구성을 높일 수 있다

      - 하나의 Region 은 두 개 이상의 Availability Zone으로 구성됨

 

 

 

2. EC2

  - Elastic Compute Cloud의 약어로, AWS에서 제공하는 클라우드 기반 가상 서버

  - EC2를 이용하면 인터넷을 통해 간편하게 가상 서버를 프로비저닝 하고, 필요에 따라 컴퓨팅 파워를 확장하거나

    축소할 수 있다

  - EC2는 다양한 운영체제(OS)를 지원하며, 사용자는 필요한 OS를 선택하여 가상 서버를 구축할 수 있다.

 

1) EC2 기능

  ① Amazon 머신 이미지(AMI)

    - EC2 인스턴스를 시작할 때 사용할 수 있는 이미지로, 이미지는 OS, 애플리케이션, 설정 등이 미리 설치된 상태

    - 사용자는 미리 설정된 AMI를 이용하여 EC2 인스턴스를 더욱 빠르고 편리하게 시작할 수 있음

 

  인스턴스 유형

    - EC2 인스턴스를 시작할 때 선택하는 하드웨어 구성으로, 인스턴스의 CPU, 메모리, 스토리지, 네트워크 처리 능력 등

     이 결정

    - 사용자는 자신의 애플리케이션의 요구사항에 맞는 인스턴스 유형을 선택하여 최적의 성능을 뽑아낼 수 있음

 

  ③ 키 페어

    - EC2 인스턴스에 접속하기 위한 인증 방법

    - 사용자는 자신의 키 페어를 생성하고, 해당 키를 이용하여 EC2 인스턴스에 SSH 또는 RDP 등으로 접속할 수 있다

    - AWS는 퍼블릭 키를 저장하고 사용자는 개인 키를 안전한 장소에 보관하는 방식

 

  인스턴스 스토어 볼륨

    - 임시 데이터를 저장하는 스토리지 볼륨으로 인스턴스 중단, 최대 절전 모드로 전환 또는 종료 시 삭제됨

    - 기본적으로 로컬 디스크로 사용되며, 데이터 처리 작업에 대한 빠른 응답 시간과 고성능을 제공

    - Amazon EBS 볼륨보다 저렴하고 고성능이지만, 안정성과 내구성이 떨어짐

 

  Amazon Elastic Block Store(EBS)

    - EC2 인스턴스에서 사용하는 블록 스토리지로, 안정적인 스토리지와 고성능 스토리지를 제공

    - EBS 볼륨은 EC2 인스턴스와 분리된 별도의 스토리지로 존재하며, 인스턴스를 중지 또는 종료해도 데이터는 보존

 

  ⑥ 보안 그룹

    - EC2 인스턴스의 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽

    - 사용자는 보안 그룹을 통해 인스턴스에 접근할 수 있는 IP 범위, 포트, 프로토콜 등을 지정하여 보안을 강화할 수 있다

 

  ⑦ 탄력적 IP 주소

    - EC2 인스턴스에 고정된 공인 IP 주소를 할당하는 기능

    - EC2 인스턴스를 중지하거나 다른 인스턴스로 교체할 때도 IP 주소를 유지

  

  ⑧ 태그

    - EC2 리소스에 사용자가 지정한 메타데이터로, 이름, 설명, 비용센터 등과 같은 정보를 저장할 수 있다

    - 사용자는 태그를 통해 EC2 리소스를 관리하고 비용을 추적할 수 있다

 

  ⑨ Virtual Private Cloud(VPC)

    - AWS에서 제공하는 가상 네트워크 서비스로, EC2 인스턴스와 다른 AWS 리소스를 안전하고 프라이빗하게

     연결할 수 있다 → 논리적으로 격리

    - VPC를 사용하면 사용자는 AWS 클라우드 내에서 완전히 격리된 가상 네트워크를 구축하고

      이를 통해 EC2 인스턴스, RDS 데이터베이스 등 다른 AWS 리소스와의 안전한 통신을 할 수 있습니다.

 

 

 

3. Elastic Beanstalk

1) Elastic Beanstalk

  - AWS의 서비스 중 하나로, 애플리케이션을 쉽게 배포하고 운영할 수 있는 플랫폼

  - Elastic Beanstalk를 사용하면 개발자는 애플리케이션 코드에 집중할 수 있으며,

    용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링 등 나머지 배포 및 운영 작업은 AWS가 자동으로 처리

  - Go, Java, .NET, Node.js, PHP, Python, Rudy와 같이  다양한 프로그래밍 언어와 프레임워크를 지원하며,

    개발자는 Elastic Beanstalk에 업로드하기만 하면 됨

  - 애플리케이션이 트래픽이 많아질 경우, Elastic Beanstalk 필요한 인프라 리소스를 자동으로  확장하여 트래픽에 대응함

반응형