이번 포스트에는 EC2서버 환경을 구성하고, spark, airflow를 설치하여 이미지로 저장하겠습니다.
어떤 프로젝트인지 잘 모르시는 분은 아래의 링크를 참고해주세요.
1. EC2서버 띄우기
1) EC2생성 및 Ubuntu Server 20.04 LTS를 선택합니다.
2) 인스턴스 타입 선택
현재 airflow 및 pyspark를 한 곳에서 돌리는 구조기 때문에, 적당한 크기의 t2.large타입을 선택합니다.
3) public ip 부여 및 IAM role 부여
public IP를 부여할 수 있게 Use subnet setting(Enable), IAM role을 S3Full Access 권한으로 하나 만들어 부여해줍니다.
4) add storage는 기본 값 그대로 설정
5) add tags도 기본 값 그대로 설정
6) security groups 설정
airflow webserver를 위한 8080 포트를 열고, ssh를 위한 22포트를 오픈한 security group으로 설정합니다.
7) EC2 key-pair 선택 및 instance 시작
EC2 key-pair는 ssh연결하기 위한 인증수단으로 미리 생성하지 않으셨다면 아래의 사진과 같이 생성 해주세요.
8) ec2 서버 ssh 연결
ssh -i "EC2keypair위치\ec2-keypair.pem" ubuntu@publicIPV4DNS
2. 서버시간 한국시간으로 맞추기
pyspark ETL 코드내에서 now()에 따라 현재까지의 데이터를 불러오기 때문에 서버의 시간을 한국시간으로 맞춰놔야 합니다.
#첫 번째 방법
sudo apt-get install rdate
sudo rdate -s time.bora.net
#두 번째 방법
sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
3. MySQL 설치, MySQL connector 다운로드, findspark, lxml, bs4 다운로드
1) pip3 설치
sudo apt-get update
sudo apt install python3-pip
2) 파이썬 패키지 설치
pip3 install findspark
pip3 install lxml
pip3 install bs4
3) MySQL 설치, 시작
#mysql 설치
sudo apt-get install mysql-server
#mysql 시작
sudo systemctl start mysql
#서버 시작시 자동으로 시작되게 서비스 등록
sudo systemctl enable mysql
4) mysql 데이터베이스 생성 및 테이블 생성
mysql 접속
sudo mysql -u root -p
#이후 엔터
mysql 데이터베이스 생성 및 테이블 생성
create database COVID19;
use COVID19;
create table Covid_19_info(
`기준날짜` date,
`당일확진자수` int,
`누적확진자수` int,
`당일사망자수` int,
`누적사망자수` int,
`당일의심신고검사자수` int,
`누적의심신고검사자수` int,
`전체확진자치명률(%)` float,
PRIMARY KEY(기준날짜)
);
sudo 없이 로그인 설정(mysql connector로 mysql 에 접근하려면 권한을 부여해야함)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON COVID19.* TO 'root'@'localhost';
5) mysql connector 다운로드
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.zip
sudo apt install unzip
unzip mysql-connector-java-8.0.28.zip
4. Spark 설치
https://spidyweb.tistory.com/220?category=886423
위의 링크와 같게 설치
5. airflow 설치 및 설정
https://spidyweb.tistory.com/349?category=903375
1) airflow 설치
2) mysql meta db로 설정
3) 유저만들기
4) webserver 확인하기
5) airflow 서비스로 등록하기
이상으로 EC2환경 구성을 마쳤습니다.
다음 포스트에는 airflow dags 구성 및 S3로 데이터 보내고 자동으로 EC2를 종료하게끔 하겠습니다.
댓글