[AWS]간단한 웹 애플리케이션 서버 구축하기(3)
·
Dev Tool/AWS
각각의 서브넷A와 서브넷C에 인스턴스를 생성해 둔 상태이니 로드 밸런서를 사용하여 트래픽을 분산시켜보자. AWS의 ELB(Elastic Load Balancing)은 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP주소, Lambda 함수와 같은 여러 대상에 자동으로 분산시켜준다. 이 덕분에 여러 가용 영역에서 애플리케이션의 부하를 처리할 수 있다. ELB가 제공하는 로드 밸런서는 Application Load Balancer, Network Load Balancer, Gateway Load Balancer, Classic Load Balancer 네 가지로 모두 애플리케이션의 내결함성에 필요한 고가용성, 자동 조정, 보안성을 갖추고 있다. 각각의 로드밸런서에 대한 설명은 아래..
[AWS]간단한 웹 애플리케이션 서버 구축하기(2)
·
Dev Tool/AWS
네트워크 구성이 완료 되었으니 이제 본격적으로 서버 구축을 시작해보자. 서버는 EC2를 사용하여 가상 서버를 구축할 예정이다. EC2는 갑작스러운 트래픽 증가와 같은 변동 사항에도 신속하게 규모를 확장하거나 축소할 수 있기 때문에 서버 트래픽 예측 필요성이 줄어든다. 이 덕분에 개발자는 좀 더 본래의 일에 집중할 수 있기 때문에 아주 아주 유용한 서비스이다.웹 서버 생성 EC2 인스턴스 생성 AWS 에서 EC2를 검색 후 인스턴스 생성 페이지에 들어가면 생성할 수 있다. 인스턴스 이름은 목적에 맞게 설정하여 헷갈림을 줄이는게 좋다. 현재 나는 따로 AMI를 생성해두지 않은 상태이므로 프리티어에서 사용가능한 것을 선택해주었다. 여기서 AMI(Amazon Machine Image)란 인스턴스를 생성하는데 필..
[AWS]간단한 웹 애플리케이션 서버 구축하기(1)
·
Dev Tool/AWS
앞서 서버리스로 웹 애플리케이션을 구축하는 과정을 간단히 살펴보았었다. 이번엔 서버를 직접 생성해서 웹 애플리케이션을 구축하는 과정에 대해서 실습해보고 그 과정에 대해서 학습해보고자 한다. 이를 위해 aws의 EC2와  VPC, ELB를 활용할 것이며 아래와 같은 순서로 구축해 나갈 예정이다.네트워크 구성vpc 생성추가 서브넷 생성라우팅 테이블 편집보안 그룹 생성웹 서버 생성인스턴스 생성AMI 생성AMI 기반 인스턴스 생성로드 밸런서 구성로드 밸런서 생성네트워크 구성 VPC 생성vpc를 이용하면 사용자가 정의한 가상의 네트워크 공간 안에서 aws 리소스를 시작할 수 있다. VPC 생성 마법사를 사용하면 손쉽게 vpc를 생성할 수 있다. 지금은 프라이빗 서브넷 없이 퍼블릭 서브넷 1개만을 생성할 것이기 때..
[AWS]서버리스로 간단한 웹 애플리케이션 구축하기(2)
·
Dev Tool/AWS
앞서 정리한 개념을 바탕으로 본격적인 실습을 진행해보자DynamoDB 생성우선, 서비스에 연결할 테이블을 생성해보자. 테이블명은 hello-member이며 name을 기본키로 갖는다. 기본적인 설정을 마치고 생성을 완료한 뒤 잠시 기다려보면 무사히 생성이 완료된 것을 확인할 수 있다Lambda 생성다음으로는 Lambda 생성 메뉴로 들어가서 Create function을 클릭한다. Function name과 Runtime을 설정해주고 Architecture는 기본값은 x86으로 설정해주었다. Permissions는 functino과 dynamodb 연결 시 권한 해결을 위해 Simple microservice permissions DynamoDB를 선택해 주었다. 생성이 끝나면 코드를 작성해주면 된다. ..
[AWS] 서버리스로 간단한 웹 애플리케이션 구축하기(1)
·
Dev Tool/AWS
서버리스 컴퓨팅이란?서버리스(serverless)는 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델이다. 여기서 주의할 점은 서버리스 모델은 서버가 없는게 아니고 서버가 존재하긴 하지만, 서버 기반 개발과는 달리 추상화 되어 있는 것이라는 점이다.서버리스 환경에서는 클라우드 제공 업체가 서버 인프라에 대한 프로비저닝, 유지 관리, 스케일링 등의  서버 관리 작업을 처리해주며, 개발자는 배포를 위해 코드를 컨테이너에 패키징하기만 하면 된다. 이렇게 배포된 서버리스 애플리케이션은 배포되고 나면 필요에 따라 자동으로 스케일업 혹은 스케일 다운이 된다. 또한 서버리스 오퍼링은 일반적으로 이벤트 기반 실행 모델을 통해 온디맨드로 미터링되기 때문에 사용하..
[AWS] VPC와 서브넷
·
Dev Tool/AWS
VPC란?  VPC(Virtual Private Cloud)란 AWS에서 논리적으로 생성하는 독립적인 네트워크이다. 사용자는 VPC 내에서 IP대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹, ACL등을 생성하고 제어할 수 있다.서브넷(Subnet)이란?  서브넷은 VPC의 IP 주소를 나누어 리소스가 배치되는 물리적인 주소 범위를 뜻한다. VPC가 논리적인 범위를 의미한다면, 서브넷은 VPC안에서 실제로 리소스가 생성될 수 있는 네트워크 영역이라고 생각하면 된다.하나의 VPC에 N개의 서브넷을 가질 수 있으며 하나의 AZ에만 생성이 가능하다.아래 그림처럼, 여러 AZ에 걸쳐서 서브넷을 생성할 수 없다는 말이다. 즉, 서브넷은 하나의 가용영역(AZ) 안에 종속되어야 한다.VPC..
[AWS] EC2 개념 이해하기
·
Dev Tool/AWS
EC2(Elastic Compute Cloud)란?  Amazon Elastic Compute Cloud(EC2)는 아마존 웹 서비스의 하나로, 가상 서버를 제공하는 서비스이다. 이 서비스를 사용하면 웹 서버, 애플리케이션 서버, 데이터베이스 서버 등 다양한 용도로 가상 컴퓨팅 리소스를 빠르게 확보할 수 있다. 여기서 가상 서버를 "인스턴스"라고 하며, 이를 시작하거나 중지하고, 필요에 따라 스케일링하고, 네트워킹 및 보안 설정을 구성할 수 있다. 또한 필요에 따라 Auto Scaling과 같은 기능을 사용하여 트래픽이나 워크로드 변화에 따라 자동으로 인스턴스 수를 조정할 수 있다. 이러한 유연성과 확장성으로 EC2는 다양한 워크로드 및 애플리케이션을 호스팅하는 데 사용된다.AWS EC2 인스턴스를 생성..
[AWS] AWS(Amazon Web Service)와 클라우드 컴퓨팅
·
Dev Tool/AWS
클라우드 컴퓨팅  클라우드 컴퓨팅은 인터넷을 통해 컴퓨터 시스템의 자원을 제공하고 관리하는 컴퓨팅 서비스이다. 이는 사용자가 자신의 컴퓨터나 데이터 센터에 대한 직접적인 관리와 유지보수를 하지 않고도 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 분석, 인공지능과 같은 컴퓨팅 자원을 활용할 수 있게끔 해준다. 클라우드 컴퓨팅은 다음과 같은 특징을 가진다.자원 공유: 클라우드 컴퓨팅은 여러 사용자가 하나의 물리적인 자원을 공유하는 것을 허용한다. 이로써 비용을 절감하고 자원의 효율성을 높일 수 있다.탄력성: 클라우드 컴퓨팅에서는 필요한 만큼의 자원을 필요한 때에 빠르게 확장하거나 축소할 수 있다. 이는 사용자가 트래픽이나 작업 부하에 따라 자원을 동적으로 조정하여 효율적으로 운영할 수 있게 해준다..