요약
0. 내가 이해한 바.
- 인스턴스로 가상환경을 생성
- 이때 해당 가상환경에 접속하기 위한 방법으로 ssh키 쌍을 발급
- public, private
- private는 내 로컬에서 해당 public IP에 접근하기 위함
- public IP를 고정시키기 위해 해당 인스턴스에 고정 IP 로 변경
현재 설정한 가상 서버 접속
ssh oracle-dev
ssh -i ~/.ssh/ssh-key-stock.key ubuntu@152.67.220.93Host oracle-dev
HostName 152.67.220.93
User ubuntu
IdentityFile ~/.ssh/ssh-key-stock.key1. 설치
Ubuntu
가 아닌 Canonical Ubuntu 로 설치!!Linux
1. 인스턴스 생성
- ssh key 발급
2. 인스턴스 접속
ssh [사용자이름]@[공용IP]
ssh ubuntu@3. 고정 IP
현재 인스턴스 고정 ip IP 고정 방법
- 고정 IP 발급
- 인스턴스 내 ip 변경
- 인스턴스
- 위 탭
네트워킹클릭
- 위 탭
- 연결된 VNIC
- 해당 VNIC 클릭
- IP 관리 탭
- 편집
퍼블랙 IP 없음기존 퍼블릭 ip 내리고 고정 ip 설정
- 인스턴스
public 거절 시
chmod 700 ssh-key-stock.key
4. 패키지 설치
1. 패키지 업데이트
sudo apt update && sudo apt upgrade -y2. python 및 가상환경 도구 설치
sudo apt install -y python3 python3-pip python3-venv3. Dock 및 Docker Compose 설치
1) docker 설
- Docker 설치
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
- Docker에 GPG 키 추가
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 저장소 설정
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
- 권한설정
sudo usermod -aG docker $USER
newgrp docker
2) docker-compose 설치
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
3) Docker 기반 Airflow 설치
프로젝트 ㄷ렉토리 생성
mkdir ~/airflow-docker && cd ~/airflow-docker공식 docker 설정 파일 다운로드
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.7.3/docker-compose.yaml'
환경파일생성
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.7.3/docker-compose.yaml'
초기화
docker-compose up airflow-init실행
docker-compose up airflow-initairflow CPU 사용량 제한
오라클 클라우드는 사양이 좋지 않음 따라서, airflow 사용시, CPU 100% 잡아먹는 문제 발생
따라서, docker-compose.yaml 에서 아래 수정
- 예시 DAGS 비활성화
- CPU 사용 제한
- cpu 1개 기준 30% 활용
environment:
AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
airflow-webserver:
# CPU 제한 추가
cpu_period: 100000
cpu_quota: 30000CPu 사용량 실시간 확인
docker-compose stats airflow-webserver참고사이트