일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 유니크제약조건
- 스프링 폼
- 일대다
- exclusive lock
- CHECK OPTION
- 지연로딩
- 스토어드 프로시저
- 데코레이터
- FetchType
- PS
- dfs
- 다대다
- 다대일
- 비관적락
- 연결리스트
- 힙
- shared lock
- BOJ
- querydsl
- 동적sql
- 연관관계
- 백트래킹
- fetch
- 즉시로딩
- 낙관적락
- JPQL
- execute
- 이진탐색
- eager
- SQL프로그래밍
- Today
- Total
목록DevOps (25)
흰 스타렉스에서 내가 내리지
# 개요모듈 간 데이터를 전달하는 것을 통해 코드를 재사용 가능케 하고 인프라 구성을 보다 효율적으로 관리할 수 있다. # 예시1. VPC 모듈과 서브넷 모듈 먼저, VPC 를 생성하는 모듈에서 VPC 의 ID 를 output 으로 정의하고, 이 값을 서브넷을 생성하는 모듈에서 받아서 사용한다고 가정해보자. VPC 모듈 (vpc/main.tf)resource "aws_vpc" "main" { cidr_block = "10.0.0.0/16"}output "vpc_id" { value = aws_vpc.main.id} 위 코드는 VPC 를 생성하고, VPC 의 ID 를 output 으로 노출시킨다. 이 output 값을 다른 모듈에서 참조할 수 있다. 서브넷 모듈 (subnet/main.tf)res..
# 개요Terraform 을 통해 리소스를 배포한 후, 그 리소스들에 대한 중요한 정보를 효과적으로 관리하고 노출하는 것은 중요하다. 이 때 유용하게 활용되는 것이 바로 output 이다. # output 이란 무엇인가?`output`은 배포된 리소스의 속성이나 값을 외부로 노출하는 기능을 한다. 이를 통해 Terraform 구성 파일을 실행한 후, 생성된 리소스의 중요한 값들을 쉽게 확인할 수 있다. 예를 들어, 새로 생성된 인스턴스의 public IP 주소나 S3 버킷의 이름 같은 값들을 즉시 확인해야 할 때 `output` 을 설정하면 Terraform 이 적용된 후 자동으로 해당 값이 출력된다. output "instance_ip" { value = aws_instance.my_instan..
# 개요Terraform 은 다양한 함수를 내장하고 있다. 사용자는 이 함수를 이용하여 리소스를 보다 효율적으로 생성할 수 있고, 간략하게 코드를 만들 수 있다. * 현재는 built-in 함수만 지원하고 있다. 사용자가 임의로 함수를 만드는 건 지원하지 않고 있다. # FunctionsNumeric functionsString functions - ⭐️Collection functions - ⭐️Encoding functionsFilesystem functionsDate and Time functionsHash and Crypto functionsIP Network functionsType Conversion Functionshttps://developer.hashicorp.com/terraform/..
# 결론Terraform 에서 변수를 사용하기 위해서는, 1. 변수 정의 파일2. 변수 값 주입 파일 을 따로 생성해야 한다. # 개요Terraform 은 HCL Syntax 를 가진 언어이다. 언어적 특성을 가지고 있기 때문에 변수를 정의하고, 주입해서 사용할 수 있다. (HCL 은 json syntax 와 비슷하다) # Variable Types- string- number-boot # Complex variable types- list()- set()- map()- object( { = , ... } )- tuple ( [ , ... ] ) # 변수를 정의하기 - variables.tf tf 어느 파일에서나 변수를 정의할 수는 있지만, 일반적으로는 variables.tf 파일을 만들어서 정의한다..
많은 사람들이 이 두 직군의 차이를 궁금해하는데, 실제로 두 역할은 겹치는 부분이 많아 때로는 혼동되기도 한다. # 클라우드 엔지니어란?클라우드 엔지니어 (Cloud Engineer) 는 클라우드 인프라의 설계, 구축, 운영, 그리고 최적화에 중점을 두는 직무이다.주요 클라우드 플랫폼인 AWS, Microsoft Azure, Google Cloud Platform(GCP) 등의 기술을 활용하여 기업의 인프라를 클라우드 환경에서 효율적으로 관리하는 것이 주된 업무이다. * 클라우드 엔지니어의 역할 :- 클라우드 인프라의 설계 및 관리 : 가상 머신, 데이터베이스, 스토리지, 네트워크와 같은 클라우드 자원을 설정하고 운영한다.- 비용 최적화 : 클라우드 환경에서의 비용을 분석하고 절감할 수 있는 방안을 마..
로컬의 tfstate 파일과 실제 aws 계정의 인프라 리소스가 일치하지 않을 경우, 어떻게 동기화할 수 있을까? # terraform import 명령어 사용`terraform import` 는 aws 리소스와 Terraform 의 상태 파일을 동기화할 수 있는 기능을 제공한다.이 명령을 통해 이미 존재하는 인프라 리소스를 Terraform 상태 파일에 다시 등록할 수 있다. 즉, 현재 존재하는 리소스를 Terraform 에 다시 가져오기(import) 하는 것이다. 이 방식은 리소스를 일일이 지정해야 하므로, 각 리소스에 대해 수동으로 import 작업을 해야 한다. # 사용 예시terraform import aws_instance.my_instance i-1234567890abcdef0 모든 ..
# Terraform Stateterraform apply 명령어을 실행하면, 리소스가 생성이 되고 terraform.tfstate 파일이 생성된다. tfstate 파일은 Terraform 이 인프라 리소스의 현재 상태를 추적하고 관리하는 파일이다.Terraform 이 배포한 인프라와 관련된 정보를 저장하며, Terraform 이 해당 리소스의 변경 사항을 관리할 수 있도록 한다. 즉, apply 의 결과를 저장해놓은 상태라고 보면 된다. 다만, 내가 apply 를 적용한 시점의 상태이지, 현재의 실제 인프라 상태는 아닐 수 있다. state 는 원격 저장소인 `backend` 에도 저장될 수 있다. # Terraform Backend 란?Terraform 의 state file 를 어디에 저장하고,..
Terraform 은 인프라로 코드를 관리할 수 있는 강력한 도구로, 코드만으로 클라우드 인프라를 배포, 업데이트, 삭제할 수 있는 유연성을 제공합니다. 하지만 규모가 커지고 리소스가 복잡해질수록 인프라 배포 속도는 중요한 문제가 됩니다. 이때 Terraform 의 -parallelism 옵션을 활용하면 속도와 효율성을 동시에 높일 수 있습니다. # -parallelism 옵션이란?-parallelism 옵션은 Terraform 이 리소스를 병렬로 처리할 수 있는 작업 수를 설정하는 옵션입니다. 기본적으로 Terraform 은 10개의 리소스를 동시에 처리하는데, 이 옵션을 사용하면 더 많은 리소스를 동시에 처리할 수 있도록 병렬 작업 수를 늘릴 수 있습니다. terraform plan -paral..
# IAM 이란?IAM 은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스다. IAM 을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한부여(권한 있음)된 대상을 제어한다. # IAM 구성요소IAM userAWS 내에서 생성하는 사용자로, AWS 와 상호작용하는 사용자 혹은 애플리케이션을 의미한다.IAM groupIAM User의 집합이고, Group 을 사용함으로써 다수 사용자에 대하여 동일한 권한을 보다 쉽게 관리할 수 있다. IAM role특정 권한을 가진 IAM 자격증명이다. 이 Role 을 사용함으로써 특정 사용자 혹은 어플리케이션에 혹은 AWS 서비스에 접근 권한을 위임할 수 있다. (예. EC2 에 role 을 할당해서 지정한 권한을 줄 수 있다. )IAM policy..
vim provider.tfprovider "aws" { region = "ap-northeast-2"} vim s3.tfresource "aws_s3_bucket" "s3" { bucket = "joos-devops-terraform" tags = { Name = "joos-devops-terraform" }} 버킷을 생성해보자terraform init terraform plan terraform apply aws 콘솔로 이동하여 생성 되었는지 확인해보자. aws cli 를 사용하여 파일을 버킷에 업로드해보자.vim index.html안녕하세요! aws s3 cp ./index.html s3://joos-devops-terraform/index.html 파일이 잘 업로드 되었습니다..