2024/01/18 13

(AWS기초) Amazon EC2로 첫 워크로드 시작하기

AWS 컴퓨팅 서비스 3가지 1. Amazon EC2(클라우드에 위치한 가상 서버 인스턴스) 2. Amazon ECS, EKS, Fargate(Docker 컨테이너를 대규모로 실행하고 관리할 수 있는 서비스) 3. AWS Lambda(이벤트에 대한 응답으로 코드를 실행하는 서버리스 컴퓨팅) 등이 있음 Amazon EC2 - Elastic Compute Cloud의 약자로, Limux, Mac, Windows 등 다양한 OS 환경을 지원하는 가상 서버 서비스 - 사용자들의 다양한 워크로드를 제공하기 위해 여러 기능과 아키텍쳐 제공 EC2의 호스트 가상화 - 온프레미스 환경에서 하이퍼바이저를 통해 물리서버를 가상화하여 가상 머신을 사용하는 것처럼, AWS에서는 EC2를 통해 글로벌 데이터센터들의 물리 서버를..

AWS/AWS builders 2024.01.18

(AWS기초) 서버는 맡겨두세요! 스타트업을 위한 AWS로 쉽고 빠르게 웹 애플리케이션 구축하기

서버리스란? 1. 물리 장비 물리머신 상에서 워크로드를 운영했음, 이 경우 소프트웨어를 자체적으로 보유한 서버에 직접 설치하여 운영, 이런 물리 서버를 운영하는 경우 서버를 구매하고 배송받는 데도 시간이 오래 걸리지만, 설치하고 운영하는 데도 오랜 시간이 소요됨, 또한 급격한 트래픽 변화에 즉각적으로 대응하는 것이 어려웠음 - 추측에 기반한 계획 필요 - IDC에서 수년간 운영 - 높은 투자 비용 - 낮은 혁신 요인 - 수개월의 배포 기간 2. 가상 머신(VM) 그 다음에는 클라우드 환경으로 이동하여 Amazon EC2와 같은 가상머신을 이용하는 형태로 변화, 하드웨어를 직접 관리하지 않고, 요청에 맞게 인스턴스를 유연하게 확장하고 축소하는 스케일링이 가능해짐 - 하드웨어 독립성 - 더 빠른 프로비저닝 ..

AWS/AWS builders 2024.01.18

(AWS기초) Amazon VPC와 On-premise 연결하기

AWS Networking Connectivity AWS 클라우드는 고객 가상 데이터센터인 VPC를 중심으로 다양한 자원들을 연결하고 접근 VPC를 어떤 리전에 생성할지 정해야 하며, 해당 VPC가 얼마나 많은 IP주소를 가질 수 있는지 CIDR블록으로 설정해주어야 함 VPC가 설정된 리전 안에는 가용영역이 존재, 가용영역은 여러개, 서로 논리적으로 분리되어 있음 불가피하게 일부 가용영역이 불능상태가 되더라도 나머지 영역에서 서비스를 이어나갈 수 있음 여러개의 가용영역을 활용하여 자원을 중복 배치하면 전체 서비스의 높은 가용성을 유지할 수 있게 됨 VPC 네트워크는 더 작은 네트워크, 서브넷(subnet)으로 나눌 수 있음 서브넷은 VPC 전체의 CIDR블록 내에서 더 작은 범위의 CIDR블록을 나눠갖게..

AWS/AWS builders 2024.01.18

(AWS기초)초보자를 위한 컨테이너 시작하기

