서버(10)
-
AWS 기존 EC2 인스턴스에 스냅샷 복원하기
AWS EC2 인스턴스를 사용하다 보면 아래와 같은 상황이 발생할 수 있습니다. 복잡한 환경설정을 구성하다가 패키지가 꼬여버린 상황명령어를 잘못 입력하여 시스템의 일부가 망가진 상황현재 상황상 급하게 특정 시점의 서버 환경으로 되돌려야하는 상황이외에도 개발을 진행하다 보면 다양한 상황이 발생할 수 있습니다. 기존의 온프레미스(On-Premise) 환경에서는 위와 같은 상황에 대처하기가 매우 힘들었습니다.시간과 인력 및 비용이 굉장히 많이 드는 작업이었습니다. 하지만 클라우드 환경이 보급되면서 위와 같은 상황 대처를 할 수 있는 편리한 도구들을 제공하기 시작했습니다.AWS 플랫폼은 기존에 서버 개발자가 모두 수작업으로 해야 했던 많은 일들을 간편하게 제어할 수 있는 도구들을 제공하는 것입니다. 대표적인 클..
2019.02.22 -
AWS EC2 인스턴스에 Putty로 원격접속하기
EC2 인스턴스 생성 가장 먼저 EC2 인스턴스를 AWS Console창에서 생성합니다. 베이스가 될 이미지를 선택하고 다음을 누릅니다. 어떤 유형의 인스턴스를 사용할 것인지 본인의 환경에 맞게 선택합니다. 보안 그룹 구성이 중요한데 22번 포트와 SSH 프로토콜이 인바운드 규칙에 반드시 포함되어 있어야 합니다. 그래야 Putty를 통해 원격접속을 할 수 있습니다. 인스턴스를 생성하면 초기화를 거쳐 활성화 상태가 됩니다. 이때 Key Pair를 생성할 것이냐고 물어보는데 새로 키페어 생성을 선택하고 다운로드를 받습니다. Putty Gen을 이용하여 ppk 파일 생성하기 Putty로 AWS EC2 인스턴스에 원격접속하기 위해서는 .ppk 확장자를 가진 키 파일이 있어야 합니다. 이는 Putty 사이트에서 ..
2018.07.25 -
Django의 Simple Template Response와 Template Response에 대해서
Django는 강력한 웹 프레임워크입니다. 쉽게 사용할 수 있는 Python언어로 구현되어 있으며 10만개가 넘는 다양한 패키지들을 제공하기 때문에 뛰어난 생산성을 자랑합니다. Django에서는 웹 프론트엔드 구현을 더 빠르고 쉽게하기 위해서 다양한 템플릿들을 제공합니다. Django에서 기본적으로 제공하는 HttpResponse는 정적인 파일들(웹 페이지에 동적으로 데이터가 들어가지 않는 파일들)을 렌더링해서 응답으로 보내줍니다. HttpResponse는 객체가 생성됨과 동시에 이미 렌더링된 컨텐츠(HTML 파일) 받습니다. 해당 컨텐츠를 수정할 수 있지만 쉽게 수정할 수 있는 구조는 아닙니다. 이것은 마치 가게에서 이미 포장까지 완료된 상품을 바꿔달라고 하는 것과 같습니다. 만약 상품 포장을 하기 전..
2018.07.24 -
Docker 이미지 빌드시 선택적으로 Layer Caching 사용하기
DockerFile에서 이미지를 빌드하다 보면 수 많은 RUN 명령어를 사용하게 됩니다. RUN 명령어는 이미지 레이어를 만들게 되는데 이 이미지 레이어는 우리가 흔히 게임할 때 저장을 하는 세이브 포인트 역할을 합니다. 따라서 다음번에 Docker 이미지를 빌드할 때 해당 이미지를 Caching하여 사용합니다. 이는 빌드 시간을 단축시킵니다. 하지만 때때로 Cache를 사용하지 않고 명령을 수행해야 할 경우가 있습니다. 예를 들어, 원격 저장소에서 소스 코드를 받아와서 사용하는 경우 Caching된 이미지 레이어를 사용하는 경우 변경된 소스가 반영되지 않습니다. 이를 해결하기 위해 다음의 솔루션을 사용합니다. #DokerFile FROM centos/python-36-centos7 MAINTAINER ..
2018.07.23 -
Docker 명령어 RUN / CMD / Entry Point의 차이점에 대해서
RUN / CMD / Entry Point 차이점 RUN RUN 명령어를 사용하면 명령을 실행한 결과가 새로운 Layer로 저장됩니다. 그리고 이 Layer는 베이스 이미지에 추가됩니다. RUN 명령어는 주로 새로운 패키지를 설치하거나 소스를 받아서 빌드한 경우 사용됩니다. Docker는 Container를 실행할 때 Docker Image가 필요합니다. 이 Image는 이미 존재하는 다른 Docker Image나 배포된 OS를 기반으로 만들어집니다. 베이스 이미지에 Docker 명령어를 가지고 자신에게 맞는 환경을 하나 하나 얹어가는 것입니다. RUN 명령어를 사용하여 새로운 패키지가 설치하거나 새로운 명령을 실행하는 경우 베이스 이미지에 내용이 더해지는데 이것을 Layer가 더해진다고 표현합니다. L..
2018.05.31 -
Docker가 등장하게 된 배경에 대해서
과거 서버 개발은 상당히 까다로운 작업이라고 할 수 있었습니다. 대부분의 서비스가 클라이언트와 서버로 구성되어 있다는 사실에 반문을 제기할 사람은 많지 않을 것입니다. IOS나 Android 혹은 Web같은 클라이언트가 상품을 판매하는 상점이라면 서버는 판매할 상품을 만들고 배송하는 공장이라고 할 수 있습니다. 만약 공장이 갑자기 문을 닫는다면 어떻게 될까요? 아무리 이쁘게 상점을 꾸며놓는다한들 상품이 없는 상점에 고객들은 오지 않을 것입니다. 서버가 중요한 이유는 위의 예시에 나와있는 내용과 같은 맥락입니다. 데이터베이스로부터 알맞은 데이터를 효율적으로 가져다가 클라이언트에서 볼 수 있는 양식으로 가공한 뒤 보내주는 것이 서버의 역할입니다. 매우 중요합니다. 서버 개발이 되려면 다양한 프로그램, 다양한..
2018.05.30