일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스 가장 긴 팰린드롬
- 백준 1043 거짓말 파이썬
- SWEA
- 프로그래머스 순위 파이썬
- 백준 1034 램프 파이썬
- 가장 긴 팰린드롬 파이썬
- 백준 2146 다리 만들기
- 등굣길 파이썬
- 다리 만들기 파이썬
- 다중 컬럼 NOT IN
- 프로그래머스 베스트앨범
- 게임 개발 파이썬
- SQL SERVER MIGRATION
- 백준 1613 역사
- SQL SERVER 장비교체
- 반도체 설계 파이썬
- 백준 1238 파티 파이썬
- 역사 파이썬
- 가장 긴 바이토닉 부분 수열 파이썬
- 트리의 지름 파이썬
- 백준 2352 반도체 설계 파이썬
- 프로그래머스 순위
- 베스트앨범 파이썬
- 프로그래머스 등굣길
- 순위 파이썬
- 램프 파이썬
- 백준 1167 트리의 지름 파이썬
- 프로그래머스 여행경로
- 백준 11054.가장 긴 바이토닉 부분 수열
- 백준 1516 게임 개발
Archives
- Today
- Total
공부, 기록
[AWS] Aurora, ElastiCache 타입 변경 스크립트 본문
#!/bin/bash
# Writer와 Reader 정보를 저장할 전역 배열
declare -a writer_instances
declare -a reader_instances
# 모든 클러스터 정보 요약 출력
summarize_clusters_info() {
local clusters=("${@}")
# Writer와 Reader 배열 초기화
writer_instances=()
reader_instances=()
for cluster in "${clusters[@]}"; do
# 클러스터 내 모든 인스턴스 정보 가져오기
local instances
instances=$(aws rds describe-db-clusters \
--db-cluster-identifier "$cluster" \
--query "DBClusters[0].DBClusterMembers[]" \
--output json)
# JSON 결과 디버깅
if [[ -z "$instances" || "$instances" == "null" ]]; then
echo "❌ 클러스터 $cluster에서 인스턴스 정보를 가져오지 못했습니다. AWS CLI 설정 또는 클러스터 이름을 확인하세요."
continue
fi
# Writer 인스턴스 분리 저장
readarray -t writers < <(echo "$instances" | jq -r '.[] | select(.IsClusterWriter == true) | .DBInstanceIdentifier')
writer_instances+=("${writers[@]}") # 배열 추가
# Reader 인스턴스 분리 저장
readarray -t readers < <(echo "$instances" | jq -r '.[] | select(.IsClusterWriter == false) | .DBInstanceIdentifier')
reader_instances+=("${readers[@]}") # 배열 추가
done
echo "📋 모든 클러스터 요약 정보:"
echo "---------------------------------------------------------------"
echo "| Cluster Name | Instance Name | Role | Type |"
echo "---------------------------------------------------------------"
for cluster in "${clusters[@]}"; do
# 클러스터 내 모든 인스턴스 정보 가져오기
local instances
instances=$(aws rds describe-db-clusters \
--db-cluster-identifier "$cluster" \
--query "DBClusters[0].DBClusterMembers[]" \
--output json)
# JSON 결과 디버깅
if [[ -z "$instances" || "$instances" == "null" ]]; then
echo "❌ 클러스터 $cluster에서 최종 인스턴스 정보를 가져오지 못했습니다."
continue
fi
# 각 인스턴스 정보 가져오기
echo "$instances" | jq -r --arg cluster_name "$cluster" \
'.[] | "\($cluster_name),\(.DBInstanceIdentifier),\(.IsClusterWriter)"' |
while IFS=',' read -r cluster_name instance_name is_writer; do
# 각 인스턴스의 DBInstanceClass 가져오기
local db_instance_class
db_instance_class=$(aws rds describe-db-instances \
--db-instance-identifier "$instance_name" \
--query "DBInstances[0].DBInstanceClass" \
--output text)
# Role 계산
local role
if [[ "$is_writer" == "true" ]]; then
role="Writer"
else
role="Reader"
fi
# 출력
printf "| %-18s | %-18s | %-6s | %-8s |\n" "$cluster_name" "$instance_name" "$role" "${db_instance_class:-N/A}"
done
done
echo "---------------------------------------------------------------"
}
# 상태 추적 함수 (30초 대기 후 시작)
track_update_status() {
local cluster="$1"
local instance="$2"
local role="$3"
echo "📡 클러스터 $cluster: $role 인스턴스 $instance 상태 추적을 30초 뒤에 시작합니다..."
sleep 30 # 첫 추적 전 대기
while true; do
local status
status=$(aws rds describe-db-instances \
--db-instance-identifier "$instance" \
--query "DBInstances[0].DBInstanceStatus" \
--output text)
if [[ "$status" == "available" ]]; then
echo "✅ 클러스터 $cluster: $role 인스턴스 $instance 상태 업데이트 완료"
break
else
echo "⏳ 클러스터 $cluster: $role 인스턴스 $instance 상태: $status"
sleep 30
fi
done
}
# Reader 인스턴스 타입 변경 요청
change_reader_instance_type() {
local instance="$1"
echo "🔄 Reader 인스턴스 $instance의 유형 변경 요청 중..."
aws rds modify-db-instance \
--db-instance-identifier "$instance" \
--db-instance-class "$instance_type" \
--apply-immediately > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "✅ Reader 인스턴스 $instance의 유형 변경 요청 성공"
else
echo "❌ Reader 인스턴스 $instance의 유형 변경 요청 실패"
fi
}
# Writer 인스턴스 타입 변경 요청
change_writer_instance_type() {
local instance="$1"
echo "🔄 Writer 인스턴스 $instance의 유형 변경 요청 중..."
aws rds modify-db-instance \
--db-instance-identifier "$instance" \
--db-instance-class "$instance_type" \
--apply-immediately > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "✅ Writer 인스턴스 $instance의 유형 변경 요청 성공"
else
echo "❌ Writer 인스턴스 $instance의 유형 변경 요청 실패"
fi
}
# Reader 작업
process_readers() {
echo "🚀 Reader 인스턴스 변경 요청 시작..."
for reader in "${reader_instances[@]}"; do
change_reader_instance_type "$reader" &
done
wait
echo "✅ 모든 Reader 인스턴스 변경 요청 완료."
# Reader 상태 추적
for reader in "${reader_instances[@]}"; do
track_update_status "" "$reader" "Reader" &
done
wait
echo "✅ 모든 Reader 인스턴스 상태 추적 완료."
}
# Writer 작업
process_writers() {
echo "🚀 Writer 인스턴스 변경 요청 시작..."
for writer in "${writer_instances[@]}"; do
change_writer_instance_type "$writer" &
done
wait
echo "✅ 모든 Writer 인스턴스 변경 요청 완료."
# Writer 상태 추적
for writer in "${writer_instances[@]}"; do
track_update_status "" "$writer" "Writer" &
done
wait
echo "✅ 모든 Writer 인스턴스 상태 추적 완료."
}
# 최종 요약 정보 출력
print_final_summary() {
local clusters=("${@}")
echo "📋 작업 완료 후 모든 클러스터 최종 요약 정보:"
echo "---------------------------------------------------------------"
echo "| Cluster Name | Instance Name | Role | Type |"
echo "---------------------------------------------------------------"
for cluster in "${clusters[@]}"; do
# 클러스터 내 모든 인스턴스 정보 가져오기
local instances
instances=$(aws rds describe-db-clusters \
--db-cluster-identifier "$cluster" \
--query "DBClusters[0].DBClusterMembers[]" \
--output json)
# JSON 결과 디버깅
if [[ -z "$instances" || "$instances" == "null" ]]; then
echo "❌ 클러스터 $cluster에서 최종 인스턴스 정보를 가져오지 못했습니다."
continue
fi
# 각 인스턴스 정보 가져오기
echo "$instances" | jq -r --arg cluster_name "$cluster" \
'.[] | "\($cluster_name),\(.DBInstanceIdentifier),\(.IsClusterWriter)"' |
while IFS=',' read -r cluster_name instance_name is_writer; do
# 각 인스턴스의 DBInstanceClass 가져오기
local db_instance_class
db_instance_class=$(aws rds describe-db-instances \
--db-instance-identifier "$instance_name" \
--query "DBInstances[0].DBInstanceClass" \
--output text)
# Role 계산
local role
if [[ "$is_writer" == "true" ]]; then
role="Writer"
else
role="Reader"
fi
# 출력
printf "| %-18s | %-18s | %-6s | %-8s |\n" "$cluster_name" "$instance_name" "$role" "${db_instance_class:-N/A}"
done
done
echo "---------------------------------------------------------------"
}
# 클러스터 처리
process_clusters() {
if [[ "$operation_order" == "writer-first" ]]; then
echo "🛠 Writer -> Reader 작업 순서로 진행합니다."
process_writers
read -p "Writer 작업이 완료되었습니다. Reader 작업을 시작할까요? (yes/no): " proceed_readers
[[ "$proceed_readers" == "yes" ]] && process_readers
else
echo "🛠 Reader -> Writer 작업 순서로 진행합니다."
process_readers
read -p "Reader 작업이 완료되었습니다. Writer 작업을 시작할까요? (yes/no): " proceed_writers
[[ "$proceed_writers" == "yes" ]] && process_writers
fi
# 최종 요약 정보 출력
print_final_summary "${cluster_names[@]}"
}
# 메인 스크립트
echo "💡 Aurora/DocumentDB 인스턴스 유형 변경 스크립트"
read -p "작업할 클러스터 이름을 콤마(,)로 구분하여 입력하세요: " input_clusters
read -p "변경할 인스턴스 타입을 입력하세요 (예: db.t3.medium): " instance_type
read -p "작업 순서를 선택하세요 (reader-first / writer-first): " operation_order
# 입력값 처리
IFS=',' read -ra cluster_names <<< "$input_clusters"
# 클러스터 정보 요약 및 확인
summarize_clusters_info "${cluster_names[@]}"
read -p "위 정보를 확인하셨습니까? 작업을 진행하시겠습니까? (yes/no): " proceed
if [[ "$proceed" == "yes" ]]; then
process_clusters
echo "🚀 작업 완료. 감사합니다."
else
echo "🚫 작업이 취소되었습니다. 감사합니다."
exit 0
fi
스크립트 실행.
## 작업 내용 입력 ##
💡 Aurora/DocumentDB 인스턴스 유형 변경 스크립트
작업할 클러스터 이름을 콤마(,)로 구분하여 입력하세요: minjae-test-01,minjae-test-02
변경할 인스턴스 타입을 입력하세요 (예: db.t3.medium): db.t4g.large
작업 순서를 선택하세요 (reader-first / writer-first): writer-first
## 엔터 ##
📋 모든 클러스터 요약 정보:
---------------------------------------------------------------
| Cluster Name | Instance Name | Role | Type |
---------------------------------------------------------------
minjae-test-01 minjae-test-01-primary Writer null
minjae-test-01 minjae-test-01-replica01 Reader null
minjae-test-02 minjae-test-02-replica01 Writer null
minjae-test-02 minjae-test-02-primary Reader null
---------------------------------------------------------------
##요약 정보 출력 및 진행 여부 확인 ##
위 정보를 확인하셨습니까? 작업을 진행하시겠습니까? (yes/no):
## yes 입력시##
🛠 Writer -> Reader 작업 순서로 진행합니다.
🚀 Writer 인스턴스 변경 요청 시작...
🔄 Writer 인스턴스 minjae-test-02-replica01의 유형 변경 요청 중...
🔄 Writer 인스턴스 minjae-test-01-primary의 유형 변경 요청 중...
✅ Writer 인스턴스 minjae-test-01-primary의 유형 변경 요청 성공
✅ Writer 인스턴스 minjae-test-02-replica01의 유형 변경 요청 성공
✅ 모든 Writer 인스턴스 변경 요청 완료.
## 30초 단위로 인스턴스의 상태 체크 available 상태면 종료 ##
📡 클러스터 : Writer 인스턴스 minjae-test-02-replica01 상태 추적을 30초 뒤에 시작합니다...
📡 클러스터 : Writer 인스턴스 minjae-test-01-primary 상태 추적을 30초 뒤에 시작합니다...
⏳ 클러스터 : Writer 인스턴스 minjae-test-01-primary 상태: modifying
⏳ 클러스터 : Writer 인스턴스 minjae-test-02-replica01 상태: modifying
## ... (생략) ##
⏳ 클러스터 : Writer 인스턴스 minjae-test-01-primary 상태: configuring-enhanced-monitoring
⏳ 클러스터 : Writer 인스턴스 minjae-test-02-replica01 상태: configuring-enhanced-monitoring
⏳ 클러스터 : Writer 인스턴스 minjae-test-01-primary 상태: modifying
⏳ 클러스터 : Writer 인스턴스 minjae-test-02-replica01 상태: modifying
⏳ 클러스터 : Writer 인스턴스 minjae-test-01-primary 상태: modifying
⏳ 클러스터 : Writer 인스턴스 minjae-test-02-replica01 상태: modifying
✅ 클러스터 : Writer 인스턴스 minjae-test-01-primary 상태 업데이트 완료
✅ 클러스터 : Writer 인스턴스 minjae-test-02-replica01 상태 업데이트 완료
✅ 모든 Writer 인스턴스 상태 추적 완료.
## 모두 진행이 완료가 되면 Reader 변경에 대하여 확인 진행 ##
Writer 작업이 완료되었습니다. Reader 작업을 시작할까요? (yes/no):
## yes 입력할 경우 writer와 동일한 프로세스로 진행 ##
🚀 Reader 인스턴스 변경 요청 시작...
🔄 Reader 인스턴스 minjae-test-02-primary의 유형 변경 요청 중...
🔄 Reader 인스턴스 minjae-test-01-replica01의 유형 변경 요청 중...
✅ Reader 인스턴스 minjae-test-01-replica01의 유형 변경 요청 성공
✅ Reader 인스턴스 minjae-test-02-primary의 유형 변경 요청 성공
✅ 모든 Reader 인스턴스 변경 요청 완료.
📡 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태 추적을 30초 뒤에 시작합니다...
📡 클러스터 : Reader 인스턴스 minjae-test-01-replica01 상태 추적을 30초 뒤에 시작합니다...
⏳ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태: modifying
⏳ 클러스터 : Reader 인스턴스 minjae-test-01-replica01 상태: modifying
⏳ 클러스터 : Reader 인스턴스 minjae-test-01-replica01 상태: modifying
⏳ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태: modifying
## ... (생략) ##
⏳ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태: configuring-enhanced-monitoring
✅ 클러스터 : Reader 인스턴스 minjae-test-01-replica01 상태 업데이트 완료
⏳ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태: configuring-enhanced-monitoring
⏳ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태: modifying
⏳ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태: modifying
✅ 클러스터 : Reader 인스턴스 minjae-test-02-primary 상태 업데이트 완료
✅ 모든 Reader 인스턴스 상태 추적 완료.
📋 작업 완료 후 모든 클러스터 최종 요약 정보:
---------------------------------------------------------------
| Cluster Name | Instance Name | Role | Type |
---------------------------------------------------------------
minjae-test-01 minjae-test-01-primary Writer null
minjae-test-01 minjae-test-01-replica01 Reader null
minjae-test-02 minjae-test-02-replica01 Writer null
minjae-test-02 minjae-test-02-primary Reader null
---------------------------------------------------------------
🚀 작업 완료. 감사합니다.
#!/bin/bash
# ElastiCache 클러스터의 노드 타입 변경
change_cache_node_type() {
local cluster="$1"
# 클러스터 모드 활성화 여부 확인
local cluster_mode
cluster_mode=$(aws elasticache describe-replication-groups \
--replication-group-id "$cluster" \
--query "ReplicationGroups[0].ClusterEnabled" \
--output text)
if [[ "$cluster_mode" == "True" ]]; then
echo "🔄 클러스터 모드 활성화 상태: $cluster"
echo "🔄 전체 클러스터의 노드 타입을 변경합니다."
# 전체 클러스터의 노드 타입 변경
aws elasticache modify-replication-group \
--replication-group-id "$cluster" \
--cache-node-type "$node_type" \
--apply-immediately > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "✅ 클러스터 $cluster: 노드 타입 변경 요청 성공"
else
echo "❌ 클러스터 $cluster: 노드 타입 변경 요청 실패"
fi
else
echo "🔄 클러스터 모드 비활성화 상태: $cluster"
echo "🔄 전체 클러스터의 노드 타입을 변경합니다."
# 클러스터의 노드 타입 변경
aws elasticache modify-replication-group \
--replication-group-id "$cluster" \
--cache-node-type "$node_type" \
--apply-immediately > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
echo "✅ 클러스터 $cluster: 노드 타입 변경 요청 성공"
else
echo "❌ 클러스터 $cluster: 노드 타입 변경 요청 실패"
fi
fi
}
# ElastiCache 클러스터 상태 추적
track_cache_cluster_update() {
local cluster="$1"
echo "📡 ElastiCache 클러스터 $cluster 상태 추적 중..."
sleep 30
while true; do
local shard_status
local node_statuses
local all_available=true
# 샤드 상태 확인
shard_status=$(aws elasticache describe-replication-groups \
--replication-group-id "$cluster" \
--query "ReplicationGroups[0].Status" \
--output text)
# 노드 상태 확인
node_statuses=$(aws elasticache describe-replication-groups \
--replication-group-id "$cluster" \
--query "ReplicationGroups[0].NodeGroups[].NodeGroupMembers[].CacheClusterId" \
--output text)
echo "🔍 클러스터 $cluster: 현재 샤드 상태: $shard_status"
# 각 노드의 상태 출력
for node in $node_statuses; do
local node_status
node_status=$(aws elasticache describe-cache-clusters \
--cache-cluster-id "$node" \
--query "CacheClusters[0].CacheClusterStatus" \
--output text)
echo " 노드 $node 상태: $node_status"
if [[ "$node_status" != "available" ]]; then
all_available=false
fi
done
# 모든 상태가 available인지 확인
if [[ "$shard_status" == "available" && "$all_available" == true ]]; then
echo "✅ ElastiCache 클러스터 $cluster: 모든 노드 및 샤드 상태 'available'"
break
else
echo "⏳ ElastiCache 클러스터 $cluster 상태: 샤드 ($shard_status), 노드 확인 중..."
sleep 30
fi
done
}
# ElastiCache 클러스터 최종 정보 출력
print_final_status() {
local cluster="$1"
echo "📋 ElastiCache 클러스터 $cluster 최종 상태 확인 중..."
# 클러스터 정보 가져오기
local cluster_info
cluster_info=$(aws elasticache describe-cache-clusters \
--show-cache-node-info \
--query "CacheClusters[?ReplicationGroupId=='$cluster']" \
--output json)
if [[ -z "$cluster_info" ]]; then
echo "❌ 클러스터 $cluster: 정보를 가져오지 못했습니다."
return
fi
echo "---------------------------------------------------------------"
echo "| Cluster Name | Node Name | Node Type | Status |"
echo "---------------------------------------------------------------"
echo "$cluster_info" | jq -r --arg cluster_name "$cluster" \
'.[] | .CacheClusterId as $cluster_id | .CacheNodeType as $node_type | .CacheNodes[] |
"| \($cluster_name) | \($cluster_id) | \($node_type) | \(.CacheNodeStatus // "N/A") |"' \
| column -t -s '|'
echo "---------------------------------------------------------------"
}
# ElastiCache 작업 처리
process_elasticache_clusters() {
local clusters=("${@}")
echo "🚀 ElastiCache 작업 시작..."
# 클러스터 병렬 작업
for cluster in "${clusters[@]}"; do
(
change_cache_node_type "$cluster"
track_cache_cluster_update "$cluster"
) &
done
wait
echo "✅ 모든 ElastiCache 클러스터 작업 완료."
# 최종 상태 출력
for cluster in "${clusters[@]}"; do
print_final_status "$cluster"
done
}
# 메인 스크립트
echo "💡 ElastiCache 노드 타입 변경 스크립트"
read -p "작업할 ElastiCache 클러스터 이름을 콤마(,)로 구분하여 입력하세요: " input_clusters
read -p "변경할 노드 타입을 입력하세요 (예: cache.t3.medium): " node_type
# 입력값 처리
IFS=',' read -ra cluster_names <<< "$input_clusters"
process_elasticache_clusters "${cluster_names[@]}"
echo "🚀 작업 완료. 감사합니다."
## 작업 내용 입력 ##
## 클러스터 모드, 비클러스터 모드 모두 작업 가능##
💡 ElastiCache 노드 타입 변경 스크립트
작업할 ElastiCache 클러스터 이름을 콤마(,)로 구분하여 입력하세요: minjae-ela-test-02,minjae-ela-test-03
변경할 노드 타입을 입력하세요 (예: cache.t3.medium): cache.t4g.medium
## 엔터 ##
🚀 ElastiCache 작업 시작...
🔄 클러스터 모드 비활성화 상태: minjae-ela-test-03
🔄 전체 클러스터의 노드 타입을 변경합니다.
🔄 클러스터 모드 활성화 상태: minjae-ela-test-02
🔄 전체 클러스터의 노드 타입을 변경합니다.
## 변경 요청 이후 30초 단위로 클러스터, 노드의 상태 체크 ##
✅ 클러스터 minjae-ela-test-03: 노드 타입 변경 요청 성공
📡 ElastiCache 클러스터 minjae-ela-test-03 상태 추적 중...
✅ 클러스터 minjae-ela-test-02: 노드 타입 변경 요청 성공
📡 ElastiCache 클러스터 minjae-ela-test-02 상태 추적 중...
🔍 클러스터 minjae-ela-test-03: 현재 샤드 상태: modifying
🔍 클러스터 minjae-ela-test-02: 현재 샤드 상태: modifying
노드 minjae-ela-test-03-001 상태: modifying
노드 minjae-ela-test-02-0001-001 상태: modifying
노드 minjae-ela-test-03-002 상태: modifying
⏳ ElastiCache 클러스터 minjae-ela-test-03 상태: 샤드 (modifying), 노드 확인 중...
노드 minjae-ela-test-02-0001-002 상태: modifying
노드 minjae-ela-test-02-0002-001 상태: modifying
노드 minjae-ela-test-02-0002-002 상태: modifying
⏳ ElastiCache 클러스터 minjae-ela-test-02 상태: 샤드 (modifying), 노드 확인 중...
🔍 클러스터 minjae-ela-test-03: 현재 샤드 상태: modifying
노드 minjae-ela-test-03-001 상태: modifying
노드 minjae-ela-test-03-002 상태: modifying
## 모든 노드, 클러스터의 상태가 available 일 경우 종료 및 결과 출력##
✅ ElastiCache 클러스터 minjae-ela-test-02: 모든 노드 및 샤드 상태 'available'
✅ 모든 ElastiCache 클러스터 작업 완료.
📋 ElastiCache 클러스터 minjae-ela-test-02 최종 상태 확인 중...
---------------------------------------------------------------
| Cluster Name | Node Name | Node Type | Status |
---------------------------------------------------------------
minjae-ela-test-02 minjae-ela-test-02-0001-001 cache.t4g.small available
minjae-ela-test-02 minjae-ela-test-02-0001-002 cache.t4g.small available
minjae-ela-test-02 minjae-ela-test-02-0002-001 cache.t4g.small available
minjae-ela-test-02 minjae-ela-test-02-0002-002 cache.t4g.small available
---------------------------------------------------------------
📋 ElastiCache 클러스터 minjae-ela-test-03 최종 상태 확인 중...
---------------------------------------------------------------
| Cluster Name | Node Name | Node Type | Status |
---------------------------------------------------------------
minjae-ela-test-03 minjae-ela-test-03-001 cache.t4g.small available
minjae-ela-test-03 minjae-ela-test-03-002 cache.t4g.small available
---------------------------------------------------------------
🚀 작업 완료. 감사합니다.
'공부 > DATABASE' 카테고리의 다른 글
[Aurora] Commit 지연 지표 (0) | 2024.12.06 |
---|---|
[MySQL] MySQL group by 개선 (0) | 2024.11.28 |
SQL Server와 MySQL만 하다가 PostgreSQL을 공부하니.. (0) | 2024.10.15 |
Valkey의 멀티스레드 아키텍처 (0) | 2024.10.12 |
[AWS] DynamoDB (0) | 2024.09.15 |