EC 생성 및 설정

실습을 위해서 데이터를 주기적으로 생성하는 역할을 수행할 EC2 인스턴스를 생성합니다.

EC2 인스턴스 생성 설정시 User Data에 쉘 스크립트를 추가하여 자동으로 관련 라이브러리와 개발코드를 설치합니다.
개발 언어는 Python 이며, boto3 SDK를 사용하며, User를 생성할 때 받은 credentials.csv 파일울 활용합니다.

데이터를 실시간으로 생성하는 EC2 인스턴스 생성

  1. AWS Management Console에서 EC2 서비스에 접속합니다.
    이 실습은 ap-northeast-2 (Seoul) 리전에서 진행됩니다. 우측 상단의 리전이 Seoul 인지 확인해 주세요. ec2-setup-01

AWS Management Console의 UX도 지속적으로 혁신을 하고 있습니다.
좌측 상단의 New EC2 Experience를 활성화 해서 사용해 주세요.

  1. 좌측 메뉴의 Instances 를 선택하고, Launch Instance 버튼을 선택하여 새로운 인스턴스 생성을 시작합니다. ec2-setup-02
  • Step 1: Choose an Amazon Machine Image (AMI) 화면에서 Amazon Linux 2 AMI (HVM), SSD Volume Type 을 선택합니다. ec2-setup-03
  • Step 2 : Choose an Instance Type 화면에서 인스턴스 타입은 free tier로 테스트가 가능한 t2.micro 를 선택합니다. 우측 하단의 Next: Configure Instance Details 버튼을 클릭합니다. ec2-setup-04
  • Step 3: Configure Instance Details 화면에서 하단으로 스크롤을 내리고, Advanced Details 을 클릭하고, User data 텍스트 박스에 아래 스크립트를 복사하여 붙여 넣습니다. 그리고 우측 하단의 Next: Add Storage 버튼을 클릭합니다. ec2-setup-05
#!/bin/sh
sudo yum -y install python-pip
pip install boto3
cd /home/ec2-user
wget https://s3.amazonaws.com/immersionday-bigdata-v20180731/banking_loss.csv
wget https://s3.amazonaws.com/immersionday-bigdata-v20180731/firehose.py
wget https://s3.amazonaws.com/immersionday-bigdata-v20180731/redshift.py

User data에 대한 정상 실행 여부는 아래와 같이 확인할 수 있습니다.
Amazon Linux 2 AMI 기준 /var/log/cloud-init-output.log 에서 user data가 실행된 로그를 확인할 수 있습니다.

  • Step 4: Add Storage 화면에서 기본값을 그대로 두고 Next: Add Tags 를 클릭합니다. ec2-setup-06
  • Step 5: Add Tags 화면에서 Add Tag 버튼을 한 번 클릭한 뒤, Key에는 Name 을 Value에는 big-data-lab 을 입력하고, 우측 하단의 Next: Configure Security Group 버튼을 클릭합니다. ec2-setup-07
  • Step 6: Configure Security Group 화면에서 Security Group에 아래의 Security Group Name과 Description 정보를 입력한 후, 우측 하단의 Review and Launch 버튼을 클릭합니다. ec2-setup-08
구분
Security Group Name bastion
Description SG for bastion
Type SSH
Protocol TCP
Port Range 22
Source 0.0.0.0/
  • Step 7: Review Instance Launch 화면에서 우측 하단의 Launch 버튼을 클릭합니다. ec2-setup-09

  • EC2에 접속하기 위한 Key pair를 선택하라는 팝업 창이 열립니다. 화면과 같이 Proceed without a key pair 를 선택하고 하단의 체크박스를 체크합니다. 그리고 우측 하단의 Launch Instance 버튼을 클릭합니다. ec2-setup-10

이 실습에서는 Putty(Windows)나 Terminal(Mac)에서 Key pair를 이용해서 SSH로 접속하지 않습니다. 해당 인스턴스에 AWS EC2가 웹 브라우저에서 SSH로 접속할 수 있게 도와주는 Connect 기능을 이용해서 접속합니다.

  1. AWS Management Console에 EC2 좌측 메뉴의 Instances를 선택한 화면에서 방금 생성한 EC2 인스터스의 체크박스를 선택 합니다. 그리고 화면의 Connect 버튼을 클릭합니다. ec2-setup-11

  2. Connection method는 EC2 Instance Connect (Browser-based SSH connection) 옵션을 선택합니다. User name이 ec2-user 인지 확인하고 우측 하단의 Connect 버튼을 클릭합니다. ec2-setup-12

  3. 화면과 같이 웹 브라우저에 Amazon Linux 2 AMI 로 만들어진 EC2 인스턴스에 SSH로 연결된 것을 확인할 수 있습니다.
    ls 명령을 통해서 화면과 같이 3개의 파일이 다운로드 되어 있는지 확인 합니다.
    pip도 정상적으로 설치가 되어 있는지 pip --version 버전을 확인합니다. ec2-setup-13

  4. EC2에 권한을 주기 위해서 IAM에서 만들었던 User의 Credential을 설정합니다.
    aws configure 명령어를 실행합니다. 그리고 User를 생성하면서 다운로드한 Credential.csv 파일을 엽니다.
    Access key IDSecret access key 를 csv 파일 값을 복사하여 입력합니다.
    Default region name은 ap-northeast-2 를 입력하고, Default output format 은 json 을 입력합니다. ec2-setup-15 ec2-setup-14 설정이 완료되면 aws configure 명령어를 다시 실행합니다. 그리고 값이 정상적으로 들어가 있는지 확인합니다. ec2-setup-16