AWS

    AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 실습

    AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 실습

    AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 이론AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 실습 1. 아키텍처 개요 이번 실습으로 AWS 기본이 되는 컴퓨팅 서비스인 EC2 를 이용한 웹 애플리케이션을 구축한다.트래픽이 들어오면 로드 밸런서로 요청을 분산시켜 여러 EC2에 부하를 줄이도록 한다. 이후 모니터링과 오토스케일링, 정적 웹 사이트 호스팅을 추가로 사용하도록 한다.2. 네트워크 구성하기2-1. VPC 생성하기1. VPC 마법사 시작을 클릭하여 VPC 구성을 쉽게 한다. 2. VPC 설정에서 아래 사진처럼 선택한다. 이름은 VPC-Lab , CIDR 블록은 기본값인 10.0.0.0/16 으로 설정 3. 가용영역(AZ)는 1개를 선택하고, 가용영역은 ap-northeast-2a 로 선택..

    AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 이론

    AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 이론

    AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 이론AWS 핵심 서비스로 웹 애플리케이션 구축하기 - 실습 이번 실습으로 아래 아키텍처 설계에 따른 인프라 구축을 해본다.그 전에 이론 부분들을 살펴보자   1. AWS Region (리전)전세계에 AWS 데이터센터가 클러스터 형태로 위치한 물리적 위치1개의 리전은 고가용성, 확장성, 내결함성을 위해 3개 이상의 AZ로 구성 2. Availability Zones (가용영역, AZ)모든 AWS Region은 지리적 영역 내에서 격리되고 물리적으로 분리된 최소 3개의 AZ로 구성모든 가용 영역은 AWS 리전의 중복 전력, 네트워크 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성AZ 간에는 높은 대역폭, 10ms 이하 짧은 지연시간의 네트워크로 구성..

    AWS Serverless(서버리스)로 서버 고민 없이 웹 애플리케이션 구축하기 #2

    AWS Serverless(서버리스)로 서버 고민 없이 웹 애플리케이션 구축하기 #2

    서버리스로 서버 고민없이 웹 애플리케이션 구축하기 #1서버리스로 서버 고민없이 웹 애플리케이션 구축하기 #2 1편에서 봤듯이 "친구들의 기분 상태를 랜덤으로 매칭하는 서비스"를 서버리스로 구축해보자.  1. 서버리스 아키텍처 개요비즈니스 로직을 AWS Lambda(람다) 함수에 작성하고 람다가 실행되면 DynamoDB에 친구들의 기분 상태 데이터를 저장한다. API Gateway를 통해 람다 함수를 접근할 수 있는 URL을 생성하고 S3에 HTML을 업로드하여 S3 정적 웹 사이트 호스팅 기능으로 웹 사이트를 호스팅한다.(자세한 내용은 1편에)  2. DynamoDB완전관리형 AWS의 NoSQL 데이터서비스를 이용하여 데이터를 저장하기 위해 생성한다.서비스에 연결할 DynamoDB 테이블을 만들면 멤버의..

    AWS Serverless(서버리스)로 서버 고민 없이 웹 애플리케이션 구축하기 #1

    AWS Serverless(서버리스)로 서버 고민 없이 웹 애플리케이션 구축하기 #1

    서버리스로 서버 고민없이 웹 애플리케이션 구축하기 #1서버리스로 서버 고민없이 웹 애플리케이션 구축하기 #2 AWS 대표 서비스인 Lambda(람다)를 사용하여 서버 고민 없이 간단한 웹 애플리케이션을 구축하는 방법을 다뤄본다.우리가 만들 웹 서비스는 "친구들의 기분 상태를 랜덤으로 매칭하는 서비스"이다.  1. Lambda와 DynamoDB를 활용한 데이터 처리비즈니스 로직을 AWS Lambda 함수에 작성하고 이 Lambda가 실행될 때마다 친구들의 기분 상태 데이터를 랜덤하게 생성하여 DynamoDB에 저장한다. Lambda는 서버를 직접 관리할 필요 없이 이벤트가 발생할 때 자동 실행된다. 2. API Gateway를 통한 인터넷 연결Lambda 함수를 API Gateway와 연결하여 인터넷에서 ..

    AWS TechCamp란?

    AWS TechCamp란?

    최근 AWS Builders Korea Program이 새롭게 변화한 AWS TechCamp에 참여하면서 느낀 점을 공유하고자 한다.기존 프로그램에서는 이론과 간단한 실습을 중심으로 진행되었지만, 이번 테크캠프는 한층 더 강화된 학습 경험을 제공했다.실시간으로 과외를 받는 듯한 몰입감이 느껴졌고, AWS 서비스를 깊이 이해하고 실전에서 바로 적용해보고 싶다는 열정이 생겼다.  어떻게 진행되나요?TechCamp는 분기별로 3일간의 세션으로 구성된다.매년 3월(Modern App), 6월(AI/ML), 9월(Data), 11월(Every App)을 주제로 진행된다.하루 두 번, 오전 9~12시, 오후 2~5시까지 강의가 열린다.강의는 기초 과정 (레벨 100), 기본 과정 (레벨 100 - 200) , 심화..

    CodeDeploy - CodePipeline 만드는 도중 실패 및 설명

    CodeDeploy - CodePipeline 만드는 도중 실패 및 설명

    1. 실패 이유 스프링부트 프로젝트 최상단에 appspec.yml 파일을 만들지 않아서 Deploy가 실패했다.appspec.yml은 CodeDeploy에서 배포 관리하는데 사용하는 파일이다.이 파일에 정의된 일련의 수명 주기(lifecycle) 이벤트 후크로 각 배포를 관리하는데 사용된다.AWS 공식문서 - CodeDeploy 애플리케이션 사양 (AppSpec) 파일 을 참고하면 좋다. 2. appspec.yml 생성위 규칙대로 정의를 하면 되고, 나는 크게 정의할 필요가 없기에 간단하게 적어본다. 이렇게 생성 후 Github에 추가하면 자동으로 우리가 만들었던 CodePipeline이 작동한다.그럼 Source -> Build -> Deploy 가 자동으로 실행하게 된다. 3. 성공나는 codepip..

    CodeBuild - CodePipeline 만드는 도중 build 실패

    CodeBuild - CodePipeline 만드는 도중 build 실패

    1. 실패 이유 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: ./gradlew bootJar. Reason: exit status 1 예전 깃액션(Github Actions)를 사용했을 때와 비슷한 에러여서 금방 찾기도 했고, 메시지에도 적혀져 있어서 바로 해결했다.아무래도 빌드 사양에서 런타임 버전이 선택되지 않아서 기본값(default) 버전으로 java compile을 시도했지만 버전이 달라 실패했다.현재 빌드하려는 스프링부트 프로젝트는 JDK 21 버전을 사용하고 있는데, AWS에서는 기본값으로 다른 버전을 사용하나 보다.그래서 `./graldew bootJar` 가 성공적으로 종..