2018년 1월 11일날자로 “Amazon RDS 읽기 전용 복제본은 이제 다중 AZ 배포를 지원합니다.” 를 발표했다. 한글화를 하니까 그런지 잘 와닫지 않는데, URL 주소를 보면 확실히 이해가 될 것이다. 그런데, 저 글에서 한가지 불만이 있다. 다이어그램이 없다는 거!! 하지만 놀랍게도 AWS 의 트위터에서 이것을 소개하는데 다이어그램이 있었다. 그래서 다이어그램을 첨부한다. 링크에 내용 중에 다음을 주목할 필요가 있다. 이제 프로덕션 데이터베이스에 대한 재해 복구(DR) 전략의 일부로서 다중 AZ과 함께 읽기 전용 복제본을 사용할 수 있습니다. 잘 설계 및 테스트된 DR 계획은 재해 […]
Amazon S3 버킷 성능 끌어올리기
이글은 “How do I improve the performance of my S3 bucket?” 의 내용을 번역한 것입니다. 오역이 있을 수 있습니다. 이슈 Amazon S3 에 작업부하(workload)가 굉장히 높을때, S3 성능은 작업부하에 맞춰서 확장되지 않는다. 이런 상황이 발생하면 때때로 HTTP 500, 503 에러를 받게된다. 다음과 같은 작업부하에서 어떻게 Amazon S3 버킷의 성능을 최적화 할 수 있을까? 100 request/sec 넘는 혼합된 요청 타입(GET, PUT, DELETE 혹은 GET bucket) 300 request/sec 넘는 GET 요청. 개관 Amazon S3 는 각 AWS 리전에서 Object Key 이름의 인덱스(index) […]
CentOS 6 버릴때가 됐다.
이제 CentOS6 은 버릴때가 됐다. 오늘 PHP 7 버전을 설치하려고 보니 crypto library 가 sodium 을 필요로 하는데 이게 버전이 1.0 이상 버전이다. 문제는 이 버전을 설치하기위해서는 autoconf, automake 를 별도로 설치해줘야 하며 libzip 의존성에서도 1.0 버전 이상을 요구해 의존성 패키지가 계속 생긴다. CentOS6 에서의 컴파일러 관련 패키지들이 버전이 낮은게 문제가 계속 되고 있다. CentOS6 의 End of life 는 2020년 11월 30일까지로 아주 오랜기간동안 지원을 해왔다. 어떤 소프트웨어를 아주 오랜기간 지원을 한다는 것은 매우 어려운 일인데, 이렇게 오랬동안 지원해준데에 감사할 […]
MySQL 5.7 초기화 오류 메시지
MySQL 5.7 이 릴리즈 된지도 오래 지났다. 인기 있는 데이터베이스 시스템이라서 그런지 현장에서 많이 쓰이는 거 같다. 무엇보다도 Replication 기능의 향상이 많은 사용자를 끌어들이는 느낌이다. 이 글에서는 개인적으로 MySQL 5. 7 를 사용하면서 느낀 변화에 대해서 기술하고자 한다. 변화에 대한 기술은 MySQL 5.6 과 비교한 것이다. 데이터베이스 초기화 기존에는 mysql_install_db 를 사용했지만 이제는 mysqld 에 옵션으로 –initialize 를 주고 실행하면 시스템 데이터베이스와 테이블, innodb 저장소등을 만들어준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
]# /opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql 2018-02-08T14:20:14.336639Z 0 [Warning] The syntax '--log_warnings/-W' is deprecated and will be removed in a future release. Please use '--log_error_verbosity' instead. 2018-02-08T14:20:14.336744Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2018-02-08T14:20:14.456328Z 0 [Warning] option 'innodb-autoextend-increment': unsigned value 10485760 adjusted to 1000 2018-02-08T14:20:14.464747Z 0 [Warning] InnoDB: Using innodb_support_xa is deprecated and the parameter may be removed in future releases. Only innodb_support_xa=ON is allowed. 2018-02-08T14:20:14.464756Z 0 [Warning] InnoDB: Using innodb_file_format is deprecated and the parameter may be removed in future releases. See http://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html 100 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2018-02-08T14:21:31.006740Z 0 [Warning] InnoDB: New log files created, LSN=45790 2018-02-08T14:21:31.453291Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2018-02-08T14:21:31.529545Z 0 [ERROR] unknown variable 'log_bin_basename=/opt/dbstorage/mysql/binlog/localhost-01-bin' 2018-02-08T14:21:31.529560Z 0 [ERROR] Aborting |
기존의 MySQL 5.6 에서 사용하는 my.cnf 파일을 가져다 초기화를 하면 위와 같이 warining […]
AWS Certified Solutions Architect – Associate Exam 시험 후기
AWS 자격증 시험 으로 다양한 종류가 있는데, AWS Certified Solutions Architect – Associate Exam 도 그중에 하나다. 아마도 시스템 인프라를 다루는 사람들이라면 제일 먼저 도전하게 되는 AWS 자격증 시험 인데, 이 글은 이 시험에 대한 후기이며 앞으로 이 시험을 준비하는 사람들을 위해서 도움이 되길 희망한다. 시험준비 – 교재 AWS 를 현장에서 사용하고 있다고 하더라도 AWS 자격증 시험 을 치르는 것은 또다른 문제다. AWS 서비스 자체가 매우 방대하고 시험에서 중점적으로 어느부분을 테스팅 하는지 모르기 때문에 현장의 경험에만 의존해 시험을 치루기에는 무리가 […]
Trac 설치 및 실행
현재(2018년)에 Trac 을 설치해서 사용하는 사람이 있을지 모르겠지만, 개인적으로 뭔가를 할때 제일 좋은 툴은 것 같다. 그런데, Trac 설치는 가끔 하는거라 할때마다 헤메곤 하는데 기록해두기 위해서 이 글을 작성한다. Python 2.7 Trac 은 현재 Python 2.7 에서 잘 작동한다. Python 2.7 이 설치되어 있어야 한다. 현 시점에서 CentOS 7, Ubuntu 16.04 LTS 에서 기본으로 Python 2.7 이 설치되어 있어 별도로 Python 2.7 을 설치할 필요는 없다. pip, setuptools 설치 Trac 뿐만 아니라 Python 의 라이브러리를 설치하기 위해서 pip 를 이용한다. […]
한국인의 정신적 질병.. 사람 관계 좋아=성격 좋아=밝아
2018년… 또 한해가 밝았다. 어쩌면 한 해를 시작할때마다, 오래전 부터, 뭔가 강도가 세지는 느낌을 받곤 했다. 뭔가 나를 옥죄어 온다는 그런 답답함, 불합리적인 무언가가 올 한 해도 나를 옥죌 거라는 힘든 생각이 한 해가 밝을때 마다 강하게 든다. 지금까지는 그것이 무엇인지를 모르는 상태에서 답답함이 나를 힘들게 하는 것중에 하나였다. 도대체 뭘까.. 실체도 없는데 밀려오는 올가미를 그냥 앉아서 참고 견뎌야 하나… 하는 어떤 답답함… 그런데, 35세를 지나면서 그것이 실체가 무엇인지를 대충 알것만 같다. 그리고 그러한 답답함을 제공하는 원인에는 한국인이라는 사고체계가 근본적인 […]
PHP7 설치하기
이 문서는 php7.2 설치 문서 입니다. 1. 준비 CentOS 가 최소설치되었다고 가정하고 시작했기 때문에 컴파일 환경을 구축해야 합니다.
1 2 3 |
yum update -y reboot yum install gcc.x86_64 gcc-c++.x86_64 wget.x86_64 bzip2-devel.x86_64 pkgconfig.x86_64 openssl-devel.x86_64 make.x86_64 man.x86_64 nasm.x86_64 gmp.x86_64 gmp-devel.x86_64 curl-devel.x86_64 libicu-devel.x86_64 libsodium-devel.x86_64 gdbm-devel.x86_64 readline-devel.x86_64 compat-readline43.x86_64 ncurses-devel.x86_64 db4-devel.x86_64 automake* autoconf* -y |
Ubuntu16.04 의 경우에는 다음과 같은 프로그램이 설치되어 있어야 합니다.
1 2 3 4 5 |
apt clean all apt update apt install build-essential libsystemd-dev pkg-config libxml2-dev libssl-dev libbz2-dev \ libcurl3 libcurl4-openssl-dev libsodium-dev libjpeg9-dev libpng-dev \ libfreetype6-dev libxpm-dev libgmp10-dev libxslt1-dev |
2.Download and Unpack 최신버전을 다운로드 받아야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
]# wget http://jp2.php.net/get/php-7.2.1.tar.bz2/from/this/mirror --2018-01-07 00:17:28-- http://jp2.php.net/get/php-7.2.1.tar.bz2/from/this/mirror Resolving jp2.php.net... 49.212.134.217 Connecting to jp2.php.net|49.212.134.217|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://jp2.php.net/distributions/php-7.2.1.tar.bz2 [following] --2018-01-07 00:17:29-- http://jp2.php.net/distributions/php-7.2.1.tar.bz2 Connecting to jp2.php.net|49.212.134.217|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 14980278 (14M) [application/octet-stream] Saving to: `mirror' 100%[===================================================================================>] 14,980,278 6.55M/s in 2.2s 2018-01-07 00:17:31 (6.55 MB/s) - `mirror' saved [14980278/14980278] ]# tar xvjf mirror |
3. Configure and Compile 이제 PHP에서 사용할 기능들을 결정해야 합니다. PHP에서 제공하는 기능은 아주 많지만 여기서는 다음과 같은 기능들을 사용할 것입니다.
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 31 32 33 34 35 36 37 38 39 40 41 42 |
../configure --prefix=/opt/php-7.2.1 \ --with-config-file-path=/opt/php-7.2.1/etc \ --with-config-file-scan-dir=/opt/php-7.2.1/etc/conf.d \ --with-libdir=lib64 \ --enable-fpm \ --with-fpm-systemd \ --enable-sockets \ --with-gettext \ --with-mhash \ --with-gmp \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-freetype-dir=/usr \ --enable-bcmath \ --enable-exif \ --with-zlib \ --with-bz2 \ --enable-calendar \ --enable-mbstring \ --with-mhash \ --enable-intl \ --with-xsl \ --with-sodium \ --with-libxml-dir=/usr \ --with-curl \ --disable-debug \ --with-openssl \ --enable-mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --enable-inline-optimization \ --enable-sysvmsg \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex |
아무런 에러없이 끝났다면 다음과 같이 컴파일을 해주고 설치해준다.
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 31 32 |
]# make ]# make install Installing shared extensions: /opt/php-7.2.1/lib/php/extensions/no-debug-non-zts-20170718/ Installing PHP CLI binary: /opt/php-7.2.1/bin/ Installing PHP CLI man page: /opt/php-7.2.1/php/man/man1/ Installing PHP FPM binary: /opt/php-7.2.1/sbin/ Installing PHP FPM defconfig: /opt/php-7.2.1/etc/ Installing PHP FPM man page: /opt/php-7.2.1/php/man/man8/ Installing PHP FPM status page: /opt/php-7.2.1/php/php/fpm/ Installing phpdbg binary: /opt/php-7.2.1/bin/ Installing phpdbg man page: /opt/php-7.2.1/php/man/man1/ Installing PHP CGI binary: /opt/php-7.2.1/bin/ Installing PHP CGI man page: /opt/php-7.2.1/php/man/man1/ Installing build environment: /opt/php-7.2.1/lib/php/build/ Installing header files: /opt/php-7.2.1/include/php/ Installing helper programs: /opt/php-7.2.1/bin/ program: phpize program: php-config Installing man pages: /opt/php-7.2.1/php/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /opt/php-7.2.1/lib/php/ [PEAR] Archive_Tar - installed: 1.4.3 [PEAR] Console_Getopt - installed: 1.4.1 [PEAR] Structures_Graph- installed: 1.1.1 [PEAR] XML_Util - installed: 1.4.2 [PEAR] PEAR - installed: 1.10.5 Wrote PEAR system config file at: /opt/php-7.2.1/etc/pear.conf You may want to add: /opt/php-7.2.1/lib/php to your php.ini include_path /root/php-7.2.1/build/shtool install -c ext/phar/phar.phar /opt/php-7.2.1/bin ln -s -f phar.phar /opt/php-7.2.1/bin/phar Installing PDO headers: /opt/php-7.2.1/include/php/ext/pdo/ |
4. Configure to the installed php7 config-file-scan 디렉토리를 생성해 준다.
1 |
]# mkdir /opt/php-7.2.1/etc/conf.d |
[…]
Maven 저장소 URL 변경하기
Maven 3 을 쓰다보면 Update나 Build 시에 Maven은 어딘서가 의존성 패키지를 다운받는다. 다운받은 파일을 어디에 저장할 것인가 를 지정하는것이 localRepository 이다. 문제는 어딘가에서 받아오는 저장소 URL 이 간혹 접속이 불가할 경우가 문제가 된다. 나 같은 경우에 일하고 있는 사무실 환경에서는 어찌된 영문인지 Maven이 패키지를 제대로 가지고 오지 못하고 있었다. 원인은 “Connection Time Out” 으로서 “https://repo.maven.apache.org/maven2” 에 접속이 되지 않아 발생 했다. 자세히 보니 https 로 접속이 안되는 문제였다. 이와같이 접속이 불가능 할 경우에는 Maven 저장소 URL 을 바꿀 필요가 있다. […]
Maven 다중 모듈 프로젝트 구성
STS Eclipse를 이용하면 손쉽게 Spring MVC 프로젝트를 구성할 수 있다. Spring MVC 프로젝트에는 Java 파일과 Web Content 파일을 모두 포함한다. 이를 Dynamic Content, Static Content 등로 구분하기도 한다. 문제는 이렇게 하나의 프로젝트에 모든 것을 담을 경우에 다음과 같은 문제가 발생할 수 있다. 분리 배포가 불가능 하다. 요즘에는 WAS 앞에 Web 서버를 따로 두어 Static Content 를 서비스 하는 아키텍쳐가 많은데 하나의 프로젝트에 모든 것을 담게 되면 분리 배포가 어렵다. 단 하나의 큰 문제인데 이 문제를 가볍게 여길 수 없다. 실제 […]