컨테이너를 왜 사용하는가? 표준화 이전의 운송: 중구난방식, 공간 낭비, 관리 불편 컨테이너: 표준화된 스토리지 단위 컨테이너란? : 가상머신에서 운영체제가 빠진 것, 운영체제는 공유해서 쓰되 나머지 부분(격리된 환경의 구성, 설정(config), 코드, 종속성, 환경, 라이브러리, 런타임 엔진 등)을 하나의 패키지로 만든 다음 컨테이너들을 배포하는 것 컨테이너의 장점? : 하나의 이미지를 가지고 반복적으로 컨테이너를 만들 수 있음, 독립적인 환경 유지 가능, VM보다 더 빠른 가동/중단 속도(배포되는 데 대부분 2~3초면 실행 가능(이미지를 다운받았다는 전제 하에), 이미지 다운 속도 포함 10초 이내, 중단도 5초 이내), 이동성, 확장성 컨테이너가 각광받는 이유? : Micro Service Arc..

AWS/AWS builders 2024.01.18

AWS 기초

클라우드 컴퓨팅이란? 클라우드 컴퓨팅을 사용하면 인프라를 더는 하드웨어로 사용하지 않고, 소프트웨어로 생각하고 사용할 수 있다. 클라우드의 장점은? 1. 초기비용을 가변비용으로 바꿀 수 있다. 초기비용은: 기술 리소스를 사용하기 전에 미리 투자한 비용이다. 가변비용은: 사용한 만큼만 지불하는 비용을 의미한다. 2. 비용을 최적화할 수 있다. 데이터센터의 유지비를 지출할 필요가 없게 되고, 이로 인한 잉여 리소스를 애플리케이션과 고객에 더 집중할 수 있게 된다. 3. 용량을 추정할 필요가 없다. 필요한 인프라 용량을 추정할 필요가 없고, 필요에 따라 축소 및 확장할 수 있다. 4. 거대한 규모의 경제를 활용할 수 있다. 인프라를 소유할 때보다 가변비용이 낮아지고, 사용고객이 많아질수록 할인율이 높아지는 구..

AWS/AWS builders 2024.01.18

(백준)9086.문자열

문제 문자열을 입력으로 주면 문자열의 첫 글자와 마지막 글자를 출력하는 프로그램을 작성하시오. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으며 문자열의 길이는 1000보다 작다. 출력 각 테스트 케이스에 대해서 주어진 문자열의 첫 글자와 마지막 글자를 연속하여 출력한다. 풀이(?) 맞게 코딩한 것 같은데, 풀이는 틀렸다고 나온다. 테스트 케이스의 문자열들을 받아 와서, split() 기능으로 배열로 저장한 다음, replace()기능을 이용하여 개행문자들을 없애고, 다시 split() 함수로 새로운 배열로 저장하여, 그 배열의 첫 문자와 마지막 ..

(백준) 10811. 바구니 뒤집기

문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다. 도현이는 앞으로 M번 바구니의 순서를 역순으로 만들려고 한다. 도현이는 한 번 순서를 역순으로 바꿀 때, 순서를 역순으로 만들 범위를 정하고, 그 범위에 들어있는 바구니의 순서를 역순으로 만든다. 바구니의 순서를 어떻게 바꿀지 주어졌을 때, M번 바구니의 순서를 역순으로 만든 다음, 바구니에 적혀있는 번호를 가장 왼쪽 바구니부터 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주..

(백준)5597. 과제 안 내신 분...?

문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다. 출력 출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호를 출력한다. 풀이 for문을 몇 개를 쓰는지 모르겠다... 시간이 되면 더 나아질 것을 기대하며! 이 문제에 대한 내 나름의 풀이 방법은 1. 1부터 30까지의 count배열..

(백준)2562. 최댓값

문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. 풀이 let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString().split("\n"); let answerArray = new Array(inpu..

(백준)2439. 별 찍기

문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 언제 봐도 항상 새로운 별 찍기 문제다. 처음 풀었을 때는 이중 반복문으로 풀었는데, 이번에는 모든 배열의 값이 공백문자(" ")로 초기화된 배열을 만든 다음(answerValue[]) 해당 배열을 정답을 나타내기 위한 배열에 할당하여(answerArray[]) 마지막에 해당 값을 join()으로 합쳐 표시하는 방법으로 풀어 보았다. let fs = require("fs"); let input = fs.readFileSync("/dev/s..