본문으로 바로가기

20190613-TIL(자료구조, 크롤링 프로젝트)

category TIL 2019. 6. 13. 13:20

진행 주제를 선정하고 상세한 내용을 적기

* 사용한 기술과 어려웠던 점, 해결한 내용에 대한 기술도 같이 적을 것

 


  • [v] 자료구조(그래프를 제외한 2번째 순회 중)

    • 목표: 하루에 하나 자료구조를 보고 이해하기
      • 이진탐색과 이진 검색 트리의 차이
        • 이진탐색 트리: 알고리즘(어떤 방법이 좋을지에 대한 절차...?)이다.
        • 이진탐색트리: 자료구조(효율적으로 데이터를 저장)이다.
          • 알고리즘 ----(이 알고리즘으로 어떻게 데이터를 잘 넣어볼까..)---> 자료구조로 만들어짐
      • 이진 검색 트리 사용 이유
        • 일반 배열의 기능을 확장
        • 정렬 가능한 순서대로 동적으로 변경되는 데이터 세트를 효율적으로 관리
        • (균형 트리일 경우)배열과 비교하여 노드의 검색/삽입/삭제가 빠르다
        • 언제 사용? 데이터베이스의 항목을 인덱싱할 때 사용(동적으로 데이터 삽입/삭제가 가능하니까)
        • 검색, 삽입, 삭제는 O(log N) 이 소요
        • (단점) 불균형 트리에서는 배열과 다를바가 없다.(예를들면 오른쪽에만 노드들이 있으면 이건 뭐..배열이지)

 

  • [v] 크롤링 프로젝트

    • 오늘의 목표: ECS 의 환경설정 완료.!!
      • ECS 배포 완료
        • Dockerfile 을 ECR 에 등록(push) 하고, ECS 에서 작업정의, 클러스터를 만드는 것이 큰 흐름.!!
        • ECS 의 작업정의(Task Defination): 컨테이너와 컨테이너의 상호 작용하는 방식을 설정
          • 어떤 컨테이너를 사용할지, 포트번호는 몇번으로 설정할지를 지정
        • 클러스터
          • EC2 타입을 설정, 보안그룹을 생성
          • (EB 에서 어플리케이션을 만들고 그 안에 환경을 만드는 것과 비슷한 느낌)
        • 로드밸런서
          • 들어오는 작업을 두루 분산시킨다(트래픽을 분산)
        • 대상그룹
          • 로드밸런서와 1:1 매칭만 가능(로드밸런서를 생성 메뉴 안에 대상그룹을 생성하는 메뉴가 있음)
        • 보안그룹
          • 말 그대로 방화벽이다. 즉, 허용된 ip 만 해당 보안그룹이 설정된 EC2 등에 접속이 가능

 

- Dockerfile 을 ECR 에 push 하기

# option1. ECR 에 push 하기 위한 플로우
#	(option2. docker-hub 에 등록해서도 사용 가능하다는 것은 참고)

docker build -t ecs-deploy:base -f Dockerfile.base .

docker tag ecs-deploy:base <ARN>:base

docker push <ARN>:base

 

# 클러스터에서 EC2 를 만들지만 결국 이 구조이지 않을까..?
EC2
ㄴ ECS
   ㄴ 클러스터


# EC2 메뉴에서 전체적인 흐름
트래픽..트래픽.. >> [대상그룹] >> [로드밸런서] >> [보안그룹] >> EC2(#1) /(또는)/ EC2(#2) 에 매칭

* 참고 자료