부트캠프 개발일기/Cloud6 77일차: 운영 전략 프로그래밍에 있어 운영 전략이란, 프로젝트를 효율적으로 관리하기 위해 적용할 수 있는 전략을 의미한다. ❯ 프록시 서버(Proxy Server) Proxy는 '대리'라는 뜻을 가진다. 프록시 서버는 클라이언트와 서버가 소통할 때 자신을 통해서 소통할 수 있도록 해주는 일종의 대리 서버이다. 크게 두가지 종류로 나뉜다. Forward Proxy 클라이언트 가까이에 위치한 프록시 서버로 클라이언트를 대신해서 서버에 요청을 전달한다. 캐싱을 제공해서 서비스를 빠르게 이용할 수 있도록 해준다. 캐싱: 첫 응답 결과를 캐시에 저장해놓고, 여러 클라이언트가 동일한 요청을 보내는 경우 해당 내용을 클라이언트에게 리턴해줌 프록시 서버를 거친 후 서버에 요청이 도달하므로 서버가 클라이언트 IP를 추적할 수 없다. Rev.. 2023. 6. 2. 76일차: Github Actions 배포 자동화를 하는 방법에는 여러가지가 있다. 어제는 AWS CodeBuild, CodeDeploy, CodePipeline을 이용한 방법을 학습했다. 오늘은 Github Actions를 사용하는 방법에 대해 알아본다. ❯ Github Actions Github Actions는 Github이 공식적으로 제공하는 빌드, 테스트, 배포 파이프라인을 자동화하는 CI/CD 플랫폼이다. 레포지토리에 발생할 수 있는 이벤트를 트리거로 설정하여 Workflow를 구성할 수 있다. Workflow는 자동화 프로세스로, 자체 가상 머신이나 컨테이너 내부에서 실행된다. 워크플로우는 .yml(yaml) 파일에 의해 구성되며 기능별로 여러개의 워크플로우를 만들수도 있다. .github/workflows 디렉토리 이하에 위치하.. 2023. 6. 1. 75일차: AWS 배포 자동화(Automated Deployment) ❯ 배포 자동화(Automated Deployment) 배포를 위해서는 소스코드를 빌드하고 배포하는 과정을 거쳐야한다. 배포 자동화는 이러한 과정을 자동으로 진행하는 것을 말한다. 배포를 자동화함으로써 수동적이고 반복적인 과정을 자동화하여 시간과 휴먼에러를 줄일 수 있다. 배포 자동화는 파이프라인 구조를 통해 설명할 수 있다. 크게 Source stage, Build stage, Deploy stage 세개 구조로 구분된다. 현재 실습을 AWS를 사용해 진행중인데 AWS CodeBuild, CodeDeploy, Pipeline 등의 개발자 도구를 통해 비교적 간단하게 구현할 수 있다. ❯ 배포 자동화 실습 1. 환경 설정 AWS의 EC2를 통해 배포 자동화를 하기 위해서는 적절한 환경을 설정해주어야한다... 2023. 5. 31. 74일차: Docker ❯ Docker 애플리케이션 실행, 개발 등을 할 때 중요한 부분 중 하나가 바로 '환경'이다. 애플리케이션에 따라 필요한 프로그램의 버전과 종류가 다를 수 있다. 이러한것들을 구애받지 않고 작업할 수 있도록 하는 것이 바로 컨테이너 기술이다. 일상 생활에서 컨테이너는 물건을 담고, 옮기는 용도로 사용한다. 이처럼 컨테이너도 소프트웨어를 포장, 수송한다고 생각할 수 있다. 컨테이너에 특정 실행 환경을 설정해줌으로써 적절한 환경을 유지할 수 있다. 하나의 컨테이너는 다른 컨테이너와 격리되는데, 이를 통해 특정 컨테이너에서 작동하는 프로세스는 그 컨테이너 안에서만 접근할 수 있으며, 다른 컨테이너에 영향을 주지 못한다. (완전히 격리되어있다.) 따라서 컨테이너 하나에 하나의 IP 주소가 할당되어 별도의 네트.. 2023. 5. 30. 73일차: 3 Tier Architecture 배포 실습 ❯ 서버 배포 EC2를 통해 서버를 배포하게 된다. 처음 EC2 인스턴스를 생성하면 우리가 컴퓨터를 새로 샀을때처럼 깨끗한 상태인데, 필요한 개발 환경을 먼저 구축하고 서버를 배포한다. EC2 인스턴스에서 Session Manager를 실행하여 bash 쉘, 홈경로(~) 로 이동하여 아래 실습을 진행했다. 패키지 매니저가 관리하는 패키지 정보를 최신 상태로 업데이트 하기 위해 아래 코드를 실행한다. $ sudo apt update 현재 java 11 버전을 사용하고 있으므로 아래 코드를 입력하여 java를 설치한다. $ sudo apt install openjdk-11-jre-headless 애플리케이션 코드를 업로드(클론) 해주고, 빌드 후 실행해주면 애플리케이션이 실행된다. java -jar buil.. 2023. 5. 26. 72일차: 배포(AWS) ❯ 클라우드 컴퓨팅 가상의 컴퓨터를 대여하여 사용한다고 생각하면 이해하기 쉽다. 필요한 경우 컴퓨터 능력을 조절 가능하며 사용한 만큼의 요금을 지불하면 된다. 또한 스냅샷을 사용해 다른 컴퓨터로의 이주가 가능해 관리하기 용이하다. 클라우드 서비스의 종류는 다음과 같이 구분할 수 있다. SaaS(Software as a Service): 당장 사용 가능한 소프트웨어를 제공하는 방식이다. ex.구글 드라이브, Dropbox PaaS(Platform as a Service): 애플리케이션 개발 및 배포를 위한 플랫폼을 제공한다. ex. Heroku, AWS Elastic Beanstalk IaaS(Infrastructure as a Service): 가상화된 컴퓨터 리소스를 제공하는 방식이다. ex. Amaz.. 2023. 5. 25. 이전 1 다음