2016.07.05 오늘의 구글링

오늘의 구글링

com.google.appengine.api.memcache.MemcacheServiceException: Memcache getIdentifiables: exception getting multiple keys는 대체 왜 자꾸 발생하는 거지?

  • query : com.google.appengine.api.memcache.MemcacheServiceException: Memcache getIdentifiables: exception getting multiple keys
    • Can you tweak GAE’s memcache timeout?
    • 흐흠. memcache 내부 proxy call이 오래걸리면서 발생하는 것인데, 이것 timeout을 짧게 가져가면 자동으로 retry하는 건지 다시 확인이 필요.
  • 결과 : memecache 내부 timeout 이슈
    • 추가분석
      • exeception을 던지는 메소드는 AsyncMemcacheServiceImpl.getIdentifiables() 요기네.
      • MemcacheSerialization.deserializeItem이 의심됨. deserialize가 오래 걸리는 걸까? 근데 막상 코드안에서는 timeout 날만한 곳이 안보이는데.

spot instance price가 무슨 말이지?

  • query : spot instance price aws
    • Amazon EC2 스팟 인스턴스 요금
    • 인스턴스 비용 절감을 위해 해당 리젼에서 예비로 생성된 인스턴스를 공급/수요에 따라 남아있는 것을 저렴한 가격으로 사용하는 방식이군. 가격은 입찰 방식으로 수요가 많으면 올라가는 방식. 신기하네 이런거 ㅋ
  • 결과 : 입찰방식의 과금
---------------------------------------- "2016.07.05 오늘의 구글링" 끝 ----------------------------------------
2016.07.04 오늘의 구글링

오늘의 구글링

Docker에서 run할때 container id로 run할 방법이 있나?

  • query : how to run enter container by id
  • 결과 : docker exec -it {container_id} /bin/sh

nginx랑 tomcat 연동은 어떻게하지? apache랑은 많이헀었는데 어떻게 다를려나

  • query : nginx tomcat 연동
    • nginx와 Tomcat 구성
    • 완전히 내 맘에드는 포스트는 찾지 못했고 일단 이걸 보니, nginx.conf를 좀 손봐서 처리해야겠다.
    • 일단 원하는 것은 모든 request는 tomcat으로 가고 static처리 가능한 파일들만 nginx로 가도록.
  • 결과 : nginx.conf configutation 문서를 좀 읽어봐야겠다.

docker에서 port forwarding은 어떻게하나?

  • query : docker port forwarding
    • 도커 치트 시트
    • 우왕 어제 봤던 문서에 또 왔네. 괜히 도커 치트시트가 아니네 궁금한 것이 여기 한자리에 다있네 따봉!
  • 결과 : docker run -p $HOSTPORT:$CONTAINERPORT -name CONTAINER -t someimage
---------------------------------------- "2016.07.04 오늘의 구글링" 끝 ----------------------------------------
내가 필요한 Docker Image 만들기

내가 필요한 Docker Image 만들기

일단 Build your own images 문서를 참고해서 나의 이미지를 만들고 저장해봅니다.. 이미지에 넣을 것들은 대강 아래의 것들

docker ubuntu 이미지를 받아서 위의 것들을 추가한 방식으로 이미지를 만들예정이다. 그럼 최우선으로 ubuntu 이미지를 받아봅니다.

$ docker login //docker hub 로그인
$ docker pull ubuntu:14.04 //ubuntu 14.04 받기.
$ docker images //정상적으로 받아졌나 내 로컬 레포에서 이미지 확인

이미지를 받았으면 이제 들어가세.

$docker -t -i ubuntu:14.04
root@19ae698863b3:/#  //container안으로 진입!

Tool 설치

이미지 안에서 이제 모듈 설치를 위해 ubuntu의 apt-get update하고 주루룩 설치해봅니다.

JDK8 설치

일단 apt-get repository 업데이트

root@19ae698863b3:/# apt-get update

OpenJDK부터 삭제. 매번 충돌나고 뭐 짜증이남. ㅋ

root@19ae698863b3:/# apt-get purge openjdk*

java8을 받기위해 apt-get에 repository를 추가하려면 아래를 먼저 설치해야한다.이안에 우리가 필요로하는 ‘add-apt-repository’ 가 있어서.

