[TIL 26일자] 데브코스 데이터엔지니어링

·2023년 5월 15일
0

데브코스

목록 보기
25/55
post-thumbnail

📚 오늘 공부한 내용

1. 클라우드 컴퓨팅이란?

  • IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 방식.
  • 물리적인 데이터 센터와 서버를 구입하고, 소유 및 유지를 관리하는 대신 AWS와 같은 클라우드로부터 필요에 따라 컴퓨팅 파워, 스토리지, 데이터베이스 같은 기술 서비스에 액세스할 수 있다.
  • 클라우드 컴퓨팅의 장점
    • 민첩성
    • 탄력성
    • 비용 절감
    • On Demand
    • 관리 용이성

2. 클라우드 유형

사진 출처: https://www.whatap.io/ko/blog/9/

  • 리소스 관점으로 보게 되면 다음과 같이 클라우드 유형이 나누어진다.
  • IaaS (Infrastructure as a Service): 서비스로 제공되는 인프라스트럭처. 개발사에서 제공되는 물리적 자원을 가상화한다. 확장성이 높고, 자동화된 컴퓨팅 리소스를 가상화하여 제공한다.
  • PaaS (Platform as a Service): 서비스로 제공되는 플랫폼. 개발사에 제공되는 플랫폼을 가상화한다. 응용 프로그램을 개발할 때 필요한 플랫폼을 제공한다.
  • SaaS (Software as a Service): 서비스로 제공되는 소프트웨어. 소프트웨어를 가상화한다. 대부분의 SaaS 애플리케이션은 웹 브라우저를 통해 직접 실행되므로 클라이언트 측에서 다운로드나 설치가 필요하지 않다.

3. AWS(Amazon Web Services)란?

  • 전 세계적으로 많이 사용하고 널리 채택되고 있는 클라우드 플랫폼.
  • 별도의 인프라를 구성하지 않고 서비스를 운영할 수 있어 빠르게 성장하는 스타트업에서 많이 사용되지만, 가장 큰 규모의 엔터 프라이즈와 정보 기관에서도 많이 사용한다.
  • 비용적인 측면애자일 방식의 개발에서 장점이 많다.

✍ AWS 이해를 위해 알아두어야 할 기본 용어
가상화
- 물리적 컴퓨터 하드웨어보다 더 효율적으로 활용할 수 있도록 해 주는 프로세스
- 클라우딩 컴퓨팅의 기반을 제공하는 기술

가상 머신
- 소프트웨어 형식으로 물리적 컴퓨팅을 시뮬레이션하는 가상 환경

스냅샷
- 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술
- 장애가 발생하거나 데이터 손상이 생겼을 때 스냅샷 시점을 기점으로 복구 가능
- 메타데이터의 복사본이라서 생성하는 데 시간이 오래 걸리지 않고 장애 상황에서도 데이터를 빠르게 복원 가능

데이터 센터
- 수많은 서버를 한데 모아 네트워크로 연결해 둔 시설

Region (지역)
- 데이터 센터가 위치한 지역
- IT 리소스 생성할 Region은 선택 가능
- 대상 고객의 지역과 자원을 생성할 Region이 최대한 가까워야 함
- Region마다 제공하는 서비스가 다름

Availability Zone (가용 영역)
- 하나의 Region은 두 개 이상의 Availability Zone으로 구성됨
- 줄여서 AZ로 표기

4. AWS EC2 구성

  • 내부적으로는 Security GroupAmazon EBS로 구성되어 있음.
  • 외부 터미널을 통해 들어올 때는 Private Key를 통해 접속해야 함.

5. AWS EC2 인스턴스 생성

💻 [AWS EC2] EC2 인스턴스 생성

  • 실습 부분이라 따로 포스팅함

6. AWS EC2 보안 그룹 설정 - 인바운드 규칙

  • 다음과 같이 80 포트를 모든 IP에 대해서 열고 싶다면 Anywhere-IPv4 그리고 0.0.0.0/0 설정을 한 후 규칙을 저장해 주어야 한다.
  • 이대 0.0.0.0/0은 모든 IP를 뜻하며 특정 IP만 열어 주어야 한다면 저 자리에 특정 IP를 지정해 주면 된다.
  • SSL 인증서가 있으면 HTTP 443 포트를 열어 주어야 한다.
  • 모든 TCP를 열 거라면 유형을 모든 TCP로 선택한 후 0-65535로 포트 범위를 열면 된다. -> 물론 보안적으로 좋지 않다.

7. 탄력적 IP

💻 [AWS EC2] 탄력적 IP(Elastic IP) 생성 및 할당

  • 실습 부분이라 따로 포스팅함

8. Elastic Beanstalk

  • 애플리케이션을 만들 수 있는 환경을 빠르고 신속하게 구성해서 관리할 수 있는 서비스이다.
  • 복잡성을 줄일 수 있고, 애플리케이션을 업로드만 하면 용량 프로 비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리한다.
  • Go, Java, .NET, Node.js, PHP, Python, Ruby에서 개발된 애플리케이션을 지원한다.
  • 또한 애플리케이션을 배포할 때 Elastic Beanstalk가 선택된 지원 가능 플랫폼 버전을 구축하고 AWS 리소스를 하나 이상 프로비저닝하여 애플리케이션을 실행한다.
  • 구성 수정 및 로그 확인, 모니터링도 간편하다.
  • 애플리케이션 생성 과정은 따로 포스팅 해 두었다. 다만 강의에서의 생성 화면과 AWS Elastic Beanstalk 생성 과정이 바뀌어서 조금 더 복잡해졌다.
    💻 [AWS Elastic Beanstalk] Elastic Beanstalk 개념 및 애플리케이션 생성

🔎 어려웠던 내용 & 새로 알게 된 내용

1. 윈도우에서 AWS EC2 접속 시 Permission 오류

  • 정말 한 시간도 넘게 헤맨 부분이고, 구글링에서 나온 방법들을 시도했지만 족족 실패해 .ppk + 윈도우 조합으로 나와 같이 EC2 접속에 고역을 겪고 있는 사람이 있을까 싶어 따로 포스팅을 해 두었다.

    💻 윈도우 AWS EC2 서버 접속 시 Permission Denied 오류

✍ 회고

- 오늘은 개념 정리 및 초기 환경 세팅이었는데 초기 환경과 관련해서 오류가 발생해 해결 과정이 조금 오래 걸렸다. 기억에 남아 이 문제와 관련해서는 다시 문제를 만나더라도 빠르게 해결할 수 있을 것 같다.

- AWS 자격증 준비 초반에 강의에서 들었던 것이 떠올랐다. AWS와 관련해서는 이미 수많은 기업들이 사용하고 있기 때문에 AWS 공부를 다시 제대로 해야 되겠다고 생각했다. AWS 자격증 준비하고 있던 것에 잠깐 여유가 없어서 소홀했는데 다시 시작해야 되겠다는 생각을 했다.

- Elasticbeanstalk에 대해서는 처음 알게 되었는데 프로젝트에서 활용해 보면 좋겠다고 생각했다.

profile
송의 개발 LOG

0개의 댓글