Among Us - Yellow Crewmate 감쟈의 엔지니어 일지

전체 글 121

[Terraform] Terraform으로 AWS 웹서버 인프라 자동화하기

이전에 AWS로 3티어 아키텍처를 설계하여 웹서버를 구축 했었는데, 프리티어에서 작업 하다보니 인프라들을 계속 지웠다가 생성했다가 해줘야하는 번거로움이 있었다. 때문에 Terraform으로 인프라들을 코드화시켜 생성 및 삭제를 자동화 시켜보기로 했다. 아래 그림은 구축했던 아키텍처이다. 이 아키텍처를 바탕으로 AWS 인프라를 Terraform으로 코드화 시켜보자 구성하기 전에.. 1. Terraform이 설치되어 있어야 한다. 2. aws cli로 미리 access key 인증을 해줘서 provider에 key값이 들어가지 않도록 해준다. 3. 코드 작업은 Visual Studio Code에서 해준다. 1. Provider 지정 provider : aws를 프로바이더로 지정 region : aws의 ap..

DevOps/Terraform 2021.04.04

[Terraform] Terraform 개념 다지기

1. Terraform ? Terraform은 Hashicorp에서 오픈소스로 개발중인 IaC (Infrastructure as Code)이다. IaC는 코드로 인프라를 관리하고 프로비저닝 하는 도구이다. 매번 동일한 환경의 인프라를 계속 만드는것 보다 코드로 된 파일을 사용하여 인프라 생성을 자동화하여 효율적으로 업무를 진행할 수 있다. 현재 퍼블릭 클라우드가 대세가 되면서 Terraform같은 IaC는 선택이 아니라 필수라고 생각한다. AWS에도 Terraform과 비슷한 Cloudformation 이라는 서비스가 있지만 Cloudformation은 AWS에 종속적이고, Terraform은 AWS,GCP,Azure 등 어느 환경에서든 사용가능하다는 큰 장점이 있다. Terraform에서 코드로 인프라..

DevOps/Terraform 2021.03.28

[Docker] Docker File 작성하기

DockerFile Docker File이란 애플리케이션을 Image로 만들기 위해 작성하는 설정 파일이다. Docker File이 어떻게 구성되어 있는지 볼 수 있다면 Docker Image가 어떤식으로 구성되어 있는지 알 수 있다. 매번 애플리케이션을 동작하는 환경을 구성하기 위해 패키지를 설치하고 환경설정을 따로해주고 하는 과정을 반복 하다보면 번거로워질 때가 있다. 그럴때 docker File을 통해서 패키지, 소스코드, 명령어, 환경변수 등을 미리 기록해두는 파일을 작성해서 빌드하면 자동으로 이미지가 생성된다. 이런식으로 애플리케이션의 빌드 및 배포를 유연하게 자동화 할 수 있게끔 하려는 것이 DockerFile을 작성하는 목적이다. Docker File 리소스 정의 FROM : 생성할 이미지의..

DevOps/Docker 2021.03.25

[Docker] Docker 간단 명령어 정리

Docker를 사용하기 위해서 Docker의 주요 명령어 몇개를 정리해보자 docker 명령어를 사용하기 위해서 root 계정으로 접속해주자 1. 이미지 검색 docker search Docker hub에서 사용가능한 공식 image를 찾을 수 있다. 2. 이미지 받기 docker pull : docker hub에서 사용가능한 이미지를 버전별로 로컬에 가져올 수 있다. 3. 이미지 목록 보기 docker images 로컬에 있는 이미지들을 보여준다 4. 컨테이너 생성 및 실행 docker run docker hub에서 이미지를 받아와 곧바로 컨테이너를 실행한다. -i: (interactive) 사용자가 입출력을 할 수 있는 상태 -t: 가상 터미널 환경 제공 -d: 컨테이너를 데몬프로세스 형태로 실행하여..

DevOps/Docker 2021.03.24

[Docker] Docker 설치하기