root@19ae698863b3:/# apt-get install software-properties-common

jdk가 있는 repository를 추가한다 webupd8team은 oracle 공식 repo가 아닙니다;;

root@19ae698863b3:/# add-apt-repository ppa:webupd8team/java

repo가 신규 추가되었으니 다시한번 업데이트

root@19ae698863b3:/# apt-get update

이제 JDK8 설치!

root@19ae698863b3:/# apt-get install oracle-java8-installer

Java 설치 버전확인

root@19ae698863b3:/# java -version

nginx 설치

nginx를 받기 위한 repository 추가

root@19ae698863b3:/# add-apt-repository ppa:nginx/development

레포 추가했으니 다시 apt-get 업데이트

root@19ae698863b3:/# apt-get update

그럼 nginx 설치

root@19ae698863b3:/# apt-get install nginx

tomcat 설치

Tomcat9 설치는 직접 tar.gz을 받아서 압축을 풀고 원하는 위치에 설지한다.

root@19ae698863b3:/# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-9/v9.0.0.M8/bin/apache-tomcat-9.0.0.M8.tar.gz

Tomcat9 tar.gz은 Apache Tomcat 9 사이트에서 주소를 확인한다.

gradle 설치

Gradle 설치도 한줄로 뙇

root@19ae698863b3:/# apt-get inatll gradle

git 설치

마지막 Git도 한방에 뙇!

root@19ae698863b3:/# apt-get inatll git

Docker 이미지 만들기

이제 이미지를 만들어볼 차례입니다. 우선 Docker container안에 접속하고 있다면 exit 명령어로 빠져나옵니다.

root@19ae698863b3:/# exit
$

Docker image를 만드는 것은 git과 비슷한 컨셉으로 해당 container상태를 repo정보,tag와 함께 commit을 하면 image가 생성이 됩니다. 이때 필요한 것이 container id 인데 자신의 container id를 모른다면 아래의 명령으로 이전에 수행된 container 이력을 통해서 확인할 수 있습니다.

$ docker ps -a

container id를 확인 하였으면 아래의 명령으로 commit을 합니다.

$ docker commit -m "initial commit" -a "nurinamu" {container_id} nurinamu/ubuntu:basic

Docker Image를 Docker hub에 올리기.

만들어놓은 이미지를 언제 어디서나 접근하기 위해서는 local이 아닌 remote 공간이 필요한데 Docker에서는 Docker Hub이라는 서비스를 제공하고 있습니다. 이제 이미지를 여기에 저장해보겠습니다. 하지만 이를 위해서는 우선 당연히 Docker Hub에 계정이 있어야합니다. 계정이 있거나 생성했다면 다음 명령어로 Docker hub에 접근합니다.

$ docker login

그럼 이제 image를 push합니다. git에 익숙한 분들은 commit/push/pull 명령어에 금방 익숙해지실 수 있습니다.

$ docker push nurinamu/ubuntu:basic

만약 위 명령에서 tag 없이 push 하면 같은 이미지이름을 가진 모든 태깅 이미지가 push 됩니다.

끝!

---------------------------------------- "내가 필요한 Docker Image 만들기" 끝 ----------------------------------------
2016.07.01 오늘의 구글링

오늘의 구글링

온프레미스(On-premises)가 무슨 말이야??

  • query : on premise 란
  • 결과 : 온프레미스는 자체 구축 ex)Github Enterprise을 사내 설치.
---------------------------------------- "2016.07.01 오늘의 구글링" 끝 ----------------------------------------
2016.06.29 오늘의 구글링

오늘의 구글링

nodejs 에서 비동기 호출을 좀 하고 싶은데 뭐가 있을까?

  • query : node js acync
  • 결과 : async.parallel()

javascript 에서 function을 넘길때 parameter도 넘기고 싶을때는 어떻게하지?

promise pattern을 사용하게되었는데 레퍼런스를 좀 봐야겠다.

javascript Array 객체를 copy하고 싶은데 좋은 방법이 있나?

---------------------------------------- "2016.06.29 오늘의 구글링" 끝 ----------------------------------------