AWS

AWS 개발환경 설정 - WSL2 & S3 & RDS

개요

  • 윈도우 WSL2에서 AWS 개발을 위한 기본 개발환경 설정을 진행한다.

WSL2 설치

Restart WSL2

  • WSL2 처음 작업할 때, 실행한다.
exec $SHELL

WSL2 주요 필수 패키지 설치

  • Python 3.8 버전을 설치한다.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7
  • Python 버전은 다음과 같다.
$ python3 --version
Python 3.8.10
  • 만약 Python 버전 변경이 안되면 전체 삭제하고 진행한다.

(옵션) Python 삭제

  • 현재 설치된 모든 파이썬 버전을 보여줌
ls /usr/bin/python* 
  • python3 버전과 관련된 모든 파일을 삭제함
sudo apt-get purge --auto-remove python3.8

awsebcli 설치 및 AWS CLI Configuration

  • awscli를 설치한다.
sudo apt install awscli
  • 버전은 다음과 같다.
$ aws --version
aws-cli/1.18.69 Python/3.8.10 Linux/5.10.16.3-microsoft-standard-WSL2 botocore/1.16.19

IAM 사용자 추가

  • AWS 회원가입은 완료된 상태에서 시작한다.

Django with Elastic Beanstalk - Settings

한줄 요약

  • 생각보다 쉽지 않기 때문에 Windows로 하기 보다는 WSL2로 하는 것을 권한다.
    • 이 부분은 추후 업데이트 할 예정이다.

Windows에 EB CLI 설치

C:\WINDOWS\system32>python --version
Python 3.7.4

C:\WINDOWS\system32>pip --version
pip 19.0.3 from c:\users\human\appdata\local\programs\python\python37-32\lib\site-packages\pip (python 3.7)
  • pip을 이용하여 EB CLI를 설치한다.
C:\Windows\System32> pip install awsebcli --upgrade --user
  • 환경변수를 설정한다.
    • Python 3.7 버전으로 설치 했다면, 아래 코드를 환경변수에 추가한다.
%USERPROFILE%\AppData\roaming\Python\Python37\scripts

(AWS Project) BigData with Hadoop 05 - Hive Script 연습 예제

I. Getting Started

II. What to do now

  • Hive Script를 제출하는 방법에 대해 준비하였다.
  • 를러스터를 생성할 때 단계를 지정하거나 마스터 노드에 연결하고 로컬 파일 시스템에서 스크립트를 생성하고 명렁어를 사용하여 실행할 수 있다.

III. 데이터와 스크립트에 대한 이해

  • 본 튜토리얼에서 사용하는 샘플 데이터와 스크립트는 Amazon S3에서 사용이 가능하다.
  • 샘플 데이터는 일련의 Amazon CloudFront 액세스 로그 파일이다.
  • CloudFront 및 로그 파일 형식에 대한 자세한 정보는 다음을 확인한다.
    Amazon CloudFront Developer Guide
  • 데이터의 위치는 아래와 같이 저장된다.
s3://region.elasticmapreduce.samples/cloudfront/
  • 여기에서 region은 사용자의 region이다.

(1) 스크립트 제출 시

  • script를 제출할 때 위치를 입력하면 스크립트가 클라우드 프런트/데이터 부분을 추가하기 때문에 생략한다.
  • CloudFront 로그 파일의 각 항목은 다음과 같은 형식으로 단일 사용자 요청에 대한 세부 정보를 제공한다.

2014-07-05 20:00:00 LHR3 4260 10.0.0.15 GET eabcd12345678.cloudfront.net /test-image-1.jpeg 200 - Mozilla/5.0%20(MacOS;%20U;%20Windows%20NT%205.1;%20en-US;%20rv:1.9.0.9)%20Gecko/2009040821%20IE/3.0.9

(AWS Project) BigData with Hadoop 04 - Allow SSH Access

I. Getting Started

II. What to do now

  • Client에서 SSH를 통해 클러스터에 접근하는 방법에 대해 다룬다.

