목록분류 전체보기 (76)
코딜기
접근 Password 설정지난 게시물에서 원격 액세스를 위해 모든 어드레스로부터 접근을 허용하는 설정을 했습니다. 모든 어드레스로부터 접근을 허용하게 되면 외부에서 위험한 접근이 발생할 수 있습니다.따라서 접근 Password를 설정하여 보안성을 높일 필요가 있습니다.접근 Password 설정하고 확인하기1. 아래 명령어를 통해 conf 파일 vi 편집기를 열어줍니다.sudo vi /etc/redis/redis.conf2. .conf 파일에서 [requirepass] 부분을 찾아서 패스워드를 설정해 줍니다. -> 처음에는 주석처리가 되어 있기 때문에 주석을 제거한 후 패스워드를 설정해 줍니다. -> 패스워드는 큰따옴표로 감싸서 설정해주셔야 합니다.3. 바뀐 수정내용을 저장한 후 Redis ..
Redis 원격 액세스 설정기본적으로 Redis는 원격 연결을 허용하지 않기 때문에 Redis를 실행하는 로컬에서만 Redis 서버에 연결할 수 있습니다.원격 호스트에서 Redis 서버에 연결하기 위해 redis.conf 파일을 수정해야 합니다.1. 아래 명령어를 통해 conf 파일 vi 편집기를 열어줍니다.sudo vi /etc/redis/redis.conf2. .conf 파일에서 [bind 127.0.0.1 ::1] 부분을 [bind * -::*]로 수정해 줍니다. -> [bind * -::*]의 의미는 모든 어드레스로부터 접근을 허용한다는 설정입니다. -> 원격 호스트에서 Redis 서버에 연결하기 위한 설정입니다.3. .conf 파일에서 [protected-mode] 부분을..
EC2 Redis 인스턴스 만들기1. 먼저 ubuntu 환경의 기본 설정 인스턴스를 생성합니다.2. 인스턴스 생성이 완료되면 SSH를 통해 Redis 인스턴스에 접속을 합니다.3. 접속이 완료되었다면 아래 명령어들을 통해 Redis 설치에 필요한 기본 패키지를 다운받아 줍니다.sudo apt updatesudo apt install build-essential -ysudo apt install lsb-release4. 설치에 필요한 기본 패키지 다운이 완료되었다면 아래의 명령어들을 통해 Redis를 설치해 줍니다.curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.g..
Celery Executor란?Celery를 이용해서 작업을 worker에게 분배하고, 작업 결과를 관리하는 방식의 Executor입니다.Celery Executor ComponentsBasic ComponentWorkers - 할당된 task를 실행Scheduler - 실행해야 할 task를 Queue에 추가Web server - DAG와 task의 상태를 확인하고, 메타데이터 관리, 시각화, admin 명령을 할 수 있는 HTTP serverDatabase - DAG, tasks, Variable, Connection 등 메타데이터를 저장하는 저장소Celery - 스케줄링하는 Queue의 사용방식Celery Component Broker - 실행해야 할 command를 저장 (Queue)Result ..
Airflow 기본 아키텍처Scheduler스케줄 된 워크 플로우를 트리거하고, Executor에게 task를 실행하도록 요청하는 역할을 합니다.기본적으로 1분에 한 번씩 모든 DAG들의 정보를 업데이트하고, 상태정보를 확인합니다.Scheduler는 모든 task와 DAG를 모니터링하고 각각의 task들을 조건에 맞게 트리거합니다.Executortask의 실행을 관리합니다.실제 task의 실행은 Scheduler 내부에서 수행할 수도 있고, 외부의 worker에게 실행을 맡길 수도 있습니다.Executor의 종류Local Executor : 로컬에서 프로세스를 실행시켜 task를 실행하는 방식Sequential Executor : Local Executor와 비슷하지만 로컬에서 한 번에 하나씩만 동작하는..
로그 데이터 수집 방식1. 파일 수집 방식어플리케이션에서는 로그를 파일로 남기기만 하고, 로그 수집기는 파일을 수집해서 전송만 하는 방식입니다.장점어플리케이션과 로그 수집기가 관심사의 분리(SoC)가 되기 때문에 유연성이 높아집니다.컨테이너 환경을 이용해서 어플리케이션 수집기의 리소스를 분리하면 수집기는 어플리케이션에 부하를 주지 않습니다.단점 어플리케이션과 로그 수집기를 별도로 관리해야 합니다.2. Network Push 방식어플리케이션에서 TCP, HTTP 등의 프로토콜을 이용해서 직접 전송하는 방식입니다.장점로그 전송의 성공과 실패 여부를 어플리케이션에서 판단할 수 있습니다.단점 어플리케이션의 로직과 로그 전송을 같은 프로세스에서 수행하기 때문에 서로 영향을 미칠 수 있습니다.로그 전송때문에 어플리..
명령어를 이용한 EC2 인스턴스와 로컬 간 파일 교환하기EC2 인스턴스와 로컬 간의 파일 교환을 하기 위해 아래의 명령어를 통해서 할 수 있습니다.# 로컬 -> EC2 인스턴스scp -i [보낼 파일의 경로] [User id]@[퍼블릭 ip 주소]:[파일을 받을 위치]scp -i [보낼 파일의 경로] [보낼 파일의 경로] [User id]@[퍼블릭 ip 주소]:[파일을 받을 위치]scp -r [보낼 디렉터리의 경로] [User id]@[퍼블릭 ip 주소]:[디렉터리를 받을 위치]# EC2 인스턴스 -> 로컬scp -i [User id]@[퍼블릭 ip 주소]:[보낼 파일의 경로] [파일을 받을 위치]scp -i [User id]@[퍼블릭 ip 주소]:"[보낼 파일의 경로] [보낼 파일의 경로]" [파일을 ..
FileZilla란?FileZilla를 통해 EC2 인스턴스와 로컬 간의 파일 교환이 가능합니다.FileZilla 설치 EC2 연결1. https://filezilla-project.org에서 운영체제에 맞는 FileZilla client를 설치해 줍니다.2. 설치가 완료되었다면 FileZila를 실행시킨 후 설정창을 띄워줍니다.3. Connection - SFTP에서 Add key file을 선택하고, AWS 키페어 생성 때 다운받은 .pem키를 불러온 후 OK 버튼을 눌러줍니다.4. Site Manager - New site로 새로운 호스트를 만들어줍니다.Site 이름 - 인스턴스 이름과 동일하게 설정하는 것을 권장합니다.Protocol - SFTPHost - 인스턴스 DNS 주소Port - 22Us..
※ 이 글은 맥북이나 리눅스 환경에서 진행됩니다.SSH를 통한 EC2 인스턴스 접속터미널에 접속을 하고, 아래 명령어를 사용해서 인스턴스에 연결을 합니다.ssh -i [.pem 파일 저장 위치] [User id]@[퍼블릭 ip 주소 또는 DNS 주소]성공적으로 접속이 되었다면 인스턴스 정보와 명령어 헤더가 바뀐 것을 확인할 수 있습니다.※ 퍼블릭 ip 주소와 DNS주소는 AWS 홈페이지 - EC2 인스턴스 정보에서 확인할 수 있습니다. ※ 처음 .pem 키를 사용해서 인스턴스에 연결을 할 때 아래와 같이 .pem 파일의 퍼미션 경고가 나올 수 있습니다. -> .pem 파일의 퍼미션은 기본적으로 0644로 설정되어 있기 때문에 400으로 바꿔줘야 성공적으로 사용할 수 있습니다.chmod 400 [...
키페어(Key Pair)란?AWS는 비대칭키 방식을 이용하여 인스턴스 접근을 제어합니다.키페어는 EC2 인스턴스에 접속하기 위해 사용되는 암호화된 파일입니다.발급받은 프라이빗 키를 이용하여 인스턴스에 접근할 수 있기 때문에 키를 안전하게 보관하는 것이 중요합니다.키페어 생성1. 키페어를 생성하기 위해 새 키 페어 생성을 눌러줍니다.2. 키페어의 이름과 유형, 파일 형식을 설정해 줍니다. ※ MAC이나 리눅스 이용자는 .pem을 선택해 주고, 윈도우 사용자는 .ppk를 선택해 줍니다. 3. 키페어가 정상적으로 생성이 되었다면 .pem 파일 혹은 .ppk 파일이 자동으로 다운로드되고, 인스턴스 생성 시 키페어를 선택할 수 있게 됩니다. (파일은 잃어버리지 않게 잘 보관해야 합니다.)