DB Migration to Azure Database for PostgreSQLrockplace
Migration from Oracle to PostgreSQL using Azure DMS
-Table of contents-
1) Azure DMS Introduction
2) What are the Azure DMS restriction ?
3)Guide Quick for Azure DMS
4) Test Environment for Migration
5) Migration Progression Procedure
6) DEMO
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성
게임 서비스 아키텍처에서 관계형 데이터베이스는 핵심 컴포넌트이며 또한 전체 서비스의 성능 병목 지점이 되곤 합니다. 이 세션에서는 AWS 상에서 게임 서비스를 구현할 때, 기존 물리환경에서의 DB 성능과 동일하거나 더 높은 성능을 얻을 수 있는 구성을 설명 드리며, MS SQL 구성의 성능 데모를 시연하고자 합니다.
DB Migration to Azure Database for PostgreSQLrockplace
Migration from Oracle to PostgreSQL using Azure DMS
-Table of contents-
1) Azure DMS Introduction
2) What are the Azure DMS restriction ?
3)Guide Quick for Azure DMS
4) Test Environment for Migration
5) Migration Progression Procedure
6) DEMO
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성
게임 서비스 아키텍처에서 관계형 데이터베이스는 핵심 컴포넌트이며 또한 전체 서비스의 성능 병목 지점이 되곤 합니다. 이 세션에서는 AWS 상에서 게임 서비스를 구현할 때, 기존 물리환경에서의 DB 성능과 동일하거나 더 높은 성능을 얻을 수 있는 구성을 설명 드리며, MS SQL 구성의 성능 데모를 시연하고자 합니다.
엄청난 동시 접속 수로 고사양이 요구되는 게임 '배틀그라운드'! 속도가 중요한 게임 서비스에서 가장 필요한 고성능 서버입니다. 배틀그라운드 사례 뿐아니라 SK텔레콤도 선정하여 사용하고 있는 네이버클라우드플랫폼 베어메탈 서버에 대해 소개합니다 | Battlegrounds is a game that requires a lot of simultaneous access! High-performance servers most needed for speed-critical gaming services. In addition to the case of Battlegrounds, SK Telecom has selected and used Naver Cloud Platform Bare Metal Server.
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
몇년 전부터 Data Architecture의 변화가 빠르게 진행되고 있고,
그 중 Cloud DW는 기존 Data Lake(Hadoop 기반)의 한계(성능, 비용, 운영 등)에 대한 대안으로 주목받으며,
많은 기업들이 이미 도입했거나, 도입을 검토하고 있다.
본 자료는 이러한 Cloud DW에 대해서 개념적으로 이해하고,
시장에 존재하는 다양한 Cloud DW 중에서 기업의 환경에 맞는 제품이 어떤 것인지 성능/비용 관점으로 비교했다.
- 왜기업들은 CloudDW에주목하는가?
- 시장에는어떤 제품들이 있는가?
- 우리Biz환경에서는 어떤 제품을 도입해야 하는가?
- CloudDW솔루션의 성능은?
- 기존DataLake(EMR)대비 성능은?
- 유사CloudDW(snowflake vs redshift) 대비성능은?
앞으로도 Data를 둘러싼 시장은 Cloud DW를 기반으로 ELT, Mata Mesh, Reverse ETL등 새로운 생테계가 급속하게 발전할 것이고,
이를 위한 데이터 엔지니어/데이터 아키텍트 관점의 기술적 검토와 고민이 필요할 것 같다.
https://blog.naver.com/freepsw/222654809552
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
2013년 7월 16일 일본에서 진행된 AWS 八木橋 徹平 솔루션스 아키텍트의 기술 웨비나 발표 자료를 한국의 정윤진 솔루션스 아키텍트가 한글로 번역한 자료입니다. 웨비나 당시와 현재의 내용이 상이한 부분이 있을 수 있으니 자료 열람에 이 점 참고하시기 바라며, 혹 내용에 대한 문의사항이 있으신 경우 info-kr@amazon.com으로 연락 부탁드리겠습니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
엄청난 동시 접속 수로 고사양이 요구되는 게임 '배틀그라운드'! 속도가 중요한 게임 서비스에서 가장 필요한 고성능 서버입니다. 배틀그라운드 사례 뿐아니라 SK텔레콤도 선정하여 사용하고 있는 네이버클라우드플랫폼 베어메탈 서버에 대해 소개합니다 | Battlegrounds is a game that requires a lot of simultaneous access! High-performance servers most needed for speed-critical gaming services. In addition to the case of Battlegrounds, SK Telecom has selected and used Naver Cloud Platform Bare Metal Server.
본 세션에서는 Amazon의 관리형 데이터베이스 서비스(RDS) 중 기존 상용데이터베이스의 5배 성능 및 1/10 가격으로도 확장성을 보장하는 Aurora에 대한 소개 및 사용법 그리고 기존의 DB에서의 마이그레이션 방법에 대해 소개해드립니다. 10월 리인벤트를 통해 동경 리전에 Aurora를 사용가능하게 되었습니다.
Cloud dw benchmark using tpd-ds( Snowflake vs Redshift vs EMR Hive )SANG WON PARK
몇년 전부터 Data Architecture의 변화가 빠르게 진행되고 있고,
그 중 Cloud DW는 기존 Data Lake(Hadoop 기반)의 한계(성능, 비용, 운영 등)에 대한 대안으로 주목받으며,
많은 기업들이 이미 도입했거나, 도입을 검토하고 있다.
본 자료는 이러한 Cloud DW에 대해서 개념적으로 이해하고,
시장에 존재하는 다양한 Cloud DW 중에서 기업의 환경에 맞는 제품이 어떤 것인지 성능/비용 관점으로 비교했다.
- 왜기업들은 CloudDW에주목하는가?
- 시장에는어떤 제품들이 있는가?
- 우리Biz환경에서는 어떤 제품을 도입해야 하는가?
- CloudDW솔루션의 성능은?
- 기존DataLake(EMR)대비 성능은?
- 유사CloudDW(snowflake vs redshift) 대비성능은?
앞으로도 Data를 둘러싼 시장은 Cloud DW를 기반으로 ELT, Mata Mesh, Reverse ETL등 새로운 생테계가 급속하게 발전할 것이고,
이를 위한 데이터 엔지니어/데이터 아키텍트 관점의 기술적 검토와 고민이 필요할 것 같다.
https://blog.naver.com/freepsw/222654809552
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study
이 세션에서는 넥슨의 Case study를 통하여 글로벌플랫폼 구축을 위해 기존 플랫폼을 AWS로 Migration하는 과정 및 발생가능한 이슈를 공유합니다. 넥슨이 DB서버를 이전하는 과정 속에서 마주한 기술적 고민과 이슈를 통하여 AWS 활용 시 고려해야 할 부분들에 대해 소개하고 함께 이야기 나누고자 합니다.
2013년 7월 16일 일본에서 진행된 AWS 八木橋 徹平 솔루션스 아키텍트의 기술 웨비나 발표 자료를 한국의 정윤진 솔루션스 아키텍트가 한글로 번역한 자료입니다. 웨비나 당시와 현재의 내용이 상이한 부분이 있을 수 있으니 자료 열람에 이 점 참고하시기 바라며, 혹 내용에 대한 문의사항이 있으신 경우 info-kr@amazon.com으로 연락 부탁드리겠습니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
[Uws] enterprise application architecture, msa, java9, spring 소개HYUN-JOO LEE
회사 교육용으로 만든 자료입니다. 엔터프라이즈 어플리케이션 아키텍처의 개념부터 시작하여 마이크로서비스 아키텍처와 기존 모놀리식 아키텍처 비교하고 왜 우리가 자바9에 집중해야 하는지 설명하려고 만든 자료입니다. 현재 회사에서 진행하고 있는 클라우드 어플리케이션 통합/아키텍처링 사업과 PoC 플랫폼 개발을 위한 회사 내부 교육용으로 만들었습니다. MSA 부분은 IBM Blumix 밋업 자료에서 발췌했습니다. 잘못된 부분이나 다른 의견이 있으신 분 댓글이나 메세지 주세요. hjlee@uws.co.kr
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
깔끔하게 스프링 프레임워크 세팅하는 것에 대한 이야기 입니다.
군살없이 프레임워크를 세팅한다는 의미와 이유, 그리고 스프링 기본 설정 및 설정들의 역할에 대해서 정리해 보았습니다.
This presentation is about Spring framework.
I want to talk about the way to setting the spring framework as tidy in this presentation.
1. 자바빈
[1995년] JAVA 탄생, 애플릿의강력함에매력
[1996년12월] Sun MicroSystems에서 자바빈1.0 명세발표, (자바를 위한 소프트웨어 콤포넌트 모델을 정의) 자바빈즈는 너무 단순했고, 개발자는 엔터프라이즈 개발자들은 좀 더 나은 것을 원함. 정교한 애플리케이션은 트랜잭션 지원, 보안, 분산컴퓨팅같은 서비스가 필요한데 반해 자바빈즈는 너무 단순함
[1998년3월] EJB 1.0 발표. EJB는엔터프라이즈급의 서비스를 제공하고 자바 콤포넌트의 사상을 서버측으로 확장했지만 원래의 자바빈즈가 가지고 있던 단순함은 잃어버림. 성공한 많은 애플리케이션이 EJB를 기반으로 구축되었음에도 EJB는본래 의도와 달리 엔터프라이즈 애플리케이션 개발을 단순화하지는 못함. 모든버전의EJB 명세에는“EJB는엔터프라이즈 애플리케이션의 작성을 쉽게 해준다” 라고 되어있다. EJB의 선언적 프로그래밍 모델이 트랜잭션, 보안과 같은 개발의 기반 구조의 여러 측면을 단순화했지만 배치설명자(Deployment Descriptor), 홈 인터페
이스, 원격인터페이스 등과 같은 과도한 코드를 기술하도록 함으로써 복잡성을 가중시켰고 시
간이 지날수록 개발자들은 환멸을 느꼈으며 결국 EJB 명성은 쇠퇴하기 시작했다.
2. 목차
1. 스프링 기본 정리
2. 스프링 웹 개발
3. 데이터로 작업하기
4. 스프링 시큐리티
5. 마무리
3. 1. 스프링 기본 정리
1.1 스프링이란 뭘까?
- 스프링은 개발자에게 있어서 겨울이 가고 봄이 왔다는 의미로 이름 붙여진 프레임워크이다.
- 저에게 있어서 스프링은 막연히 이해하기 어려운 수수께끼 같은 존재였다.
- 스프링 인 액션을 통해서 스프링에 접근하면서 스프링에 대한 인상이 바뀐 것은 결국 스프링도 도구에 불과하다는 것이다.
스프링도 리모콘처럼 도구에 불과
4. 1. 스프링 기본 정리
1.2 스프링의 핵심 개념
- 애플리케이션 컨텍스트라는 컨테이너를 통한 컴포넌트의 관리
- 컴포넌트는 애플리케이션을 이루는 구성요소로 컴포넌트들 간에서는 서로 관계를 이루면서 하나의 애플리케이션이 작동하게끔
한다.
- 하지만 이 관계를 맺을 때에 생길 수 있는 여러 까다로운 문제들을 매번 관리해주는 건 귀찮고도 반복적인 문제
- 이를 해결 시켜 줄 수 있는 개념이 애플리케이션 컨텍스트에서 각각의 컴포넌트의 생성하고 관리하며 필요한 객체를 주입시킨다
는 개념
- 특히 하나의 컴포넌트가 다른 컴포넌트의 기능을 필요로 할 때, 그 기능을 주입시켜주는 것을 의존성 주입(Dependency
Injection)이라고 한다.
- 초기 스프링 버전에서는 XML파일을 이용하여 애플리케이션 컨텍스트에게 컴포넌트의 관계를 관리했지만 후기에는 자바 기반으
로 구성도 가능하게 되었다.
- 스프링부트에서는 자동-구성 기능이 크게 향상되어 XML이나 자바로 이루어진 구성 코드 작성을 현격하게 줄여준다.
5. 2. 스프링 웹 개발
2.1 스프링MVC
- 스프링 웹 개발은 일반적으로 스프링MVC라고 하는 구조에 따라 이루어진다.
- Controller가 웹 요청과 그에 따른 응답을 처리한다.
- Model은 데이터저장소와 연동하여 사용자가 입력한 데이터나 출력할 데이터를 다루는 일을 한다.
- View는 사용자에게 출력할 화면을 만드는 일을 한다.
웹 브라우
저
요청
타코
디자인
컨트롤러
식자재
요청
디자인
뷰
HTML
6. 2. 스프링 웹 개발
2.2 GET 요청 처리하기
- /design 요청과 응답을 처리하는 컨트롤러클래스
- @Controller 애노테이션을 통해서 애플리케이션
컨텍스트에서 관리하도록 등록
- 데이터베이스와 연동하지 않았기에 리스트로 직접
관리되고 있는 데이터를 model 객체를 통해서 운반
- 논리적 뷰 이름인 design을 반환하여 해당 뷰를 출
력하게끔 한다.
- 모델에 담긴 정보가 선택지로 제시되는 페이지가 만
들어진다.
7. 2. 스프링 웹 개발
2.2 Post 요청 처리하기
- 타코 디자인 페이지에서 선택하여 제출한 재료들과 이
름을 처리하기 위해서 /design을 처리하는 클래스에
@PostMapping 애노테이션이 달린 메서드를 작성
- 제출한 재료들을 데이터베이스에 담을 계획이지만 데
이터베이스와 연동하는 방법인 jdbc와 jpa를 아직 다
루지 않았기에 생략.
- redirect:를 통해 /orders/current 상대경로로 재접
속되어야 한다.
- /orders/current 요청을 처리할 수 있는 컨트롤러도
작성한다. 뷰의 논리적 이름인 orderForm으로 조회
할 수 있게한다.
- 도메인 클래스에서 Hibernate Validator의 애노테이
션으로 NotNull, Size 등 유효성 검사를 할 수 있다.
8. 3. 데이터로 작업하기
3.1 개요
- 관계형 데이터베이스는 범용 데이터 저장소로서 광범위하게 활용되고 있다. 이를 활용하는데에 있어서 자바 개발자가 고려해볼
수 있는 두 가지 방법이 JDBC와 JPA이다. JDBC는 JDBC템플릿을 기반으로 두고 데이터베이스와 연결하는데 반복적으로 쓰이
는 부분을 템플릿화 해서 실질적으로 필요한 쿼리만 작성하게끔 할 수 있도록 도우며 JPA는 리포지터리 인터페이스를 기반으로
인터페이스를 구현하는 리포지터리를 자동 생성해준다.
3.2 JDBC를 사용한 데이터 읽고 쓰기
- JDBC를 사용하기 위해 빌드 명세에 jdbc를 추가한다.
- 리포지터리 인터페이스를 통해서 해야할 일을 정의한다.
- 인터페이스를 구현하면서 @Repository로 애플리케이션 컨텍스트에서 컴포넌트 검색을 할 수 있게 한다. 그렇게해서
JdbcTemplate를 주입 받는다.
9. 3. 데이터로 작업하기
3.3 Jdbctemplate를 이용한 쿼리 작성
- JdbcTemplate를 이용하여 예외처리, DB연결객체 생성 등의 코드 없이 SQL을 작성하고 해당 데이터를 처리하는 과정에만 집
중할 수 있게 되었다.
- 컨트롤러에서 리포지터리를 주입받아 데이터베이스에 접근 가능하다.
10. 3. 데이터로 작업하기
3.4 JPA를 이용하여 데이터 저장하고 사용하기
- JPA를 빌드 명세에 포함시킨다.
- 도메인 객체에 애노테이션을 추가한다.
- JPA개체로 선언하려면 @Entity 애노테이션을 추가해야한다
- JPA는 인자없는 생성자를 필요로 하기에 @NoArgsContructor 애노테이션을 추가한다.
- Id속성에는 @Id애노테이션으로 데이터베이스의 개체를 고유하게 식별함을 알려야 한다.
- 다른 도메인들도 마찬가지로 애노테이션을 덧붙인다.
- @GeneratedValue애노테이션은 Id값을 어떻게 생성할 것인가를 설정할 수 있게한다. AUTO로 설정하면 데이터베이스가 자동
으로 생성한다.
- @ManyToMany는 Ingredient들과의 관계를 나타내기 위해 사용된다.
- @PrePersist는 Taco객체가 저장되기 전에 일자를 저장하도록 설정한다.
11. 3. 데이터로 작업하기
- JPA리퍼지터리를 선언한다.
- CrudRepository 인터페이스에는 연산을 위한 메서드가 선언되어 있다.
- 위의 인터페이스를 구현할 필요 없이 JPA가 각각의 인터페이스 구현을 자동으로 실행해준다.
- 만들어진 메서드를 JDBC를 활용하듯이 활용하는 것으로 동작하는 것을 확인할 수 있다.
- JPA는 메서드 이름 처리(동사, 생략 가능한 처리 대상, By 단어, 서술어)를 통해서 원하는 연산을 해낼 수 있다.
12. 4. 스프링 시큐리티
4.1 스프링 시큐리티 활성화하기
- 웹을 통해서 데이터를 다루는데에 있어서 보안은 매우 중요하다. 스프링 시큐리티는 스프링 애플리케이션을 안전하게 하는데에
도움을 준다. 이를 활성화 하기 위해서는 pom.xml에 스프링 시큐리티 의존성을 추가한다.
- 의존성을 추가하는 것만으로 페이지에 접근하는데에 인증절차가 요구된다.
- 이는 하나의 사용자에 암호화된 비밀번호로 모든 요청 경로에 인증이 되게끔 요구하는 극히 제한적인 보안 구성으로서 제공된다
. 따라서 자동-구성을 대체하여 원하느대로 구성하는 작업을 해야한다.
13. 4. 스프링 시큐리티
4.2 스프링 시큐리티 구성하기
- SecurityConfig 클래스를 만들어 이곳에서 보안 관련 처리를 원하는대로 조정한다.
- 자동-구성으로 제공되던 user 한 명의 사용자만이 아닌 여러 사용자를 관리하고자 하는 시스템을 만들고자 한다면 스프링 시큐
리티에서 제공하는 사용자 스토어 구성 방법을 알아야 한다.
- 인메모리 사용자 스토어, JDBC 기반 사용자 스토어, LDAP 기반 사용자 스토어, 커스텀 사용자 명세 서비스가 그 네 가지이다.
4.3 인메모리 사용자 스토어
메모리에서 사용자 정보를 유지 관리하는 것으로 사용자 변경이 필요없는 제한적인 상황에서만 쓰인다.
14. 4. 스프링 시큐리티
4.4 JDBC 기반 구성
- 관계형 데이터베이스와 연동하여 유저명과 비밀번호 권한을 유지 관리한다. 데이터베이스에 평범한 비밀번호를 그대로 저장하는
것은 보안 상 허점이 될 수 있기에 passwordEncoder를 통해 암호화 한다.
15. 4. 스프링 시큐리티
4.5 LDAP 기반 구성
- LDAP 기반 보안 구성은 사용자가 직접 LDAP 서버에서 인증 받도록 하는 것이다. 비밀번호를 인증하는 과정이나 비밀번호를 비
교하는 과정이 서버에서 이루어지기에 노출되지 않을 수 있다.
- 스프링 시큐리티에서 제공하는 LDAP 서버를 의존성에 추가함으로서 사용할 수 있다.