DevOps

    [Docker] Wordpress + MySQL5.7 Container

    Docker로 Wordress + MySQL Container 띄우기 방법은 2가지가 있다. 하나는, docker run 명령어를 이용하는 방법 두번째는, docker-compose를 통한 방법 docker run을 이용한 방법 1. create docker network docker network create wp-network 처음으로 docker container간 container이름을 통해서 통신이 가능하도록 docker network를 생성해준다. 2. create mysql 5.7 Container docker run -d -p 3306:3306 \ -e MYSQL_ALLOW_EMPTY_PASSWORD=true \ --network=wp-network \ --name=mysql \ -v /m..

    [Terraform] Terraform과 Ansible 사용하여 3-tier 구현하기 Project

    All in Notion 📔 Notion를 가시면 Timeline에 따라 Project 구현 및 진행을 보실 수 있습니다. 🥰 Github은 바로 Project를 실행해 볼 수 있습니다! Background 최근에 배운 기술 2가지를 사용하여 간단하게 만드는 프로젝트를 진행하고자 했다. Terraform과 Ansible을 사용하여 간단한 3-tier를 자동으로 구현할 수 있는 주제로 하였다. PLAN terraform의 기초를 배우면서 Project를 만드는 기간을 포함해서 1달(20.12.25 ~ 21.01.25)을 잡았다. 이미 AWS Cloud Resource를 Web Console을 통해 원하는 것을 조작해서 만들 수 있는 수준으로 자가판단(?)해서 그 부분에 대해서 Design적인 부분보다 그것..

    [Terraform] Security Group과 Remote-exec의 관계

    Background Security Group의 Inbound Rule에 대한 description과 몇몇의 규칙을 수정한 후 생긴 문제이다. 평소처럼 terraform apply 를 통해 Provisioning 중에 특정 null_resource가 Still creating을 반복하는 문제가 발생했다. null_resource의 의존성 문제 (depend_on)은 수정한적이 없다. 즉, 이전에는 정상작동했다. Solution 한 가지 null_resource를 예로 들어보자면 resource "null_resource" "web_env" { depends_on = [aws_instance.web] count = length(var.availability_zones) connection { user = ..

    [Automation] mysqldump 스크립트 자동화시 계정관리에 관한 경고 → mysql_config_editor

    Background terraform과 Ansible로 IaC 구현하는 프로젝트를 진행중 자동화에 관련해서 부딪힌 문제입니다. 현재 init_mysql.sql으로 Database생성과 Table 생성 및 Attribute, Record 생성 그리고 Test Value값을 할당 script를 자동화하기위해 다음과 같은 명령어를 사용중입니다. ${..}의 코드는 Terraform에서 provisioning 단계에서 처리되는 변수값들입니다. 기존 terraform에서의 mysqldump 자동화 Script $ mysql -u ${aws_db_instance.my_db[count.index].username} -p${var.my_db_password} -h $ {aws_db_instance.my_db[count..

    [Terraform] AWS Provider credential Authentication

    background Terraform을 사용하면서 AWS Provider에서 제공하는 resource, data, modules를 사용하는 중이다. 매번 provider.tf 를 만들어서 다음코드를 통해 provider를 정의한다. provider "aws" { region = "ap-northeast-2" } 초기에는 access_key 와 secret_key 를 직접할당(Static Credential)한 방법으로 선언해 주었지만, Hard-coded credential은 risk leakage도 있고해서 다른 방법으로 구성했어야 했다. Authentication Methods Authentication 방법은 다양하게 있다. static credentials Environment variables ..

    [Automation] AWS CLI 이용하여 "EC2 instance 자동으로 켜고 Public IP 받기 자동화"

    Background Shell Script 공부 중 Ubuntu instance를 매일 껏다 켰다가 사용중이다. EIP? terraform을 통해 구축 실습도 하기때문에 Elastic IP의 사용은 최대한 피할 수 있으면 피한다는 생각이다 EC2 instance는 매번 Stopped -> Running으로 올려줄때 Public IP가 변경된다. 이것 때문에 console에 로그인해서 IP를 복사해오는 과정이 귀찮아졌다. Environment AWS CLI 2.1.4 ZSH (OH-MY-ZSH) : ZSH에서는 Bash가 호환된다. Step 1. 초기에는 Instance Id를 직접 AWS CLI command에 넣어서 결과값을 받는 형식으로 구현 2. Instance Id를 tag를 이용해서 가져오는 형..