Aug 15, 2019 - Safe Deploy - 안전하게 L4 에서 제외하는 방법

6월 달까지 배포할때 L4에 접속하여 처리했습니다.

여하튼, L4에서 서버를 ena, dis 를 하지 않고, 어플리케이션에서 제어할 수 있는 방법이 전 회사에서는 있었습니다. 외부 웹페이지에서 특정권한만 공유하여, 웹페이지에서 버튼 하나로 붙였다가 띄었다가 하는 형태인데요.

현재 회사에서는 해당 페이지에 별도의 권한이 없이 모든 권한이 있는 페이지형태로 접근하는 것이라, telnet 으로 접속하여 처리하였습니다.

그러다가 6월 경 증 Meetup의 글을 보게 되었습니다. Safe Deploy - 안전하게 L4 에서 제외하는 방법인데요.

방화벽 룰에 L4 쪽 IP 를 추가해서, L4에서 health check 시 서버가 죽었다고 판단하는 방법이었습니다.

배포할 deploy 서버에 접속하여, 들어오는 요청을 DROP하는 방화벽 룰 추가하여 L4 에서 제거하는 방법으로

sudo iptables -A INPUT -s L4ip -p tcp --dport 80 -j DROP

배포 완료 후, 방화벽 룰을 삭제하여 다시금 L4를 통해 유입되도록 합니다.

sudo iptables -D INPUT -s L4ip -p tcp --dport 80  -j DROP

위의 방법으로 대략 5~10초 정도 안에 유입이 중단되었다가 다시 유입되는 것을 확인했습니다. 해당 글을 보고 아이덴티티에 엄청난 충격을 주었습니다. iptables 을 알고 있고, L4 Ip도 알고 있는데, 해당 방법을 연결해서 사용하는 것을 생각하지 못했던 겁니다. 바로 서버한대에 테스트를 진행해봤는데, L4 에 접속해서 enable, disable 하지 않고도, 안정적으로 deploy 할 수 있었습니다.

6월달부터, 안정적인 배포를 진행하고 있었는데, 생각이 나는 김에 정리해서 올립니다.


참조


Aug 13, 2019 - NetworkInterface.getNetworkInterfaces

String hostAddr = null;
        try {
            Enumeration<NetworkInterface> nienum = NetworkInterface.getNetworkInterfaces();
            while (nienum.hasMoreElements()) {
                NetworkInterface ni = nienum.nextElement();
                Enumeration<InetAddress> kk= ni.getInetAddresses();
                while (kk.hasMoreElements()) {
                    InetAddress inetAddress = kk.nextElement();
                    if (!inetAddress.isLoopbackAddress() &&
                            !inetAddress.isLinkLocalAddress() &&
                            inetAddress.isSiteLocalAddress()) {
                        hostAddr = inetAddress.getHostAddress();
                        logger.info("hostAddr ########### {}", hostAddr);
                    }
                }
            }
        } catch (SocketException e) {
            logger.error("######### Memory Load #########",e);
        }

프로퍼티로 관리하고 있는 서버가 있는데, 특정 서버에서만 별도의 동작을 수행하기 위하여, IP를 체크한 후 해당 아이피에 따른 SERVER_TYPE 을 정의하여, IP별로 서비스 구분을 하거나, 하나의 IP서버에만 특정 기능이 동작하도록 구현하였습니다.

문제는 이렇게 할 경우, 서버가 증설하여 그룹해야할 IP가 추가될 때마다 일일이 추가해야하는 문제가 있습니다.

Aug 12, 2019 - Linux on DeX

노트 10 구매 후 Linux on Dex를 통해 IntellJ를 실행해서 가지고 코딩을 할 수 있는지 확인하기 위해, 사전에 설치 방법을 기록에 남깁니다.

사이트 : https://www.linuxondex.com/

노트 10 이 나오는데 아직 홈페이지에는 Note 9 까지의 내용밖에는 업데이트가 안되어있네요.
Goolge play 에서 혹은 삼성갤럭시 앱에서 “Linux on DeX” 를 다운 받습니다.

https://webview.linuxondex.com/ 의 링크에 linux images 다운로드 링크가 있습니다.

Ubuntu 16.04
 - Modified Ubuntu 16.04 LTS version distributed by Canonical
 - Version:ubuntu16_v016
 - Download Size:3.7Gb
 - Estimated Storage Size:13.7Gb

작년 11월 이후의 바뀐 내용은 없어 보입니다. 다운받은 후 압축을 풀고, 해당 이미지를 선택합니다.

압출풀기를 진행 한 후, 컨테이너 생성하는 화면에서 압축을 푼 이미지를 선택합니다.
사이즈를 늘리며 셋팅을 완료합니다.

2019-08-27 추가업데이트

Note 10 + 를 수령받아 Linux on Dex 를 설치했지만 정상동작되지 않았습니다.

관련주소

We certainly appreciate your interest in our products! Unfortunately, we are unable to speculate about the release of future updates. Please stay tuned to the page, and we will post publicly when an update becomes available. Thanks!

언제 적용될 수 있을지 기약없는 기다림이 지속되겠군요.


참조