컨테이너 기반 기술을 하기 위해서 필수라고 할 수 있는 Docker를 AWS EC2에서 설치 해보려고 한다. 우선 가장 기본적인 것부터!! Docker란 무엇인지 기본 개념부터 간단하게만 알고 가자 Docker 란 ???? Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. docker를 이용해 애플리케이션을 Container Image로 만들어 애플리케이션을 더욱 쉽고 빠르고 관리 및 배포 할 수 있다. 이렇게 생성된 Container Image는 백엔드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상화할 수 있고, Host os, Cloud 환경 등 어디서든 OS에 구애받지 않고 동일하게 실행할 수 있다. Docker는 이러한 Container Image를 Docke..

DevOps/Docker 2021.03.24

[CKA] CKA 시험 합격

CKA 시험 준비를 해보자~!~!~!~!!!!!!!!!!!! CKA는 2시간동안 17문제를 풀면 된다. 한번 결제하면 1년안에 시험을 두번 치르게 해줘서 좋은것 같아 그래서 첫 시험은 문제 유형좀 살펴볼 겸 불합격할 생각으로? 시험을 봤다. 당연히 결과는 불합격. 시험 문제보다 가장 난관이였던 것은 바로.. 영어 해석... 영어에 자신이 없는 사람은 크롬에서 제공하는 익스텐션 구글 번역기를 사용하자... 문제에서 요구하는 조건을 모르겠으니 문제를 풀수가 없었다 ㅠ 시험공부는 Udemy 강의에서 제공하는 Kodekloud 연습문제 위주로 해나갔다. 강의를 듣고 싶었는데 강의마저 영어... 심지어 자막도 들리는대로 이상하게 붙여놔서 읽을 수 조차 없다. 다행히도 연습문제에서 나오는 것과 크게 다르지 않은것 ..

DevOps/Kubernetes 2021.03.22

[Kubernetes] Kubernetes의 구성요소 ! (Object)

Kubernetes 구성요소 kubernetes를 구성하는 객체(Object)와 객체를 관리하는 컨트롤러(Controller)로 구성된다. 객체에는 Pod, Service, namespace, volume 이 있고 컨트롤러에는 DemonSet, Deployment, ReplicaSet, StatefulSet, Job 이 있다. kubernetes는 객체 생성을 위해 kubernetes API를 사용할 때, JSON형식으로 데이터를 제공해야 하는데, kubectl에서 yaml파일의 형식을 JSON으로 변환시켜 준다. Kubernetes는 이러한 객체와 컨트롤러를 Yaml 파일의 형식으로 템플릿을 작성하고 배포한다. Yaml파일 템플릿을 작성하는 기본적인 구조는 다음과 같다. 아래 4개는 꼭 들어가야함! a..

DevOps/Kubernetes 2021.03.17

[kubernetes] kubernetes 개념 및 구조

다들 쿠버네티스가 중요하다고 이야기 하곤 하는데, 어째서 중요한건지 ?? 또 어떨 때 사용할 수 있고 왜 사용하는 건지! 기본 개념부터 천천히 공부해 나갈 생각이다. 쿠버네티스를 겉핥기 식으로 살짝 만져보긴 했으나 아직 제대로 이해하지 못한것 같아서 글을 쓰면서 정리 해봐야겠다. 그럼 어디 한번 쿠버네티스를 처음부터 제대로 파헤쳐보자.!! 1. Kubernetes(kubernetes = k8s = 쿠버네티스) kubernetes는 컨테이너를 자동으로 관리하고 배포할 수 있는 '컨테이너 오케스트레이션' 도구이다. (kubernetes = k8s = 쿠버네티스) 쿠버네티스는 2014년도에 구글에서 오픈소스로 제공하며 많은 인기를 누리고 있는 플랫폼이다. 컨테이너를 관리하는 도구들은 쿠버네티스 이전에도 여러가..

DevOps/Kubernetes 2021.03.16