개발이 좋아서

    AWS EC2에서 Docker를 활용해 배포해보기

    AWS EC2에서 Docker를 활용해 배포해보기

    $ sudo apt-get update && \ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ sudo apt-key fingerprint 0EBFCD88 && \ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \ sudo apt-get update && \ sudo apt-get ..

    Docker Compose를 활용해 2개 이상의 컨테이너 관리하기

    Spring Boot와 MySQL 동시에 띄워보기@RestControllerpublic class AppController { @GetMapping("/") public String home() { return "Hello, World!"; }}- 간단한 코드 작성 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: pwd1234 driver-class-name: com.mysql.cj.jdbc.Driver- application.yml 에 DB 연결을 위한 정보 작성하기 FROM openjdk:17-jdkCOPY build/libs/*SNAPSHOT.jar /app.jarE..

    Docker Compose를 활용해 컨테이너 관리하기

    - Docker Compose - 여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴이다. - compose.yml 파일을 만들어 작성한다.services: websever: container_name: webserver image: nginx ports: - 80:80$ docker compose up # 포그라운드에서 실행$ docker compose up -d # 백그라운드에서 실행# compose.yml에 정의된 컨테이너 중 실행 중인 컨테이너만 보여준다. $ docker compose ps # compose.yml에 정의된 모든 컨테이너를 보여준다.$ docker compose ps -a- 컨테이너를 확인할 수 있다. ..

    Dockerfile 활용해 이미지 직접 만들기

    Dockerfile 활용해 이미지 직접 만들기

    Dockerfile - Docker 이미지를 만들게 해주는 파일이다. FROM - 베이스 이미지를 생성하는 역할을 한다.- Docker 컨테이너를 특정 초기 이미지를 기반으로 추가적인 셋팅을 할 수 있다. 여기서 얘기한 '특정 초기 이미지'가 곧 베이스 이미지이다.# 문법FROM [이미지명]FROM [이미지명]:[태그명] JDK 17 베이스 이미지로 컨테이너 띄워보기# JDK 17FROM openjdk:17-jdk- 반드시 Dockerfile 로 만들어야 한다. $ docker build -t my-jdk17-server .- Dockerfile로 이미지 생성하는 문법- Dockerfile을 만든 경로에서 명령어 입력한다. 그래서 뒤에 . 을 찍어 상대경로로 맞추어준다. $ docker run -d my..

    Docker Volume(도커 볼륨)을 활용해 데이터 유실 방지하기

    컨테이너가 가진 문제점- 프로그램에 기능이 추가되면 새로운 이미지를 만들어서 컨테이너를 실행시켜야 한다. 이 때, Docker는 기존 컨테이너에서 변경된 부분을 수정하지 않고, 새로운 컨테이너를 만들어서 통째로 갈아끼우는 방식으로 교체를 한다. 이런 특징 때문에 기존 컨테이너를 새로운 컨테이너로 교체하면, 기존 컨테이너 내부에 있던 데이터도 같이 삭제된다. Docker Volume(도커 볼륨) - 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법이다.- 볼륨은 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용하는 형태이다. 볼륨을 활용해 MySQL 컨테이너 띄우기1. MySQL 컨테이너 띄우기$ cd /Users/zoaseo/Documents/Develop$ m..

    Docker CLI 익히기

    이미지 관련 CLIdocker pull nginx //이미지 다운받기docker pull nginx:stable-alpine3.19-perl //뒤에 태그명을 넣으면 해당 버전을 다운받을 수 있다.docker image ls //다운받은 이미지 조회docker image rm xxxxx //이미지 삭제//뒤에 이미지 ID를 적으면 된다. ID가 길어서 일부만 적어도 해당 ID의 이미지를 삭제해준다. ID대신 명을 입력해도 된다.docker image rm -f xxx //중단된 컨테이너의 이미지를 삭제한다.docker image rm $(docker images -q) //컨테이너에서 사용하고 있지 않은 전체 이미지를 삭제한다.docker image rm -f $(docker images -q) //중단..

    Docker란?

    Docker를 왜 쓰는 것일까?- 이식성: 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 Docker의 장점매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다.Docker - 컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다. 컨테이너(Container) - 하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다. 여기서 얘기하는 미니컴퓨터를 보고 Docker에서는 컨테이너(Container)라고 부른다. 컨테이너(Container)의 독립성디스..

    파일 및 이미지 업로드 (S3)

    파일 및 이미지 업로드 (S3)

    S3 - 파일 저장 서비스이다. 1. S3 버킷 생성하기- 버킷(Bucket) : S3에서 여러 개의 저장소를 만들 수 있다. 여기서 하나의 저장소를 버킷(Bucket)이라고 부른다.- 객체(Object) : S3에 업로드한 파일을 보고, S3에서는 파일이라 부르지 않고 객체(Object)라고 부른다. 즉, 객체란 S3 버킷에 업로드된 파일을 의미한다. 2. 버킷에 정책 추가하기- 정책(Policy) : 권한(Permission)을 정의하는 JSON 문서를 의미한다. AWS는 기본적으로 대부분의 권한이 주어져있지 않다. AWS의 특정 소스에 접근하려면 권한을 허용해주어야 한다. 권한을 허용할 때 작성해야 하는 것이 정책이다. 3. S3에 파일 업로드할 수 있도록 IAM에서 액세스 키 발급받기- 기본적으로..

    데이터베이스 연결하기 (RDS)

    데이터베이스 연결하기 (RDS)

    RDS(Relational Database Service) - 관계형 데이터 베이스 서비스이다. RDS 생성하기- RDS에서 데이터베이스를 생성한다. 보안 그룹 설정하기 파라미터 그룹 추가하기- 편집에서  character_set_client / character_set_connection / character_set_database / character_set_filesystem / character_set_results / character_set_server 에 utf8mb4로 수정해서 변경 사항 저장- 편집에서 collation_connection / collation_server 에 utf8mb4_unicode_ci로 수정해서 변경 사항 저장- 편집에서 time_zone 에 Asia/Seoul로..

    HTTPS 연결하기 (ELB)

    HTTPS 연결하기 (ELB)

    ELB(Elastic Load Balancer) - 트래픽(부하)을 적절하게 분배해주는 장치이다. 로드밸런서(Load Balancer)라고 부른다. SSL/TLS - HTTP를 HTTPS로 바꿔주는 인증서이다.- SSL/TLS 인증서를 활용해 HTTP가 아닌 HTTPS로 통신할 수 있게 만들어준다. HTTPS를 적용시켜야 하는 이유?보안적인 이유 - 데이터를 서버와 주고 받을 때 암호화를 시켜서 통신을 한다.사용자 이탈 - 믿음직스럽지 못하다고 느낀다.※ HTTPS 인증을 받은 웹 사이트가 백엔드 서버와 통신하려면, 백엔드 서버의 주소도 HTTPS 인증을 받아야 한다. 따라서 백엔드 서버와 통신할 때도 IP 주소로 통신하는 게 아니라, HTTPS 인증을 받은 도메인 주소로 통신을 한다. ELB 세팅  E..