전체 글

공부와 경험의 기록!
이러한 아키텍처대로, Private Subnet에 있는 ec2인스턴스에서 S3 Bucket에 접근할 수 있도록, PrivateLink 서비스를 사용하는 인프라를 구현해 보았다. VPC Endpoint를 사용하면 VPC에서 AWS 서비스들과 통신할 때 외부 인터넷에 데이터를 노출시키지 않고, Private하게 서비스에 접근 및 통신할 수 있다. 1. Private Subnet에 ec2 인스턴스 생성하기 2. S3 버킷을 원하는 region 에 생성하기 3. VPC endpoint로 EC2랑 S3를 연결하기 AWS 서비스를 선택한다 미리 생성한 ec2가 있는 VPC를 선택한다 S3 버킷을 만든 region 에 해당하는 aws s3 서비스를 선택한다. 4.Private Subnet 내에 속한 인스턴스에서 S3..
RDD ? RDD는 Resilient Distributed Dataset 의 줄임말로 스파크의 기본 데이터 구조이다. Spark 에서 모든 작업은 새로운 RDD를 만들거나, 변형하거나, 연산하는 것 중 하나이다. Spark 에서는 빠른 맵리듀스 작업을 위해서 RDD를 사용해 처리한다.즉, 하둡에서의 맵리듀스의 단점을 보완하기 때문에 RDD로 대세가 바뀌게 되었다. 하둡에서의 Map Reduce 중간 결과에 대해 데이터 복제, I/O 직렬 수행으로 인해 오버헤드가 발생한다는 문제점이 있다. RDD라는 아이디어에 따르면, 메모리 내에서 데이터를 공유한다. 네트워크나 디스크에서 작업하는 것보다 메모리에서 작업하게 되면 10배에서 100배정도 더 빠르다. memory 의 내용을 read-only 로 사용하게 한..
Process 프로세스는 실행중인 프로그램이다 프로세스의 Context 프로세스에서는 문맥이 중요하다. CPU 수행 상태를 나타낸다. 하드웨어 문맥 : register가 현재 어떤 값을 가지고 있었는지, Program Counter 값 프로세스의 주소 공간 : code, data, stack에 어떤 내용이 들어있는지 프로세스 관련 커널 자료 구조 : PCB (Process Control Block), Kernel stack 이러한 프로세스 정보를 가지고 있으면 프로세스가 어떤 상태에 있는지 알 수 있다. 컴퓨터 시스템에서는 multi-tasking이 이루어진다. 즉 , 프로세스들이 번갈아 가면서 실행된다. 따라서, 현재 프로세스의 문맥을 알지 못하면 다음번에 CPU 자원을 사용할 때 실행할 수 없을 것이..
동기식 입출력 (Synchronous I/O) sync -> 시간적으로 서로 맞춘다 !! 립싱크할때의 그 싱크를 생각해보면 쉽다. I/O 요청 후 입출력 작업이 모두 완료 된 후에 CPU 제어가 사용자 프로그램에 넘어간다. 구현 방법 1 I/O 끝날때까지 CPU를 낭비시킨다. -> 한번에 하나의 I/O만 일어난다. 구현방법 2 -> 보통 동기식 입출력을 구현하는 방식 I/O 가 완료될 때까지 해당 프로그램에게서 CPU빼앗고 I/O 처리를 기다리는 줄에 그 프로그램이 대기한다. 다른 프로그램에게 CPU를 준다. ex) 정말로 스토리지에 결과값이 잘 write되었는지 확인해야만 다음 작업을 할 수 있는 경우 동기식으로 수행해야 할 것이다. 비동기식 입출력 (Asynchronous I/O) I/O가 시작된 후..
컴퓨터 시스템 구조 컴퓨터 시스템 구조는 크게 CPU, 메모리, I/O Device, Disk로 구성되어 있다. Memory : CPU의 작업공간 CPU에서 하는 일을 실행하는 공간이다. CPU : 매 clock cycle마다 기계어를 하나씩 읽어서 실행하게 된다. I/O Device : keyboard, 마우스, 모니터 등의 Input / Output 기계 장치 Disk : 보조 기억 장치이면서도 I/O 장치라고도 볼 수 있다. 메모리를 읽어들이는 Input Device이면서 처리 결과를 저장하는 Output Device이기 때문이다. Device Controller : 각각의 I/O 장치에는 Device Controller가 붙어있다. 이 Device Controller가 각각의 I/O장치를 관리한..
anaconda 다운로드 https://www.anaconda.com/download#macos Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com bash shell profiled을 업데이트한다. source ~/.bash_profile conda 가상환경 생성하기 --name "가상환경이름" --python="버전" $ conda create --name "airflow" python="3.10.9" conda 가상환경 삭제하기 conda remo..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr heap 을 사용해서 효율적으로 푸는 것이 중요했던 문제 !! import heapq def solution(scoville, K): answer = 0 queue = [] # 초기 힙큐 구성 for i in scoville: heapq.heappush(queue, i) while queue[0] < K: heapq.heappush(queue, heapq.heappop(queue) + heapq...
AWS PrivateLink 로 구동되는 자체 VPC 엔드 포인트 서비스를 생성하고, 이 VPC 에 액세스할 수 있게 한다. 다음과 같은 아키텍처를 직접 구현해보는 실습을 정리해 보았다 VPC 내에 Public Subnet 과 Private Subnet을 각각 하나씩 만든다. Public Subnet 내에 ec2 instance 하나를 띄우고, Private Subnet 내에도 ec2 instance를 하나 띄운다. Public Subnet 에서 생성한 ec2 instance인 Bastion host에서는 Private subnet의 Instance에 접근이 가능하다. 그런데 Private Subnet Instance의 경우, 외부로 트래픽이 나가도록 설정되어 있지 않다. 이러한 경우에, Private ..
minjiwoo
MJ workspace