(1) Warning

  • 보안 그룹은 클러스터에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다.
  • 첫 번째 클러스터를 생성하면 Amazon EMR은 마스터 인스턴스, ElasticMapReduce-master와 연결된 기본 Amazon EMR 관리 Security Group 및 핵심 노드 및 태스크 노드와 연결된 Security Group ElasticMapReduce-slave를 생성한다.

Warning: 공용 서브넷의 마스터 인스턴스에 대한 기본 EMR 관리 보안 그룹 ElasticMapReduce-master는 모든 소스(IPv4 0.0.0/0)에서 포트 22의 인바운드 트래픽을 허용하는 규칙으로 사전 구성된다. 이는 마스터 노드에 대한 초기 SSH 클라이언트 연결을 단순화하기 위한 것이다. 보안 이슈가 생길 우려가 있기 때문에 AWS는 이 인바운드 규칙을 편집하여 신뢰할 수 있는 소스의 트래픽만 제한하거나 액세스를 제한하는 사용자 지정 보안 그룹을 지정해야 한다.

(AWS Project) BigData with Hadoop 03 - Amazon EMR Cluster 시작

I. Getting Started

II. What to do now

  • 이번 포스트에서는 비교적 간단하게 빅데이터 클러스터를 시작하는 과정을 진행한다. 막상 해보면 어려운 것은 아니지만, 언제나 그렇듯이 처음 할 때는 늘 시행착오를 겪게 마련이다.
  • Amazon EMR console창에 있는 Quick Options을 사용한다. Quick Options에 있는 다양한 절차들에 대해 확인이 필요하면 Summary of Quick Options에서 확인해본다.

III. Sample Cluster 시작

  • 먼저 AWS에 있는 AWS Management Console을 클릭하여 실행하도록 한다. (아래 그림 참조)

(AWS Project) BigData with Hadoop 02 - 사전작업

I. Amazon S3 Bucket 생성 주요 요건

  • Hive 쿼리의 출력 데이터를 저장할 Amazon S3 버킷과 폴더를 지정한다.
  • 자습서에서는 default log location을 사용하지만, 원하는 경우에는 custom location을 지정할 수 있다.
  • 하둡의 요구사항 중, bucketfolder names 다음과 같은 규칙을 적용한다.
    • letters, numbers, periods(.), and hyphens(-) 등을 입력한다.
    • 마지막 글자는 숫자로 끝맺음을 하지 않는다.
  • 이러한 요구 사항을 충족하는 폴더에 이미 액세스할 수 있는 경우 이 튜토리얼에 해당 폴더를 사용하십시오.
  • 출력 폴더는 비어 있어야 한다.
  • 버킷 이름은 모든 AWS 계정에서 독특(unique)해야 한다는 점을 기억해야 한다.

II. Creating a Bucket

  • 이제 bucket을 생성하는 예제를 해본다.
    • 관련 예제는 Amazon Simple Storage Service Getting Started Guide문서에서 Create a Bucket을 찾아서 확인해본다.
  • Note (영어)

You are not charged for creating a bucket. You are charged only for storing objects in the bucket and for transferring objects in and out of the bucket. The charges that you incur through following the examples in this guide are minimal (less than $1). For more information about storage charges, see Amazon S3 Pricing

(AWS Project) BigData with Hadoop 01 - Overview

I. Overview

  • Amazon EMRApache 하둡Spark를 쉽고 빠르며 비용 효율적으로 실행하여 대량의 데이터를 처리할 수 있게 해주는 관리형 서비스입니다.
  • Amazon EMRPresto, Hive, Pig, HBase 등과 같은 강력하고 입증된 하둡 도구를 지원한다.
  • 이 프로젝트에서는 모든 기능이 작동하는 하둡 클러스터를 배포하여 몇 분 만에 로그 데이터를 분석할 준비를 갖추게 된다.
  • 먼저 Amazon EMR 클러스터를 시작한 다음, HiveQL 스크립트를 사용하여 Amazon S3 버킷에 저장된 샘플 로그 데이터를 처리한다. HiveQL은 데이터 웨어하우징과 분석을 위한 SQL 유사 스크립트 언어이다.
  • 그런 다음 비슷한 설정을 사용하여 자체 로그 파일을 분석할 수 있다.

