본문 바로가기

분류 전체보기

(63)
AWS RDS를 MSSQL 에서 MYSQL로 마이그레이션하면 비용절감 현재 MSSQL db.m5.12xlarge 사이즈를 사용하고 있다.MSSQL에서 MYSQL로 전환시 비용절감을 분석 비교 하였다. AWS RDS에서 MSSQL에서 MySQL로 마이그레이션하면 일반적으로 비용 절감이 가능💲 1. 라이선스 비용 절감 (MSSQL → MySQL)MSSQL은 라이선스 비용이 필요(특히 Enterprise Edition은 상당히 비쌈).MySQL은 오픈소스로, Amazon RDS MySQL을 사용해도 라이선스 비용이 없음☁️ 2. 인스턴스 비용 차이동일한 인스턴스 사양이라도 MSSQL은 성능 최적화와 라이선스 비용 때문에 비용이 상대적으로 높.MySQL 인스턴스는 일반적으로 더 저렴하며, Aurora MySQL을 선택하면 IO 비용 절감 효과도 있다.🛠️ 3. 운영 비용 ..
[Java] Stream() 과 parallelStream() 차이점 Stream()과 parallelStream()은 둘 다 Java Stream API에서 제공하는 메소드로, 데이터를 처리하는 방법을 정의합니다.두 메소드는 데이터의 처리 방식을 달리하며, 각각의 사용 방식과 차이점을 이해하는 것이 중요합니다.여기서는 Stream()과 parallelStream()의 차이점과 사용 방법을 상세하게 설명하겠습니다.1. Stream() (직렬 스트림)Stream()은 기본적으로 직렬 스트림을 생성합니다. 즉, 하나의 쓰레드를 사용하여 순차적으로 데이터를 처리합니다.특징:순차적 처리: 모든 작업이 하나의 쓰레드에서 순차적으로 실행됩니다. 데이터가 하나씩 처리되는 방식입니다.데이터 처리 순서 보장: 순차 스트림에서는 입력 데이터의 순서가 보장됩니다. 처리 결과도 원본 데이터의 ..
[JPA] JPA save() 반복 호출로 DB 커넥션 과부하 해결 UI 버전 사본 만들기 ( 기존데이터 복사 ) 할때 RDS 의 DB CPU가 99.98%로 올라가는 이슈가 생겼어.중첩된 for문과 save()가 해당 이슈의 원인이라 파악.이슈가 된 코드와 어떻게 변경하면 좋을지 알아보자 이슈 코드 ( 중첩 for문 구조 )List accounts = ctgryAccntRepository.findAllByMainAccntNo( oldMainAccountNo );if( CollectionUtils.isNotEmpty(accounts) ) { for (CtgryAccnt account : accounts) { Long oldAccountNo = account.getCtgryAccntNo(); CtgryAccnt newAccount = new ..
[JPA] for문으로 save() 할 경우 생기는 이슈 및 처리 UI 버전 사본 만들기 ( 기존데이터 복사 ) 할때 RDS 의 DB CPU가 99.98%로 올라가는 이슈가 생겼어.무분별한 for 문과 save()가 해당 이슈의 원인이라 파악!이슈가 된 코드와 어떻게 변경하면 좋을지 알아보자 이슈 코드 1List ads = verAdRepository.findAllByVerNo( oldVerNo );if( CollectionUtils.isNotEmpty(ads) ) { for (VerAd ad : ads) { VerAd newAd = new VerAd(); newAd.setVerNo( newVerNo ); newAd.setAdNo( ad.getAdNo() ); newAd.setShowLoca( ad.getShowL..
MSSQL -> MySQL 데이터 마이그레이션- 5.모니터링 및 성능 최적화 단계 마이그레이션 후: 모니터링 및 성능 최적화 단계마이그레이션이 완료되었더라도 모니터링과 성능 최적화는 안정적인 운영을 위해 필수입니다.다음은 AWS RDS MySQL 환경에서의 모니터링 및 성능 튜닝을 단계별로 자세히 설명합니다.🔍 1. 모니터링 설정 및 지표 확인AWS RDS는 Amazon CloudWatch와 Performance Insights를 통해 다양한 성능 지표를 제공합니다.다음과 같은 **핵심 지표(Key Metrics)**를 중점적으로 모니터링해야 합니다.📈 1-1. CloudWatch 메트릭 구성AWS Console → RDS → Monitoring → Enable Enhanced Monitoring메트릭 설명 권장 액션CPUUtilizationCPU 사용률(%)70% 이상 시 쿼리 ..
MSSQL -> MySQL 데이터 마이그레이션- 4.데이터 분석 MySQL 마이그레이션: 데이터 마이그레이션 실행(Execution) 단계🛠️ 1. 사전 준비 작업(Pre-Migration Tasks)마이그레이션 실행 전에 반드시 다음을 준비합니다:AWS DMS 권한 확인:소스(MSSQL) 및 타겟(MySQL) RDS 인스턴스에 필요한 권한을 부여해야 합니다.VPC 및 네트워크 구성 점검:AWS DMS 인스턴스가 소스 DB와 타겟 DB에 접근할 수 있는지 확인.성능 모니터링 설정:CloudWatch를 통해 DMS 마이그레이션 성능을 실시간 모니터링하도록 설정.백업 수행:소스 및 타겟 데이터베이스의 스냅샷을 생성.🔐 1-1. IAM 정책 구성AWS DMS에 필요한 최소 권한을 IAM 역할에 할당해야 합니다.IAM 정책 예제:{ "Version": "2012-1..
MSSQL -> MySQL 데이터 마이그레이션- 3.데이터 매핑 및 변환 데이터 매핑(Data Mapping) 및 변환 단계🧩 1. 데이터 매핑(Data Mapping)목표: MSSQL과 MySQL 간의 데이터 타입, 구조, 객체 매핑을 체계적으로 정의하고 변환 규칙을 수립합니다.📚 1-1. 데이터 타입 매핑MSSQL MySQL 설명/주의사항INTINT동일BIGINTBIGINT동일SMALLINTSMALLINT동일TINYINTTINYINT동일DECIMAL(p,s)DECIMAL(p,s)동일FLOAT/REALFLOAT동일MONEY/SMALLMONEYDECIMAL(19,4)정밀도 수동 설정 필요DATETIME2DATETIME정밀도 확인(마이크로초 차이 있음)SMALLDATETIMEDATETIME분 단위까지만 기록됨DATEDATE동일TIMETIME동일CHAR(n)CHAR(n)동일N..
MSSQL -> MySQL 데이터 마이그레이션- 2.데이터 분석 데이터 분석(Assessment and Analysis) 단계🔍 1. 데이터베이스 구조 분석1-1. 테이블 구조 확인테이블 개수, 컬럼 타입, 제약 조건(FK, PK), 인덱스를 파악해야 합니다.MSSQL 쿼리 예제:-- 테이블 리스트 조회SELECT TABLE_SCHEMA, TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE';-- 테이블 컬럼 상세 조회SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLEFROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_SCHEMA = 'dbo'; 주요 분석 포인트:테이블 개수..