본문 바로가기

반응형

Minding's Programming

[AWS] VPC VPCVPC(Virtual Private Cloud)는 사용자가 정의한 가상 네트워크로, AWS에서는 Amazon VPC라는 이름의 서비스로 제공되고 있다. 클라우드 망에서 가상의 네트워크망을 구축하는 것이다. 이를 통해 데이터 엔지니어는 안전한 네트워크 망에서 중요한 데이터가 오갈 수 있도록 설정할 수 있고, 내부 네트워크 디자인 경로를 디자인할 수 있어 데이터를 처리하는 과정을 모두 내부화할 수 있다. DB에 접근을 제어할 수 있을 뿐 아니라 공유할 때에도 VPC 연결 설정을 이용할 수 있다. VPC의 기능서브넷: VPC의 IP 주소 범위이다. 서브넷은 단일 가용 영역에 상주해야 하고, 서브넷 추가 후에 VPC에 AWS 리소스를 배포할 수 있다.IP 주소 지정: VPC와 서브넷에 IPv4 주소와 IP.. 더보기
[AWS] ELB (Elastic Load Balancing) ELB (Elastic Load Balancing)ELB (Elastic Load Balancing)는 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법이라고 할 수 있다. 로드 밸런서 (Load Balancer)로드 밸랜서는 서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 장치 또는 기술을 통칭한다. 크게 L4 로드밸런서와 L7 로드밸런서로 나뉘는데, 다음과 같은 차이가 있다. ELB 대상그룹로드 밸런서를 생성 후 어디에 연결되는 ELB인지 대상그룹을 등록해 주어야 사용할 수 있다. ELB 설정 방법ELB는 다른 서비스와 달리 EC2에 포함된 서비스로, EC2 대시보드의 좌측 메뉴 바에서 확인할 수 있다.'로드 밸런서' 항목에 진인해 로드 밸런서 생성을 누르면 다음과 .. 더보기
[AWS] CloudFront CloudFrontCloudFront는 AWS의 콘텐츠 전송 네트워크(CDN) 서비스이며, 굳이 메인 서버까지 가지 않고 각 지역에 퍼져있는 가장 가까운 서버에서 콘텐츠를 다운로드 받을 수 있다. 서버가 분산되어 성능 및 보안 측면에서 유리하다. 주로 SW나 게임의 패치에 CDN이 많이 쓰인다. 또한 자주 반복되는 이미지, 콘텐츠 등을 캐싱(저장)하여 서버가 이를 반복적으로 처리하지 않고 빠르게 사용자에게 전달 가능하다는 장점도 있다. 특징대기시간 감소보안 향상비용 절감사용자 정의 전송CloudFront 배포 생성미리 등록된 도메인(CDN 서비스가 가능한)을 등록해 CloudFront 배포를 생성할 수 있다.  HTTP, HTTPS등 프로토콜부터 HTTP 요청 방식에 제약을 둘 수도 있다. 이외에 특정 .. 더보기
[AWS] Certification Manager Certification ManagerAWS Certification Manager(ACM)는 AWS 서비스 및 연결된 내부 리소스에 대한 공인 및 사설 SSL/TLS 인증서를 프로비저닝하고 관리/배포할 수 있는 서비스다. ACM을 이용하면 인증서를 구매, 업로드 및 갱신할 때 드는 시간 및 프로세스 소모를 줄일 수 있다. ACM의 특징ACM 통합 서비스를 위한 무료 퍼블릭 인증서관리형 인증서 갱신손쉽게 인증서 받을 수 있음SSL 인증서https에 사용되는 SSL 인증서는 공개 키(publice key)와 개인 키(private key)라는 쌍을 가지고 있으며, 이 키들이 함께 작용해 암호화된 연결을 수립한다. 이 인증서에는 주체(subject)를 포함하고 이는 인증서/웹사이트 소유자의 ID를 뜻한다. .. 더보기
[AWS] Route53 Route53Route53은 AWS의 DNS(도메인 이름 시스템) 웹 서비스로, 가용성과 확장성이 뛰어나다. 도메인 등록, DNS 라우팅, 상태 확인을 조합해 실행할 수 있다. Route53은 publice host zone과 private host zone에서 사용할 수 있는 도메인을 나눠서 제공하고 있다. Route53의 기능은 DNS(네임서버) + 모니터링 + L4 + GSLB의 조합이라고 할 수 있다. DNS를 찾아가는 흐름은 위 그림과 같다.사용자특정 도메인 요청DNS root name server(글로벌)에서 해당 도메인 탐색Name server for .com TLD (지역/리전)에서 해당 도메인 탐색Route 53 name server(로컬)에서 해당 도메인 검색해당 도메인에 등록된 IP .. 더보기
[AWS] RDS, DocumentDB, DynamoDB RDSAWS에서 지원하는 RDB로, 기본적인 DB 형태를 가지고 있다. DB의 인스턴스는 클라우드에서 실행하는 격리된 환경이며, 여러 사용자가 만든 DB가 포함될 수 있다. 액세스할 때는 독립 실행형 DB에 엑세스할 때 사용하는 도구 및 애플리케이션을 사용한다. 특징AWS 명령줄 도구, Amazon RDS API 작업 또는 AWS Management Console을 사용해 간단히 DB 인스턴스 제작 및 수정 가능직접 시스템 로그인 불가능서버리스 시스템이 아님RDS는 main이 되는 Primary와 데이터 손실 방지용 StandBy 2개로 구성이 되어 있으며, 그 내부에는 인스턴스(서버)와 실질적으로 데이터를 저장하는 EBS로 이루어져 있다. RDS 이용해보기AWS에 로그인 후 RDS를 검색해 대시보드로 .. 더보기
[Playwright/Python] 비동기 처리가 가능한 웹 스크래핑 라이브러리, Playwright 프로그래머스 데이터 엔지니어링 데브코스 프로젝트 중 동적 웹 페이지에서 브라우저 조작 및 스크래핑으로 데이터를 수집해야하는 작업이 있었다. 처음에는 기존에 사용하던 Selenium을 사용했지만, 수집할 데이터가 다수였던 만큼 시간이 너무 많이 소요된다는 단점이 있었다. 시간 비용 소모 문제를 해결하기 위해 Selenium을 사용하는 함수를 비동기 프로그래밍 처리하려고 했지만, Selenium은 기본적으로 비동기 처리를 지원하지 않기 때문에 다소 복잡한 과정을 거쳐야 한다.(driver를 가져오는 함수는 따로 작성하고 sync to async를 통해 처리해줘야 한다던지... 등등) Selenium의 비동기 처리 문제를 해결하던 중, 우연히 검색을 통해 비동기 프로그래밍을 지원하는 브라우저 제어 라이브러리가.. 더보기
[AWS/Elastic Beanstalk] Elastic Beanstalk Elastic Beanstalk는 애플리케이션을 신속하게 구성하고 관리할 수 있는 AWS의 서비스다. 관리 복잡성을 줄일 수 있다는 장점이 있으며, 애플리케이션을 업로드하기만 하면 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링 세부 정보를 자동으로 처리한다. Go, Java, .NET, PHP, Python 등의 애플리케이션을 지원한다. 애플리케이션을 배포할 때, Elastice Beanstalk가 선택된 지원 가능 플랫폼 버전을 구축하고, Amazon EC2 등의 AWS 리소스를 하나 이상 프로비저닝해 애플리케이션을 실행한다.  Elastic Beanstalk 생성Elastic Beanstalk > 애플리케이션 생성 으로 진입한다. 1단계 화면에서는 환경 티어, 정보, 플랫폼(언어).. 더보기

728x90