Programming-[Infra] 31

도커 교과서(엘튼 스톤맨, 심효섭) - 4. 레지스트리, 공식 이미지와 골든 이미지

1. 레지스트리 개념 및 구성 레지스트리는 도커 이미지를 공유하는 서버이다. 도커의 기본 레지스트리는 도커 허브이며, 가장 유명한 곳이다. 도커 이미지의 구성은 아래와 같은데, 이 정보를 통해 레지스트리에서 이미지들을 다운로드 받을 수 있다. docker.io/image-company/practice:latest docker.io : 레지스트리의 도메인. 기본값은 도커 허브의 주소인 docker.io image-company: 이미지 작성자의 계정 이름. 개인 또는 단체 이름이다. practice: 이미지 레포지토리 이름. 일반적으로 애플리케이션의 이름에 해당하며 여러 버전을 가질 수 있다. latest: 이미지의 태그로 버전을 나타낸다. 기본값이 latest이다. 2. 도커 허브에 이미지 푸시해보기 로..

도커 교과서(엘튼 스톤맨, 심효섭) - 3. 멀티 스테이지 빌드, 도커 네트워크

*빌드, 컴파일과 링크 빌드는 컴퓨터가 실행할 수 있는 .exe 파일을 생성하는 작업을 말한다. 어셈블리어로 작성된 .asm 파일 -> .obj 기계어 파일로 바꾸는 과정이 컴파일이다. 이 .obj 파일들이 서로 연결되어 실행될 수 있는 .exe 파일로 묶어주는 작업을 링크라고 한다. 다시 말해 빌드는 컴파일 + 링크 과정이다. 1. 애플리케이션 빌드 해보기: 자바 소스 코드 다음은 책에서 제공하는 Dockerfile 예제 코드이다. FROM diamol/maven AS builder WORKDIR /usr/src/iotd COPY pom.xml . RUN mvn -B dependency:go-offline COPY . . RUN mvn package # app FROM diamol/openjdk WOR..

도커 교과서(엘튼 스톤맨, 심효섭) - 2. 도커 이미지 만들기

1. 도커 허브의 이미지 다운받기 docker image pull {이미지 파일 이름} 레지스트리(registry) 위 명령어로 도커 허브에 공유되어있는 이미지 파일을 받을 수 있다. 이미지 파일들이 저장된 저장소를 레지스트리라고 하는데, 도커 허브는 무료로 제공되는 공개 레지스트리이다. 이미지 파일 구성 이미지 파일은 논리적으로는 하나의 파일처럼 다뤄진다. 그러나 실제로 명령어 입력 시 아래 사진처럼 여러 파일들이 다운로드되는 것을 볼 수 있다. 각각의 파일을 이미지 레이어라고 부른다. 도커는 이미지 레이어들을 조합하여 컨테이너 내부의 파일 시스템을 구성한다. 2. 컨테이너의 환경 변수 수정하기 : 유연한 방식의 컨테이너 실행 docker container run -d -name web-ping dia..

도커 교과서(엘튼 스톤맨, 심효섭) - 1. 컨테이너 구성 환경과 원리, 기본 명령어

예제 파일 다운로드(길벗 출판사 제공) : https://github.com/gilbutITbook/080258 1. 도커의 구성환경 가상 머신 방법과 다르게, 각 컨테이너가 같은 운영체제는 공유하면서 개별 IP, 호스트, 디스크 드라이브를 갖는 형태이다. 이러면 가상 머신 방식에 비해 훨씬 빠르고 운영체제를 가상 머신 개수별로 관리해줘야하는 부담도 줄어든다. 아래에서 배울 여러가지 container를 활용한 명령어들은 운영체제가 윈도우, 맥, 리눅스 인지에 상관없이 똑같이 적용할 수 있다. 다시 말해 컨테이너는 도커를 실행하는 컴퓨터의 운영체제를 공유하므로 도커 자체의 설치 시외에 다른 프로그램용 컨테이너를 쓸때는 운영체제를 따로 신경쓰지 않아도 된다. 다만 컨테이너 내부에서 작동하는 애플리케이션은 각..