II. 시작하기 전에 필요한 조건

  • 먼저 계정을 만들어야 한다. (참조: AWS - 회원가입 및 주요 서비스 간략 소개)
  • 요금 추정: 이 프로젝트를 완료하는 데 1.05 USD의 비용이 들 것으로 예상됩니다. 이는 AWS 프리 티어 한도 내에서 사용하고, 권장 구성을 따르며, 프로젝트에 사용된 모든 리소스를 생성 후 1시간 이내에 종료한다고 가정할 때의 비용입니다. 고객의 사용 사례에 따라 다른 구성이 필요할 수 있으며 이는 청구서에 영향을 미칠 수 있습니다. 요금 계산기를 사용하면 요구 사항에 맞춰 비용을 추정할 수 있습니다.
    • 꼭, 1시간 이내에 종료한다
    • 따라서, 단계별로 정리하는 습관이 중요하며, 가급적 사진 캡쳐하는 것도 좋다.
    • 영어 원서를 읽는데 부담감이 적다면, 다운로드: EMR 사용자 가이드받는 것을 추천한다.

III. Get Started

  • 이 튜토리얼은 빠른 생성을 사용하여 샘플 Amazon EMR 클러스터를 생성하는 과정을 안내한다.
  • AWS Management Console의 옵션, 클러스터를 생성한 후 Hive Script를 제출한다.
  • Amazon Simple Storage Service(Amazon S3)에 저장된 샘플 데이터를 처리한다.
  • 이 튜토리얼은 프로덕션 환경을 위한 것이 아니며 개발환경 구성(configuration) 옵션에 대해서는 다루지 않는다.
  • 가능한 한 빠르게 클러스터를 설정할 수 있도록 하기 위한 것이다.
  • 만약에 에러 등 문제가 발생이되면, Discussion Forum에 질의를 합니다.
  • 비용은 지역마다 다릅니다만, 일반적으로 클러스터 구성 후에 1시간 이내로 종료하면 비용 부담은 발생하지 않는다.
  • 처음 사용자인데, 실수로 비용이 과다하게 발생이 되면 면제받을 수 있다.
  • 자세한 것은 Amazon S3 요금 정책을 확인한다.

이제 본격적으로 AWS에서 Hadoop을 구성해보자.

AWS - 회원가입 및 주요 서비스 간략 소개

I. Overview

  • 클라우드 서비스로써, AWS는 모든 IT 개발자에게 필수 Skill set과 같다.
  • 데이터 분석가, 싸이언티스트에게도 AWS는 반드시 알아야 할 서비스이다.
  • 매우 유명한 서비스이기에 자세한 내용은 다루지 않는다. 다만, 데이터 분석가라면 알아두어야 할 필수 서비스만 간단히 다루도록 할 예정이다.
  • 간단하게 회원가입을 진행하도록 하자.

II. Registration

  • Step 1. 웹사이트 접속 및 계정 생성
  • Step 2. [계정 생성] 페이지에서 이메일 주소, 암호, AWS 계정 이름을 입력하고 [계속] 버튼을 클릭한다.
  • Step 3. 이 때 계정 유형이 크게 [프로페셔널]과 [개인]으로 구분되는데, [개인]을 클릭한다. 연락처와 정보는 모두 영어로 기재하기를 바란다.
  • Step 4. [결제 정보] 페이지에서 본인 명의의 신용카드 또는 직불카드 정보를 입력한다.
    • 각 실습을 진행한 후에는 가급적 모두 삭제하기를 바란다.
    • 따라서, 실습을 할 때마다 정리하여 개인 개발블로그github에 정리하는 습관을 가지는 것을 추천한다.
  • Step 5. [지원 플랜 선택] 페이지에서 기본 플랜을 선택한다.