[TIL] AWS Lambda, CloudFormation, Gateway

람다 서비스 구조 AWS Lambda로 AWS에서 Function Resource를 만들어서 하나의 서비스를 처리하도록 만들 수 있다. 작은 서버와도 같아서, 기존 서비스와는 별개로 요청을 받고, 어떤 작업을 처리하고 응답을 내보낼 수 있는 구조이다. 람다는 내부 용량 제한이 있는데, 만약 이 용량 제한이 512MB라면 작업을 처리하기 위한 모든 파일을 포함하기에는 부족하다. 서버를 띄우기 위한 일부 코드와 파이썬 프로그램 등만 포함해도 512MB를 초과할 수 있다. 따라서 람다에 필요한 라이브러리 등의 코드들은 직접 포함하지 못하고 Layer라는 참조 정보만 포함하게 된다(단순하게 표현하자면 특정 라이브러리를 다운로드 받을 수 있는 URL). 실제 람다 실행 시에 Layer 정보를 참조로하여 다른 라이..

[TIL][Azure] Azure - Application Insights - Log 조회하기

목적 사용 중인 애플리케이션 서비스에서 발생한 로그를 조회하고 검색해본다. 흔히 Slf4j 라이브러리를 사용해서 애플리케이션에 로그를 남기는 경우 아래 경로에서 로그를 확인할 수 있다. 방법 1. Azure Portal - 앱 서비스 - application insights - monitoring - logs에 들어간다. 2. 추천되는 쿼리 중 아무거나 실행 버튼을 눌러 쿼리 입력창을 띄운다. 3. traces만 입력하여 시간 범위에 해당하는 모든 로그를 검색할 수 있다. 또는 파이프라인 기호 뒤에 where 문을 추가하여 로그를 상세 검색할 수 있다. 예) traces | where messages contains "로그 시에 남긴 메시지"

[Azure] Azure 정적 파일 공유. 스토리지 파일공유 SAS(공유 액세스 서명) 추가하기

1. 스토리지 만들기 정적 파일을 등록하기 위해서, Azure 스토리지 계정 서비스를 이용한다. 스토리지 계정을 추가하고, 파일 공유에 들어간다 파일 공유를 추가한다. 그리고 파일을 추가한다. 2. 파일 공유를 위한 URL 만들기(SAS) 파일 공유에서 파일을 클릭하고, URL 만들기로 최종 URL의 일부를 만든다. (URL1) 그리고 파일에 접근할 수 있는 공유 액세스 키값(SAS)을 얻어와야 한다. 허용되는 서비스/리소스 종류를 선택하고, : 1개의 파일인 경우 개체를 선택하면 된다. 시작 및 만료 날짜/시간을 지정한 후 SAS 및 연결 문자열 생성이 가능하다.(나는 5년 기한 잡음) 그러면 아래 화면에서 토큰값이 포함된 URL의 쿼리파라미터를 얻을 수 있다. SAS 토큰 이란 이름의 URL(URL2..

2020/11/11 TIL : AWS/local 서버 생성, AWS DB 생성, 서버-DB 연결

11월 11일 1. Git Flow 파악 2. 서버 및 DB 생성, 연결 항목(시간순 정렬) 방법 정보 유의점 Git flow 확립 우측 그림 참조 -upstream의 Dev repo.를 default로 설정, -local에서 본인 repo.로 업로드 시, git push origin feature#00 입력 EC2 서버 생성 및 접속 - 생성 방법은 매뉴얼 참조 - 우측 '정보'란의 퍼블릭 DNS 주소를 터미널에 입력 AWS- EC2 - 인스턴스 - 인스턴스 이름 클릭 - 연결 - SSH 클라이언트 - 퍼블릭 DNS 주소 복사 -local PC에서 .ssh 폴더에 pem key 파일 존재 -터미널의 디렉토리 위치를 .ssh 폴더로 지정 후 명령어 입력 - 플랫폼을 Ubuntu로 만들어주어야 한다. 서버..