[카테고리:] IT-스마트-모바일

IT, 스마트, 모바일 관련된 전반적인 이야기를 다룹니다.

  • Ubuntu Server 16.04 LTS Amazon Web Service Canonical AMI List (20160420.3)

    Image Ubuntu Server Inroduction Page
    [ From Ubuntu Server Inroduction Page (http://www.ubuntu.com/server) ]

    On https://cloud-images.ubuntu.com/query/xenial/server/released.txt , there isn’t ap-northeast-2 (Seoul Region) AMI image list,

    So I just make list include ap-notheast-2 AMI Images.

    ( There is a star (*) , and It means I added that images list myself from original file.)

     

    Also, you can check all of images of Ubuntu Server 16.04 LTS AMI Image number.

     

    I also make .txt file –> You can download from here.

     

    (한국 사용자를 위한 설명 : Ubuntu Server 16.04 LTS가 발표됨에 따라 드디어 서울 리즌에도 ami 이미지가 발표되었네요.
    Community AMI에서 찾으실 수 있고, 혹시 활용하실 분들을 위해 LTS로 발표된 이미지 목록을 아래 적어둡니다. 다른 리즌 AMI도 참고하셔도 좋습니다.)

     

    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-northeast-1	ami-3c5f4152			hvm
    xenial	server	release	20160420.3	instance-store	amd64	ap-northeast-1	ami-be5c42d0			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-northeast-1	ami-f25a449c	aki-176bf516	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	ap-northeast-1	ami-10a3bc7e	aki-176bf516	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-northeast-2	ami-5e844f30			hvm		*
    xenial	server	release	20160420.3	instance-store	amd64	ap-northeast-2	ami-609b500e			hvm		*
    xenial	server	release	20160420.3	io1		amd64	ap-northeast-2	ami-42975c2c			hvm		*
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-1	ami-fbe83c98			hvm
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-1	ami-f2e83c91			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-1	ami-0dea3e6e	aki-503e7402	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-1	ami-e8ee3a8b	aki-503e7402	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-2	ami-a5416cc6			hvm
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-2	ami-a0416cc3			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	ap-southeast-2	ami-f3416c90	aki-c362fff9	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	ap-southeast-2	ami-3d466b5e	aki-c362fff9	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-central-1	ami-f0eb089f			hvm
    xenial	server	release	20160420.3	instance-store	amd64	eu-central-1	ami-ebe70484			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-central-1	ami-e3e4078c	aki-184c7a05	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	eu-central-1	ami-61e5060e	aki-184c7a05	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-west-1	ami-3079f543			hvm
    xenial	server	release	20160420.3	instance-store	amd64	eu-west-1	ami-fb66ea88			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	eu-west-1	ami-777df104	aki-52a34525	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	eu-west-1	ami-d56fe3a6	aki-52a34525	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	sa-east-1	ami-567cf23a			hvm
    xenial	server	release	20160420.3	instance-store	amd64	sa-east-1	ami-9d7ff1f1			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	sa-east-1	ami-5a65eb36	aki-5553f448	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	sa-east-1	ami-0462ec68	aki-5553f448	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-east-1	ami-840910ee			hvm
    xenial	server	release	20160420.3	instance-store	amd64	us-east-1	ami-7a190010			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-east-1	ami-64140d0e	aki-919dcaf8	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	us-east-1	ami-736b7219	aki-919dcaf8	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-1	ami-d8e996b8			hvm
    xenial	server	release	20160420.3	instance-store	amd64	us-west-1	ami-8beb94eb			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-1	ami-53e99633	aki-880531cd	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	us-west-1	ami-e6ed9286	aki-880531cd	paravirtual
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-2	ami-fa82739a			hvm
    xenial	server	release	20160420.3	instance-store	amd64	us-west-2	ami-36837256			hvm
    xenial	server	release	20160420.3	ebs-ssd		amd64	us-west-2	ami-df8372bf	aki-fc8f11cc	paravirtual
    xenial	server	release	20160420.3	instance-store	amd64	us-west-2	ami-469d6c26	aki-fc8f11cc	paravirtual
  • 2016 AWS Summit Seoul (아마존 서밋 서울) 참석 후기

    2016 AWS Summit Seoul (아마존 서밋 서울) 참석 후기

    안녕하세요. 곰곰입니다.

    지난 2016년 1월에 아마존 웹 서비스가 서울 리즌을 정식적으로 발표한 이후, 3월 8일에 AWSome Day라고 하는 아마존이 주최하는 공개 교육 이벤트가 있었는데요. 저도 그 당시 참가했었고 블로그에 그 후기를 올렸던 적이 있었습니다(-> 2016 AWSome Day(AWS 어썸데이) 서울 참석 후기). 그 당시 5월 즈음에 AWS Summit Seoul이 있을 것이라고 그 때에 굉장히 큰 이벤트가 될 것이라고 이야기를 들었었습니다.

    저 또한 이번에 진행된 2016 AWS Summit Seoul에 참석했는데요. 이번에는 삼성역에 있는 코엑스에서 행사가 진행되었습니다.

    [ 삼성 코엑스 전경. 코엑스에 이런 행사를 구경가는 건 처음이었네요. ]
    [ 삼성 코엑스 전경. 코엑스에 이런 행사를 구경가는 건 처음이었네요. ]
    [ 코엑스 내부 전경 ]
    [ 코엑스 내부 전경 ]
     

    3층과 1층에 걸쳐서 서밋이 개최되었는데요. 확실히 클라우드에 대해 관심이 커진 면도 있었고, 아마존 웹 서비스에서 공을 들여서 진행하는 이벤트라는 생각이 들 정도로 부스나 트랙 진행장이 굉장히 컸었습니다.

    [ 3층 D홀로 안내하는 현수막 판. ]
    [ 3층 D홀로 안내하는 현수막 판. ]
    [ AWS Summit 1층 전경. 부스도 많았고 강연도 다양하게 진행되었습니다. ]
    [ AWS Summit 1층 전경. 부스도 많았고 강연도 다양하게 진행되었습니다. ]
     

    일단 이리저리 구경하기 전에 등록을 해야 했는데, 이번에는 바코드를 MMS나 이메일로 사전에 배포해서인지, 저번처럼 QR 코드 주변에 사람이 우루루(…) 몰려있지는 않았습니다. 저 또한 사전 등록 이후 받은 바코드를 통해 입장했습니다.

    [ 셀프 등록대. 바코드만 찍어서 등록하면 되서 굉장히 편했습니다. ]
    [ 셀프 등록대. 바코드만 찍어서 등록하면 되서 굉장히 편했습니다. ]

    등록 이후 9시부터 진행되는 사전 강연이 있었습니다. 저는 이번에 아마존에서 굉장히 푸시해주고 있어 보이는 관계형 DB 서비스인 Amazon Aurora에 대해 들어보러 갔는데요. MySQL과 호환되는 DB인데 어떻게 성능 퍼포먼스를 향상시켰는지에 대한 이야기를 들을 수 있어 흥미로웠습니다.

    10시부터 진행된 본 공연장에서는 동시통역기를 나누어 주었습니다. 아무래도 AWS 글로벌 세일즈 및 사업개발 부문 부사장이 와서 강연하기 때문에 한국어로 동시 통역을 진행하고 있었던 것 같스빈다.

    [ 아침강연장. AWSome Day보다 확실히 크기도 크고 사람들의 관심도 많았던 것 같습니다. ]
    [ 아침강연장. AWSome Day보다 확실히 크기도 크고 사람들의 관심도 많았던 것 같습니다. ]
    [ 강연을 한국어로 동시 통역해주거나 또는 영어로 동시 통역해주는 기계였습니다. 처음 받아봐서 신기했네요. ]
    [ 강연을 한국어로 동시 통역해주거나 또는 영어로 동시 통역해주는 기계였습니다. 처음 받아봐서 신기했네요. ]
    [ 등록증입니다. ]
    [ 등록증입니다. ]
     

    실제 강연이 진행되었는데, 아마존 웹 서비스가 지금까지 비약적으로 성장하고 있고 늘 지속적인 서비스 업데이트를 진행하며 혁신을 일궈내고 있다는 이야기였습니다. 삼성전자나 삼성SDS에서도 AWS를 어떤 방식으로 이용하고 있는지에 대해 이야기 또한 흥미로웠습니다.

    [ 염동훈 아마존 웹서비스 코리아 대표 ]
    [ 염동훈 아마존 웹서비스 코리아 대표 ]
    [ Mike Clayville 아마존 웹서비스 글로벌 세일즈 및 사업개발 부문 부사장 ]
    [ Mike Clayville 아마존 웹서비스 글로벌 세일즈 및 사업개발 부문 부사장 ]
    [ 아마존이 기존 마그네틱 하드디스크른 어떤 식으로 활용하고 있는지에 대해 이야기하는 부분. ]
    [ 아마존이 기존 마그네틱 하드디스크를 어떤 식으로 활용하고 있는지에 대해 이야기하는 부분. ]
     

    동시 통역은 다음과 같은 방식으로 진행되었습니다. (동영상) 궁금하시면 다음 링크를 한번 참고해 주시기 바랍니다.

     

    아침강연이 끝나고 점심식사가 제공되었는데, 굉장히 괜찮은 점심 도시락을 제공해주네요. 감사히 잘 먹었습니다. 🙂

    [ 점심 식사 도시락 ]
    [ 점심 식사 도시락 ]

    이후 1시부터 6시까지는 다양한 주제로 강연이 진행되었습니다. 저는 아마존 웹 서비스에 최근 반향을 일으키는 Lambda 서비스에 대한 것들이나 게임 개발과 관련된 다양한 강의 등을 들었습니다. 일부 슬라이드를 여기 공개해 놓습니다만, 나중에 AWS에서 슬라이드와 강연 자료를 공개할 예정이라고 하네요. 본 블로그에도 자료가 업데이트 되는데로 갱신해 두도록 하겠습니다.

    [ 공공부분과 민간부분의 새로운 기술을 받아드리는 데에 필요했던 로저스의 혁신 수용 이론 ]
    [ 공공부분과 민간부분의 새로운 기술을 받아드리는 데에 필요했던 로저스의 혁신 수용 이론 ]
    [ 마이크로서비스와 AMS Lambda가 필요한 핵심적인 이유에 대해 설명한 슬라이드 ]
    [ 마이크로서비스와 AMS Lambda가 필요한 핵심적인 이유에 대해 설명한 슬라이드 ]
    [ 단일 리즌을 활용해 글로벌 서비스가 가능한지에 대해 탐구했던 슬라이드 ]
    [ 단일 리즌을 활용해 글로벌 서비스가 가능한지에 대해 탐구했던 슬라이드 ]
    [ 최근 화두로 불리우는 AWS IoT에 대한 슬라이드. ]
    [ 최근 화두로 불리우는 AWS IoT에 대한 슬라이드 ]
     

    모든 강연이 끝나고 경품 추첨을 한 이후에 귀가하였습니다.

    이번에는 텀블러가 아니라 T셔츠를 제공해 주더라구요. 나중에 여름 되면 가까운 데 나가거나 할때 잘 입고 다닐 것 같았습니다.

    [ 설문조사가 끝나고 나온 화면. 문제가 있을 시 삭제하겠습니다. ]
    [ 설문조사가 끝나고 나온 화면. 문제가 있을 시 삭제하겠습니다. ]
    [ T셔츠입니다. AWS Summit이라고 찍혀 있는 티셔츠이네요. ]
    [ T셔츠입니다. AWS Summit이라고 찍혀 있는 티셔츠이네요. ]
     

    이번 AWS Summit 2016에서는 저번 어썸데이 때보다 훨씬 다양한 강연이 동시에 진행되었고, 참석한 사람의 흥미에 따라 다양한 강연을 들을 수 있었던 점이 굉장히 좋았던 것 같습니다. 전체적으로 진행 또한 매끄럽게 진행되어 만족스러운 세미나였네요.

    다만 사람이 너무 많아서 잘 정리가 되지 않았던 점이 안타까웠고, 그런 점들이 내년 서밋에는 또 개선되면 좋을 것 같습니다.

    현재 일하고 있는 부분이 IT와 관련된 부분은 아니었지만, 앞으로의 저 개인에게 있어도 좋은 경험이 되었던 것 같습니다.

    이상 두서없는 이야기를 마치고자 합니다. 읽어주셔서 감사합니다. ^^

  • bash, PuTTY SSH 등의 쉘에 로그인 할 때 에러가 날 때

    bash, PuTTY SSH 등의 쉘에 로그인 할 때 에러가 날 때

    ▶ 문제점

    – PuTTY를 통해 SSH 쉘에 로그인 했을 때, ‘not a valid identifier’ 라는 에러가 Last Login 아래 발생함

    – 통상적으로는 not a valid identifier라는 에러가 나오는 경우는 환경변수($PATH)가 이상할 때 나오는 경우가 많지만, 이번 경우에는 환경 변수에도 문제가 없었음

    – 아울러, 이와 더불어 ls 등의 명령어에서 색상이 나타나질 않는 등, shell이 제대로 작동하지 않았음

    [ 다음과 같이 환경 변수에는 이상이 없다. 한편 각종 명령어에서 색상이 안나온다. ]
    [ 다음과 같이 환경 변수에는 이상이 없다. 한편 각종 명령어에서 색상이 안나온다. ]

     

    ▶ 해결 방법

    – 리눅스 유저의 폴더 안에 위치하는 .profile (또는 .bash_profile) 파일에 문제가 생긴 경우 이러한 일이 발생할 수 있음

    – 필자의 경우에는 타임 존 설정을 위해 다양한 설정을 건드리던 도중, .profile 파일에 문제가 생긴것으로 발견됨

    sudo cat ~/.profile 또는 sudo cat ~/.bash_profile 을 실행해 보았을 때, 다음과 같이 올바른 프로파일이 나타나지 않는 경우 문제가 있는 것임을 확인할 수 있음

    [ 다음과 같이 cat .profile을 해 보았을 때, 프로필 파일이 이상함을 알 수 있다. ]
    [ 다음과 같이 cat .profile을 해 보았을 때, 프로필 파일이 이상함을 알 수 있다. ]

    정상적인 .profile은 아래와 유사한 형태여야함 (필자의 경우는 Ubuntu Server를 사용중임)

    [ 우분투 서버 14.04의 .profile 예시 ]
    [ 우분투 서버 14.04의 .profile 예시 ]

    – 필자의 버전이 모든 배포판에서 작동한다고 생각되지 않으므로, 각 배포판 버전 별로의 정상적인 .profile은 인터넷 또는 새로운 유저를 만든 후에 확인할 수 있을 것 같음

     

     

    ▶ 해결 뒤 화면 및 원인

    – 해결책을 적용한 뒤에는 다음과 같이 정상적으로 에러가 나타나지 않고, 쉘의 색상을 바로 볼 수 있음

    [ 해결이 된 모습 ]
    [ 해결이 된 모습 ]

    – 리눅스의 .profile 또는 .bash_profile 파일은 쉘에 접속할 때 그 유저의 쉘과 관련된 설정을 담고 있는 경우가 많음

    – 예를 들어, 리눅스의 SSH에서 색상을 보기 위해선 다음 파일의 실행이 필요함

    sudo ~ /.bashrc

    – 그러한 것들이 누락되어 발생하는 에러로, .profile(또는 .bash_profile)을 수정해주면 정상적으로 이용이 가능한 문제임

     

     

    ▶ 키워드

    – 리눅스 쉘, bash, SSH 색상

    – 리눅스 not a valid identifier 에러

    – 리눅스 환경변수 ($PATH)

    – .profile 또는 .bash_profile

  • 내가 보낸 메일? 자기 주소로 오는 랜섬웨어 악성코드 메일에 주의하세요!

    내가 보낸 메일? 자기 주소로 오는 랜섬웨어 악성코드 메일에 주의하세요!

    ▶ 들어가며

    최근 랜섬웨어의 기승이 극에 달하며 랜섬웨어와 관련된 이야기가 매일같이 뉴스에 등장하고 있습니다. 랜섬웨어(Ransomware)란, 몸값(Ransom)을 뜻하는 영어 단어프로그램을 뜻하는 뜻의 단어(ware)를 합성한 단어로써, 쉽게 말하면 인질을 잡고 돈을 요구하는 프로그램이라는 뜻입니다.

    근데, 컴퓨터 프로그램이 무슨 수로 우리를 인질로 잡아 돈을 요구하는 것일까요? 그것은 다름이 아니라 여러분들의 소중한 파일들을 인질로 잡는 악성코드인 것입니다. 정보 사회에 들어선 오늘날, 여러분들의 소중한 사진, 중요한 문서, 각종 기록 등은 모두 컴퓨터에 파일로 존재하는 것인데, 그것을 여러분들이 쉽게 풀지 못하게 고도의 암호화(SHA-256 등으로)를 걸어두고, 돈을 달라고 요구하는 것입니다.

     

    [ 어베스트에서 보내 준 랜섬웨어 긴급공지. 이메일 내용의 저작권은 어베스트에 있습니다. ]
    [ 어베스트에서 보내 준 랜섬웨어 긴급공지. 이메일 내용의 저작권은 어베스트에 있습니다. ]

     

    컴퓨터에 소중한 자료가 없었다면 포맷하는 것으로 끝낼 수 있겠지만, 만약에 소중한 자료가 있었던 경우에는 꼼짝없이 돈을 지불해야 겠지요. 돈을 지불하면 웬만해서는 암호 코드를 제공하는데 그 이유는 나중에 이 악성코드가 돈을 지불해도 비밀키를 주지 않는다는 말을 들어서는 안 되기 때문(…)입니다.

    어쨌든, 최근 악성코드 중에서 악질로 꼽히는 이 랜섬웨어가 최근에는 새로운 방법으로 전파를 시도하고 있는 것을 알고 있으세요?

     

     

    ▶나에게 온 이메일, 사실은 랜섬웨어?

    오늘 아침, 저는 네이버로 한 건의 메일을 받았습니다. 평소 네이버 메일을 잘 이용하지 않던 저로써는 일단 스팸이겠거니 하고 의심이 되기 시작했죠. 근데, 보낸 이메일 주소가 뭔가 이상합니다.

     

    [ 수상한 이메일 한개, 첨부파일이 있고, 심지어 메일 주소는 바로 내 메일이다! ]
    [ 수상한 이메일 한개, 첨부파일이 있고, 심지어 메일 주소는 바로 내 메일이다! ]

     

    이메일 주소는 바로 제 이메일이었고, Document2 라는 수상한 제목으로 온 메일이었습니다. 심지어는 누가 봐도 수상한 낌새가 있는 첨부 파일이 들어 있었습니다.

    랜섬웨어 또는 악성코드일 것을 100% 예상하고 VMWare(PC 가상화 프로그램)를 통해 이메일과 첨부파일을 열어본 결과 자바스크립트를 통한 랜섬웨어임을 확인하였습니다. 검색엔진에 검색해 본 결과, Document2 이외에도 Document1, Document7, Payment 등으로 다양하게 전송함을 확인했습니다.

    따라서 특히 수상해 하셔야 할 부분은 [본인 메일이 보낸 사람으로 된, 본인이 보내지 않은 첨부파일이 들어 있는 메일]을 심각하게 주의하셔야 한다는 뜻입니다.

     

     

    ▶ 랜섬웨어에 걸렸을 때 복구방법이 있나? & 예방하기 위해서는?

    사실 랜섬웨어는 그 특성상 한번 감염된 컴퓨터는 암호키 없이는 복구할 수 없게 되어 있습니다. 하지만 그런 특징을 이용해, 이미 해독이 가능한 랜섬웨어는 몇몇 치료 방법이 있다고 밝혀졌습니다.

    먼저, teslaCrypt 2.2.0 까지는 복구가 가능한 툴이 하나가 존재합니다. 컴퓨터 관련 주제로는 전문성이 깊은 파코즈하드웨어에 박현중님이 잘 설명해둔 글이 있으니 참고해 보시기 바랍니다.

    [운영체제] 랜섬웨어 복구툴 1 — 박현중 님

    http://www.parkoz.com/zboard/view.php?id=my_tips&no=15461 

     

    예방하기 위해서는 우선 랜섬웨어가 어떤 존재인지 확실히 아실 필요가 있습니다. 역시 파코즈하드웨어의 장재찬님이 랜섬웨어에 걸렸을 때의 특징과 해결 가능한 방법 모색에 도움이 될만한 글을 적어 두셨습니다. 참고하시면 좋을 것 같습니다.

    [보안] 랜섬웨어(CryptoLocker)로부터 안전해지기 위한 예방법. — 장재찬 님

    ■ http://www.parkoz.com/zboard/view.php?id=my_tips&no=15380

     

    일단 예방을 위해서는 무엇보다도, 랜섬웨어를 걸렸을 때를 대비해서 자신의 파일을 철저히 물리적 또는 네트워크적으로 분리된 곳에 보관해 두는 것이 중요하겠지요. 민감한 개인정보면 외장하드를 하나 구매하셔서 저장해 두신 뒤 백업용으로 보관하시는 방법, 또는 보안이 보장되는 클라우드 서비스에 저장해 두시는 방법도 하나의 해결책이라고 볼 수 있을 것 같습니다.

    어쨌든 저도 지인들 컴퓨터가 랜섬웨어에 당하는 모습을 보며, 최근 악성코드가 위험한 수준까지 올라왔음을 직접 제 눈으로 볼 수 있었습니다. 여러분들의 컴퓨터 사용에 이 글이 조금이라도 도움이 되었으면 좋겠습니다. 감사합니다.

  • 2016 AWSome Day(AWS 어썸데이) 서울 참석 후기

    2016 AWSome Day(AWS 어썸데이) 서울 참석 후기

    안녕하세요. 곰곰입니다.

    저는 평소에 이 블로그를 운영하기 위해서 무려(…) 아마존 웹 서비스(이하 AWS)를 이용하고 있는데요. AWS 홈 페이지와 사용자 포럼을 이리저리 둘러보던 중에 올해 3월 8일에 AWSome Day라는 공개 교육 이벤트를 진행한다고 하는 소식을 들어, IT에 무지한 저이지만 한번 참석해 보았습니다.

     

    이번 2016 AWSome Day는 세종대학교 광개토관에서 열렸는데요. 9시부터 10시까지가 등록 및 부스 전시였기 때문에, 저는 한 9시 30분쯤에 도착하도록 이동하였습니다.

    [ 이번 AWSome Day 참석으로 세종대학교를 처음 가봤습니다. ]
    [ 이번 AWSome Day 참석으로 세종대학교를 처음 가봤습니다. ]
    [ AWSome Day는 광개토관 지하 2층에서 진행되었습니다. ]
    [ AWSome Day는 광개토관 지하 2층에서 진행되었습니다. ]
     

    먼저 광개토관에 들어가니, 1층에서 AWSome Day 로그인을 접수하고 있었습니다. 아마존에서 진행되는 이벤트 답게 로그인을 QR코드로 인식시켜서 진행하고 있었습니다. QR코드로 접속한 사이트에서 로그인을 하면 어젠다 정보와 설문지를 작성할 수 있는 사이트가 나왔습니다.

    [ QR 코드를 통해 스마트폰으로 로그인을 진행했습니다. ]
    [ QR 코드를 통해 스마트폰으로 로그인을 진행했습니다. ]
    [ 로그인을 하면 다음과 같은 사이트가 나타납니다. 부정 사용을 위해 세부 내용은 가립니다. ]
    [ 로그인을 하면 다음과 같은 사이트가 나타납니다. 부정 사용을 위해 세부 내용은 가립니다. ]
     

    로그인 화면을 보여주면 참여자를 나타내는 뱃지를 받게 됩니다. 뱃지를 받고 2층으로 내려가보면 현장등록 부스와 스폰서 부스가 있었습니다. 이 부스에서는 다양한 경품 이벤트와 간식 등을 나누어 주고 있었습니다. 쇼콜라라는 부스에서는 콜라를 나눠주고 있었는데, 아마도 세종대학교 내부에 위치한 기업의 부스인 것 같았습니다.

    [ 지하 2층에는 스폰서 부스와 등록 부스 등이 배치되어 있었습니다. ]
    [ 지하 2층에는 스폰서 부스와 등록 부스 등이 배치되어 있었습니다. ]
    [ 세종대학교 기업 부스인 것 같았습니다. 기업명을 따 콜라와 체험 쿠폰을 주고 있었습니다. ]
    [ 세종대학교 기업 부스인 것 같았습니다. 기업명을 따 콜라와 체험 쿠폰을 주고 있었습니다. ]
    [ 콜라와 쿠폰 사진입니다. ]
    [ 콜라와 쿠폰 사진입니다. ]
     

    이 중, 제가 도메인을 구입해서 사용중인 hosting.kr을 운영하는 메가존에서는 설문에 참여한 사람에게 티셔츠를 제공하고 있었는데, 설문지를 일찍 했을 때는 경품이 도착하지 않았다고 이벤트가 끝나고 오라고 했었는데, 점심때 가보니 티셔츠가 벌써 떨어졌다고 하더라구요. 안타까웠습니다. ㅠㅠ

    [ 메가존 설문지를 끝냈습니다만, 티셔츠를 못받았습니다. ]
    [ 메가존 설문지를 끝냈습니다만, 티셔츠를 못받았습니다. ]

    다양한 부스를 보고 본 회장에 들어가니, 많은 사람들이 AWSome Day에 참석하고 있었습니다. 클라우드 서비스에 대해 관심을 갖고 계시는 분들이나 기업이 굉장히 많다는 것을 새삼 느낄 수 있었습니다.

    [ 전체 회장 모습입니다. ]
    [ 전체 회장 모습입니다. ]
    [ 회장 분위기도 수업에 집중하기 좋았습니다. ]
    [ 회장 분위기도 수업에 집중하기 좋았습니다. ]
     

    염동훈 대표의 기조연설이 끝나고 나서, AWS와 함께하는 클라우드 컴퓨팅 및 AWS 스토리지 서비스(S3, EBS)와 관련해 홍성민 테크니컬 트레이너가 수업을 해 주셨습니다. 평소 AWS에 대해 잠깐 잠깐 궁금했던 부분을 꼼꼼히 짚어 주셨기에 굉장히 의미가 있었습니다.

    수업을 듣다보니 어느새 점심 시간이 되었는데, 친구와 같이 밥을 먹으러 가려고 했으나 점심 도시락을 제공해 주어서 고마웠습니다. 젓가락 마크를 보아서는 세종 호텔에서 맞추어 나온 도시락인 것 같았습니다.

    [ 점심으로 제공된 도시락. 인텔 스폰서가 있어서인지 굉장히 질이 좋았습니다. ]
    [ 점심으로 제공된 도시락. 인텔 스폰서가 있어서인지 굉장히 질이 좋았습니다. ]

    오후에는 AWS 컴퓨팅 서비스인 VPC, EC2와 DB 서비스인 RDS와 DynamoDB, AWS 배포 서비스 등에 대한 오후 수업이 3~4시간 정도 이어졌습니다. 역시 오후 수업도 홍성민 테크니컬 트레이너분이 진행해 주셨는데, 저는 뒤로 갈수록 응용 서비스의 일환이라 그런지 너무 어려운 부분도 있더라구요. ㅠㅠ

    마지막으로는 경품 추첨 코너도 있었는데, 저는 역시나 (…) 아무 것도 받지 못했습니다.

    [ 와인, 드론 등 다양한 경품을 제공하고 있었습니다. ]
    [ 와인, 드론 등 다양한 경품을 제공하고 있었습니다. ]

    귀가할 때는 설문지를 작성한 사람에게 텀블러를 제공하고 있었습니다. 텀블러 질도 이쁘고, 설문조사 참석한 사람에게 $25달러 크레딧 또한 제공하고 있어 아마존이 굉장히 설문지를 중요하게 생각하고 있다고 느꼈습니다. (이 크레딧이 아마 주기로 약속한 100달러의 크레딧 중 25달러인것 같습니다. 75달러는 사람이 너무 많아 진행하기 어렵던 실습은 quikLab에서 진행하면 제공한다고 하시더라구요.)

    [ 설문조사에 참여하면 텀블러를 제공하였습니다. ]
    [ 설문조사에 참여하면 텀블러를 제공하였습니다. ]
    [ 설문 후 제공된 텀블러입니다. AWS의 로고와 색으로 구성된 예쁜 텀블러였습니다. ]
    [ 설문 후 제공된 텀블러입니다. AWS의 로고와 색으로 구성된 예쁜 텀블러였습니다. ]
     

    어쨌든, 오후 5시 즈음 해서 끝났는데, 저는 이번 AWSome Day가 저에게 굉장히 의미가 있었습니다. 물론 컴퓨터를 전공하거나, IT 관련 직종에 일하고 있지 않았지만, 더욱 IT에 대해 열심히 공부하여 저도 언젠가 AWS와 협력하여 무언가를 해 보고 싶다는 생각을 강렬하게 갖게 되었습니다.

    나중에 5월 즈음에 AWS Summit Seoul도 있다고 하니, 그 때도 기회만 된다면 꼭 참석해 보고 싶습니다.

    이상 두서 없는 후기 읽어주셔서 감사합니다. ^^;

  • 헬로모바일 SKT망에서는 VoLTE가 사용이 불가능하다? (부분수정)

    헬로모바일 SKT망에서는 VoLTE가 사용이 불가능하다? (부분수정)

    이 글은 처음에는 헬로모바일 SKT 망에서는 아직까지 VoLTE 사용이 불가능 하다는 글이었습니다. 2016. 3. 30. 현재, 공식적으로 SKT MVNO에서는 VoLTE 사용이 가능한 상황이며 블로그 방문객 여러분들도 이용 가능하다는 제보를 해 주셨습니다. 하지만 아직 자급제 단말기 기기명 변경 등이 지원이 안되는 상태여서, 글을 부분적으로 수정한 상태입니다.

     

    ▶ 들어가며

    안녕하세요. 곰곰입니다.

    최근 들어 원래 사용하던 아이폰에서 안드로이드로 이동하고자 넥서스 5X를 자급제 단말로 구매하였습니다. 그러면서 휴대전화 요금을 줄이기 위해 SKT망의 MVNO(가상통신망사업자)를 검색하던 도중, 최종적으로 7모바일과 헬로모바일 중에 헬로모바일을 선택하였습니다. 고객센터 앱도 제대로 되어 있고, CJ헬로비전이 SK와 통합되며 앞으로의 시너지 효과도 기대하며 개통을 진행했습니다.

    [ 헬로모바일은 KT와 SKT 망을 동시에 운영하고 있습니다. 저는 SKT 망을 통해 개통하였습니다. ]
    [ 헬로모바일은 KT와 SKT 망을 동시에 운영하고 있습니다. 저는 SKT 망을 통해 개통하였습니다. ]
    SKT 망으로 개통한 헬로모바일에서는 T 와이파이도, T맵도 사용이 가능했으므로 별다른 문제를 느끼지 않던 도중,

    VoLTE가 SKT망에서는 이용이 불가능하다는 소식을 접했습니다. 실제로 사용이 불가능 했던 적도 있었습니다.

     

     

    ▶ 헬로모바일 SKT 망에서는 VoLTE가 된다? 안된다?

    (2016년 3월 30일 현재) 일단 헬로모바일 SKT 망과 SKT 자사 VoLTE 망연동 절차는 끝난 것으로 보입니다. 특히, 핸드폰을 헬로모바일 SKT망을 통해 직접 구매하시면 지원되는 기종은 모두 VoLTE가 지원이 되고 있는 상태라고 합니다. USIM 요금제에서 VoLTE 지원이 확실히 결론이 난 제품 또는 SKT에서 VoLTE를 사용하고 있으셨던 단말기의 경우에는, 헬로모바일 SKT에서 VoLTE 사용이 가능하다고 합니다.(으아아, Haruna님 제보) 하지만 자급제 구입 단말기 또는 국내 미정발 단말기의 경우에는 아직 헬로모바일 SKT MVNO 망에서는 VoLTE가 사용이 현재까지는 불가능하다고 합니다. 그 이유는 SKT의 별정사업과 KT/LG U+의 별정사업 방식이 다르기 때문인데요. 일단 KT와 LG U+는 가입 전산망을 자사와 MVNO를 동시에 운영하고 있기 때문에, 자사에서 VoLTE 상용화가 이루어졌을 때 바로 별정 사업자도 VoLTE가 이용이 가능했던 것이지요. 단적인 예로, KT는 별정 사업자를 통해 가입해도 올레 공식 홈페이지에서 가입정보 조회 정도는 가능한 것을 확인할 수 있습니다.

    [ 이런식으로 별정 사업자를 통해 가입해도, KT 공식 홈페이지에서 기기명과 개통 이력이 조회가 된다. 같은 전산망을 이용중이기 때문. ]
    [ 이런식으로 별정 사업자를 통해 가입해도, KT 공식 홈페이지에서 기기명과 개통 이력이 조회가 된다. 같은 전산망을 이용중이기 때문. ]

    하지만 SKT의 경우에는 자사망과 MVNO 전산망을 완전히 분리해 두었으므로, SKT에서 VoLTE 상용화를 실시했어도 MVNO 망 연동이 따로 필요한 것이고, 그러한 절차에 시간이 오래 걸리는 것이라고 하더군요 (상담원 상담 결과). 관련 기사를 읽어보시면 더 이해가 빠르실 것 같습니다. (기사 참조는 여기)

    실제로, HD 보이스가 연결되어 있을 때 통화 중 LTE 데이터망은 3G+(HSPA+)로 연결되어서는 안됩니다. 하지만 아직 헬로모바일 SKT망에서 VoLTE 적용이 되지 않는 경우에는 실제 통화를 해보면 LTE가 3G로 바뀌는 것을 알 수 있지요.

    [ 이렇게 평소 LTE로 사용되던 휴대폰이, 전화만 하면 3G로 변경됩니다. ]
    [ 이렇게 평소 LTE로 사용되던 휴대폰이, 전화만 하면 3G로 변경됩니다. ]
    더군다나 CJ 헬로모바일의 경우에는 아직 SKT망을 이용중인 사용자의 경우에는 기기명 변경을 아예 처리하지 않는다고 홈페이지에 명시를 해 두어서 굉장히 곤란하였습니다. 114에 전화를 해봐도 기기명 변경이 안된다는 말만 들었을 뿐 뚜렷한 해결책을 받지 못했습니다. (듣기로는 MVNO에서 기기명 변경을 처리하기 위해서는 IMEI 등의 수집과 전송이 필요한데, 이것이 통신사나 별정업체나 굉장히 곤혹스럽고 귀찮은 일이라고 하는 이야기를 듣기도 하였습니다.)

    [ 늘 이럴 때마다 답답한 SKT MVNO...ㅠㅠ ]
    [ 늘 이럴 때마다 답답한 SKT MVNO…ㅠㅠ ]

     

    ▶ SKT MVNO 망을 이용중인 자급제 단말기 사용자는 앞으로도 VoLTE와는 거리가 먼 것일까?

    그건 아닙니다. 최근에 헬로모바일 상담사와 전화 및 1:1 대화를 통해 확인해 본 결과 USIM SKT 요금제 이용자의 경우에도 2~3개월 내로 VoLTE를 위해 기기명 변경을 지원할 것이라고 밝혔다고 합니다.

    기기명 변경이 가능하여 USIM 요금제 사용자들도 기기명 설정이 가능해지면, 아마 모든 사용자에게 VoLTE가 열릴 것이라고 생각합니다.

    실제로 유심개통 등에서도 VoLTE를 사용하시고 있으신 분들도 왕왕 나오고 계시고 (으아아 님, Haruna 님 다시 한번 댓글 감사합니다. 댓글 참고해 주세요. ^^), 헬로모바일 측에서도 2~3개월 내로 유심 요금제 이용자도 VoLTE 사용이 가능할 것이라고 밝히고 있어, 앞으로의 행보가 궁금합니다.

     

    사용이 가능해지는 대로 나중에 또 다시 글 올리도록 하겠습니다.

    여러분들의 알뜰폰 선택에 약간의 도움이 될 수 있으면 좋겠습니다. 감사합니다.

  • PuTTY(또는 KiTTY등 PuTTY기반 SSH)에서 한글 쉘 사용하기

    PuTTY(또는 KiTTY등 PuTTY기반 SSH)에서 한글 쉘 사용하기

    ▶ 들어가며

    [ PuTTY는 SSH 툴로써 오늘날에도 널리 사용되고 있는 클라이언트입니다. ]
    [ PuTTY는 SSH 툴로써 오늘날에도 널리 사용되고 있는 클라이언트입니다. ]
    PuTTY는 최근 SSH(Secure SHell)을 구동할 수 있는 다양한 클라이언트들이 나와있음에도 불구하고, 강한 능력과 가벼운 프로그램으로 인해 오늘날에도 많이 쓰이고 있는 SSH 클라이언트입니다. 다만, 이 클라이언트가 지속적으로 업데이트 되고 있음에도 불구하고 기본 설정으로 사용하기에는 부족한 부분 또한 존재하는데요. PuTTY의 저질(…) 한글 표현 능력 또한 그 중에 한 부분이라고 할 수 있겠습니다.

    따라서 이번 팁에서는 PuTTY 또는 PuTTY 기반의 다양한 SSH 쉘에서, 한글 표현을 위한 글자셋(charset) 설정과 폰트 변경 방법을 간단하게 알아보고자 합니다.

     

     

    ▶ 준비물

    – PuTTY, 또는 PuTTY 기반의 SSH 쉘 중에서 UTF-8이 사용 가능한 SSH 클라이언트 (설정창에 Windows 카테고리가 있어야 함)

    – 한글과 영어 표현이 쉘로 사용하기에 적절한 폰트, 곰곰의 추천은 네이버 개발자 센터에서 배포중인 ‘D2 Coding’ 글꼴 설치
    (D2 Coding 글꼴은 나눔바른고딕을 바탕으로 제작된 개발자용 글꼴입니다. ClearType에 적절히 대응, 영어 글꼴과 한글 글꼴이 세리프형 고정폭 글꼴인 점이 SSH나 개발에 좋은 폰트입니다. 다운로드를 위해서는 네이버 개발자센터(여기)를 눌러 접속해 주세요.)

     

     

    ▶ PuTTY에서 한글 쉘 사용하기

    – 먼저, PuTTY를 실행해서 [Window – Translation]에 들어가, Remote character set:이 [UTF-8]로 되어 있는지 확인합니다.

    [ Charset이 UTF-8이 아니면, 한글 등이 적절히 표현되지 않습니다. ]
    [ Charset이 UTF-8이 아니면, 한글 등이 적절히 표현되지 않습니다. ]

    – 이어서, [Window – Appearance]를 들어갑니다.

    [Font Settings]에 Font : 라고 되어 있는 부분에 [Change…]를 선택합니다.

    [ 글꼴 설정을 변경하여 SSH 내 한글 글꼴이 정상 표현되도록 합니다. ]
    [ 글꼴 설정을 변경하여 SSH 내 한글 글꼴이 정상 표현되도록 합니다. ]

    – 글꼴은 [D2Coding], 글꼴 크기는 [12pt]로 설정합니다. (개인차에 따라 글꼴 크기는 수정해서 사용해 주세요.)

    [ 여기서는 D2Coding을 활용하지만, 여러분들이 좋아하는 폰트를 사용하셔도 됩니다. ]
    [ 여기서는 D2Coding을 활용하지만, 여러분들이 좋아하는 폰트를 사용하셔도 됩니다. ]

    – 이어서, [Window] 카테고리를 눌러, [Columns]를 140, [Rows]를 34로 선택해 주세요. 이 크기는 윈도우 기본 크기를 변경하는 설정이며, Columns는 가로에 들어가는 글자 크기, Rows는 세로에 들어가는 줄 크기를 뜻합니다. (역시 개인차에 따라 수정해서 사용해 주세요.)

    [ 여러분 컴퓨터의 해상도에 따라 이 값은 적절히 변경해 주세요. ]
    [ 여러분 컴퓨터의 해상도에 따라 이 값은 적절히 변경해 주세요. ]

    – 설정이 끝났으면, 마지막으로 기본값으로 저장하기 위해 [Session]을 눌러, [Default Settings]를 누르고 [Save]를 눌러줍니다.

    [ 여기서는 기본 설정을 변경하도록 저장합니다. 필요에 따라 원하시는 설정값에 저장해 주세요. ]
    [ 여기서는 기본 설정을 변경하도록 저장합니다. 필요에 따라 원하시는 설정값에 저장해 주세요. ]

    ▶ 사용 전과 후 비교

    설정을 마치고 한글이 포함된 부분을 SSH에서 보실 때, 가독성에 확연한 차이를 느끼실 수 있을 겁니다.

    [ PuTTY 기본 설정값, 내용 출처는 생활코딩(Opentutorials)입니다. ]
    [ PuTTY 기본 설정값, 내용 출처는 생활코딩(Opentutorials)입니다. ]
    [ 본 팁을 적용한 값, 훨씬 가독성이 좋아진 것을 알 수 있습니다. ]
    [ 본 팁을 적용한 값, 훨씬 가독성이 좋아진 것을 알 수 있습니다. ]
     

    본 팁의 핵심은 글자셋이 [UTF-8]로 되어있을 것, 글꼴이 [한글과 영어를 명료하게 지원되어야] 한다는 것입니다. 여러분들이 원하시는 클라이언트에, 원하시는 UI로 설정이 가능한 만큼, 본 팁이 다양하게 활용될 수 있으면 좋겠습니다.

    지금까지 두서 없는 글 읽어주셔서 감사합니다.

  • 인터넷우체국 카드결제(착불요금선결제 등)가 윈도우10 등에서 안될 때

    인터넷우체국 카드결제(착불요금선결제 등)가 윈도우10 등에서 안될 때

    ▶ 문제점

    윈도우 10을 사용하는 컴퓨터에서 인터넷우체국 카드결제(착불요금선결제 등)를 시도할 때 실패하는 증상이 나타남

    – 에러는 ‘ 통신모듈 호출 에러입니다!! 전화문의(02-3416-2900) ‘ 이라고 기재되어 있음

    [ 이와 같은 에러를 내뿜으며 결제가 진행되지 않는 증상이 나타남 ]
    [ 이와 같은 에러를 내뿜으며 결제가 진행되지 않는 증상이 나타남 ]
     – 필자의 경험에 의하면 윈도우 7에서는 정상 결제되는 것으로 보이나, 윈도우 10에서는 정상적으로 결제되지 않는 문제가 발생

     

     

     

    ▶ 가장 효과적인 해결법 1 : IE를 관리자로 실행

    시작 – 모든 앱 – Windows 보조프로그램 – Internet Explorer를 찾음

    – Internet Explorer에서 오른쪽 버튼을 누른 뒤, [자세히 > 관리자 권한]으로 실행함

    [ 시작에서 Internet Explorer를 찾아 관리자 권한으로 실행시킨다. ]
    [ 시작에서 Internet Explorer를 찾아 관리자 권한으로 실행시킨다. ]

    – 인터넷우체국에 들어가서 결제를 진행하면 결제가 이루어질 확률이 높음. 해결되지 않는다면 결제 방법 2로 이동

    [ 이후 홈페이지에 접속해 결제를 시도하면 결제가 정상적으로 이루어진다. ]
    [ 이후 홈페이지에 접속해 결제를 시도하면 결제가 정상적으로 이루어진다. ]

     

     

    ▶ 해결법 2 : 인터넷우체국 결제모듈인 easypay를 삭제하고 재설치

    모든 인터넷 익스플로러를 종료합니다.

    – 일단, 설치된 모듈의 파일을 제거하기 위해 아래 폴더로 들어간다. 탐색기 창에서 주소 입력줄에 아래와 같은 경로를 입력한다. (복사 > 붙여넣기)

    C:\Users\%USERNAME%\AppData\LocalLow

     

    – 경로에 들어가서 EasyPayX 폴더를 삭제해 줍니다.

    02_delete_folder
    [ EasyPayX 폴더를 삭제해주시면 됩니다. ]
     – 인터넷 익스플로러를 관리자 모드로 실행하여 (해결법 1 참조), EasyPay 6.0을 재설치하기 위해 다음 주소에서 설치파일을 다운로드 받습니다.

    EasyPay 6.0 다운로드 경로 (홈페이지 제공) : http://www.payzone.co.kr/easypay.exe

    홈페이지 : https://www.easypay.co.kr/help.jsp


    다운로드 받은 파일을 설치하고, 해결법 1대로 관리자 모드의 인터넷 익스플로러로 우체국 홈페이지에 접속해 카드결제를 시도해 봅니다.

     

     

     

    ▶ 해결법 3 : EasyPay 홈페이지 도움말을 참조하여 IE 설정 초기화

    – https://www.easypay.co.kr/help.jsp 에 접속하여 처음부터 설정을 초기화 해 봅니다.

     

     

     

    ▶ 원인 및 끝마치며

    Windows 10 지원(아마도 UAC 관리자 설정과 관련된 문제일 것 같습니다.)이 부족한 상태이기 때문에 나타나는 문제로써, 관리자 권한을 획득하게 해 줌으로써 해결될 수 있는 문제입니다.

    – 혹은 보안프로그램이 설치 중 에러가 나타난 경우에도 다음과 같은 문제가 발생할 수 있어보였습니다.

    – 다만 보안을 강조하는 보안 프로그램이, 관리자 권한을 취득하여 실행될 수 밖에 없는 구조라는 것이 굉장히 저에게 있어서는 의아하다고 생각되었습니다.

    – 본 문제 해결법은 한국정보통신 기술팀에 문의하여 받은 메뉴얼을 바탕으로 해결 방법을 기술하였으며, 본 페이지에서 다루고 있는 부분에 문제가 있는 경우, 또는 이 해결 방법을 통해 문제를 해결하는 도중 문제가 발생한 경우에는 책임을 지거나 하지 않습니다.

  • 라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기

    라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기

    ▶ 들어가며

    안녕하세요. 곰곰입니다.

    저번 블로그 글(워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전)에서 라즈베리파이2에 Nginx + PHP5 + MariaDB를 설치하기 위하여 라즈베리파이용 Ubuntu MATE를 설치하였습니다. Ubuntu MATE는 마테 UI가 적용되어 있는 우분투 리눅스 배포판으로써, 저사양 컴퓨터에 최적화 되어있는 UX를 가지고 있는 리눅스 배포판이기는 합니다.

    [ Ubuntu MATE 공식 홈페이지에서 제공하는 라즈베리 파이 2B용 Ubuntu MATE 스크린샷. 출처 : 공식 홈페이지 ]
    하지만 라즈베리 파이 2 모델 B가 그렇게 좋은 스팩의 CPU를 가지고 있지 않은 측면, 그리고 서버로 운영되고 있을 때는 몇 가지 최적화 되어야 할 점이 있기 때문에, 이 글에서는 간단하게 Ubuntu MATE 라즈베리 파이 에디션을 최적화하는 방법에 대해 설명하고자 합니다.

     

     

     

    ▶ 1. Ubuntu MATE를 GUI(그래픽 모드)에서 CUI 모드로 부팅하기

    Ubuntu MATE는 리눅스를 콘솔로 즐기고 싶은 분들을 위해 콘솔이 기본으로 부팅되게 설정할 수 있습니다. 특히 라즈베리 파이 2B의 경우에는 기존 라즈베리 파이에 비해 성능이 비약적으로 상승한 것은 맞지만, 저전력 설계와 그에 걸맞는 성능을 보유하고 있기 때문에, GUI로 라즈베리 파이를 사용하는 것은 상당히 느립니다.

    따라서 서버로 사용하시려고 하시는 분들, 또는 기본적인 리눅스 지식을 보유하고 계시는 분들은 콘솔 모드로 Ubuntu MATE를 사용하실 수 있습니다.

    Ubuntu MATE에서 터미널에 접속하여, 콘솔로 접속합니다. (CUI로 부팅하신 분들은 상관 없음, PuTTY 등 SSH 접속 또한 상관 없음)

    [ Applications(어플리케이션) - System Tools(시스템 도구) - MATE Terminal을 통해 터미널에 접속합니다. ]
    [ Applications(어플리케이션) – System Tools(시스템 도구) – MATE Terminal을 통해 터미널에 접속합니다. ]
    01_02_terminalentered
    [ 터미널 접속 화면(예시). ]
     

    아래 명령어를 관리자 권한으로(sudo) 입력해 줍니다.

    $  sudo graphical disable

     

    입력 후, 아래 명령어를 이용해 재부팅을 해 주면, 콘솔로 부팅된 Ubuntu MATE를 확인하실 수 있습니다.

    $  sudo shutdown -r now
    [ 이와 같이 다음 부팅때는 콘솔로 부팅이 이루어집니다. ]
    [ 이와 같이 다음 부팅때는 콘솔로 부팅이 이루어집니다. ]

    다시 그래픽 모드를 이용하고 싶으실 때는 아래 명령어를 입력해주고, 재부팅을 실시합니다.

    $  sudo graphical enable
    $  sudo shutdown -r now

     

     

     

    ▶ 2. Ubuntu MATE를 설치하고 Micro SD 파티션의 용량을 조절하자

    Ubuntu MATE를 설치하기 위해 우분투 마테를 Win32 Disk Imager로 microSD카드에 썼을 때, 기본적으로 4~8GB 정도의 용량을 기준으로 파티셔닝이 이루어집니다. 따라서 8GB 이상의 microSD 카드를 사용하는 경우에는 새로 리파티셔닝 과정을 통해 남은 공간이 리눅스 공간으로 사용될 수 있도록 해야 합니다.

    먼저 Ubuntu MATE를 설치하고 터미널을 실행해 봅니다. (SSH 등 상관 없음) 저는 편의상 PuTTY를 사용해 작업하고자 합니다.

    아래 명령어를 이용해 현재 파티션(/)의 상황을 확인하면, 다음과 비슷한 결과를 얻으실 수 있습니다.

    #  sudo df -h
    [ 확인해 보면, 16GB의 micro SD를 꼈음에도 4GB 정도의 파티션만 인식되어 있음을 볼 수 있다. ]
    [ 확인해 보면, 16GB의 micro SD를 꼈음에도 4GB 정도의 파티션만 인식되어 있음을 볼 수 있다. ]

    fdisk -l 명령어를 사용해 구체적인 상황을 확인해 봅시다. 아래처럼 여러분들 microSD 용량에 비해 Linux 파티션 용량이 한 없이 작다는 것을 볼 수 있습니다.

    $  sudo fdisk -l
    [ fdisk -l을 통해 앞으로 작업해야 할 파티션의 정보를 확인할 수 있다. ]

    microSD 카드의 디스크를 편집합시다. 아래 명령어를 통해 fdisk를 준비합니다.

    $  sudo fdisk /dev/mmcblk0

     

    FAT32 파티션은 부팅을 위해 라즈베리파이가 필요로 하는 파티션이므로 삭제하시면 안됩니다. 따라서 2번째 리눅스 파티션을 일단 지워줍니다.

    d 입력 후 엔터, 이후 숫자 2 입력
    [ d 누르고 2를 눌러, 지금 리눅스 파티션을 제거해 줍니다. ]
    [ d 누르고 2를 눌러, 지금 리눅스 파티션을 제거해 줍니다. ]

    그 다음, 지워진 두 번째 파티션(리눅스 주 파티션)을 microSD 최대 용량으로 다시 만들어 줍니다.

    n 엔터, p 엔터, 2 엔터, 엔터, 엔터 순으로 입력합니다.
    [ n, p, 2, 엔터, 엔터 순으로 눌러 새로운 파티션을 최대 용량으로 만들어 줍니다. ]
    [ n, p, 2, 엔터, 엔터 순으로 눌러 새로운 파티션을 최대 용량으로 만들어 줍니다. ]

    이후 w를 눌러서 fdisk를 종료해 주시면, 다음과 같은 경고와 함께 다음 부팅시 파티셔닝이 이루어질 것임을 알려줍니다. 재부팅을 해 줍니다.

     Command (m for help): w
     The partition table has been altered.
     Calling ioctl() to re-read partition table.
     Re-reading the partition table failed.: Device or resource busy
    
     The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
    
    
    
    $  sudo shutdown -r now
    

     

    재부팅이 되면, 다음과 같은 명령어를 입력해 주어 파티션 용량을 다시 인식시킵니다.

    $  sudo resize2fs /dev/mmcblk0p2

     

    이후 fdisk를 통해 파티션 용량을 확인해 보시면, 16GB 온전히 파티셔닝이 되어있는 것을 확인하실 수 있습니다.

    [ 16GB 온전히 파티셔닝이 되어있음을 확인할 수 있습니다. ]
    [ 16GB 온전히 파티셔닝이 되어있음을 확인할 수 있습니다. ]

     

     

    ▶ 3. 간단 팁: Ubuntu MATE for Raspberry pi 2는 도대체 어떤 CPU 아키텍쳐를 사용중인 것일까?

    추후 라즈베리 파이 2B용 Ubuntu MATE를 사용하시다 보면 기존의 리눅스에서 사용하시던 팁들이 적용되지 않으실 때가 있으실 겁니다. (저의 경우는 두 가지가 있었는데, 하나는 nginx용 Pagespeed 모듈이 설치가 되지 않았던 점, 또 하나는 ppa를 통해 PHP7을 설치하던 도중, 갑자기 PHP7의 설치가 이루어지지 않았을 때)

    예를 들어, Ubuntu용 PHP를 설치하기 위하여 PPA(사설 저장소)에서 apt-get을 해야 할 필요가 있다고 해 봅시다. 그 때, 분명 ppa 목록에 패키지는 포함되어 있는데, 아무리 sudo apt-get update, apt-get install 과정을 거쳐도 패키지가 설치가 되지 않으실 수도 있는데요. 일단 그 ppa가 보관되어 있는 launchpad에 접속하여 하나의 패키지를 살펴보시면 다음과 같이 되어 있으실 겁니다.

    [ ppa 관리소인 launchpad에서 특정 ppa를 들어가서 확인해보면, Build Status를 보면 체크표시가 없고 뭔가 수상쩍다. ]
    [ ppa 관리소인 launchpad에서 특정 ppa를 들어가서 확인해보면, Build Status를 보면 체크표시가 없고 뭔가 수상쩍다. ]

    자세히 보기 위해, 그 패키지를 클릭해 보시면 다음과 같은 정보를 보실 수가 있습니다.

    [ Builds 상태에 플랫폼별 지원 현황이 나타나 있다. ]
    [ Builds 상태에 플랫폼별 지원 현황이 나타나 있다. ]

    여기에서 Builds라고 적혀 있는 부분은, 패키지로 배포하기 위해 패키지가 만들어지는 과정(컴파일 및 메이크 등)에 대하여 설명하고 있는 부분입니다.

    체크([FULLYBUILT]) 표시가 되어있는 플랫폼은 빌드가 완료되어 배포중이고, 시계모양([BUILDING])으로 되어있는 부분은 빌드가 진행중인 곳입니다. 엑스 표시(There were build failures.)가 되어있는 곳은 빌드에 실패하여 새로 빌드되는 것을 기다리고 있는 플랫폼입니다.

    또한 Builds에 세 가지 플랫폼이 적혀 있는데, 이 플랫폼은 Ubuntu가 지원하는 대표적인 플랫폼 3가지를 뜻합니다.

    • amd64 : 64비트 플랫폼을 뜻합니다. 우리가 Windows 7 64비트를 말할 때의 그 64비트를 뜻하며, 64비트를 상용화시키는데 가장 먼저 성공했던 회사가 AMD이므로, amd64라고 기재됩니다. 다른 곳에서의 x64(인텔 64비트 플랫폼)과 의미가 일치합니다.
    • i386 : 기존 32비트 플랫폼을 뜻합니다. 최근 들어서는 메모리가 4GB 이상인 컴퓨터가 많아지고 있는데, 32비트 컴퓨터로는 4GB 이상의 메모리를 처리할 수 없으므로, 최근 들어서 비중이 감소세에 이르고 있습니다. x86(인텔 32비트 플랫폼)과 의미가 일치합니다.
    • armhf : ARM 플랫폼의 v7 버전, 즉 ARMv7 계열 CPU를 뜻하는(ARM에 대한 자세한 정보는 위키피디아 참조) 표현입니다. Raspberry pi 2 Model B가 속해있는 플랫폼입니다.
    • armel, armeb : (기타) ARM 플랫폼의 다른 버전입니다. 개인 사용자가 접해보기 어려운 플랫폼입니다.

     

    즉, ARMv7 이라고 쓰여 있는 부분은, armhf 와 호환이 된다고 생각하시면 편하겠지요. 다양한 곳에서 지식 글을 참고하실 때 유용하신 정보라고 생각합니다.

     

     

     

    ▶ 마치며

    지금까지 Raspberry Pi 2B에 Ubuntu MATE를 설치하여 사용할 때의 몇 가지 팁에 대해 살펴보았습니다. Raspberry Pi는 낮은 가격에 초소형 PC(* 일부 플랫폼적 제약이 있지만)를 구매하실 수 있는 좋은 방법입니다. 여러분들도 Raspberry Pi를 구매하실 기회가 있으시다면, 이 팁이 도움이 되기를 바랍니다.

    두서없는 팁 읽어주셔서 감사합니다.

  • 웹 서버 프로토콜(HTTP/SSL/SPDY/HTTP2) 전송 상태 확인하기

    웹 서버 프로토콜(HTTP/SSL/SPDY/HTTP2) 전송 상태 확인하기

    [ Akamai에서 HTTP/2가 지원되는 브라우저로 접속하여, HTTP/2의 속도 향상을 보여주는 장면. 실제 테스트가 필요하신 분들은 https://http2.akamai.com/demo 서 진행 가능합니다. ]
    [ Akamai에서 HTTP/2가 지원되는 브라우저로 접속하여, HTTP/2의 속도 향상을 보여주는 장면.
    실제 테스트가 필요하신 분들은 https://http2.akamai.com/demo 서 진행 가능합니다. ]

    ▶ 들어가며

    웹서버를 구축하며 웹 서버의 보안 또는 HTTP 통신 프로토콜에 신경을 쓰는 것은 굉장히 중요합니다. HTTP(하이퍼텍스트 전송 규칙; HTTP에 대해 자세한 정보가 필요하시면 여기(나무위키)여기(위키피디아)를 참고하세요.)는 첫 상용화 버전인 HTTP/1.0의 발표 이후로 HTTP/1.1, 그리고 2015년 드디어 발표된 HTTP/2 까지 3 종류로 나뉩니다.

    한편 HTTP의 변종 규약인 SPDY는 구글에서 제안한 HTTP 프로토콜로, 기존의 HTTP/1.1 상에서 작동하는 웹이 더욱 빠르고 안전하게 작동할 수 있도록 통신을 규정짓는 프로토콜 또한 존재합니다. 하지만 최근 구글은 SPDY 프로토콜의 대부분의 규칙들이 HTTP/2 안에 적용되어 있는 만큼, 2016년에 지원을 종료하겠다는 뜻을 밝혔습니다.

    특히 최근에 제시된 HTTP/2 프로토콜은, 기존의 HTTP/1 및 HTTP/1.1에 비해서 더욱 빨라진 서버 응답 속도를 보여줍니다만, 실제 서버를 운영하는 입장에서는 본인의 웹 서버가 HTTP/2로 운영되고 있는지 궁금하신 분들이 많으실겁니다. 따라서 오늘은 Google Chrome(구글 크롬)을 활용하여 웹 서버 프로토콜의 전송 상태를 확인할 수 있는 방법에 대해 간단하게 소개하고자 합니다.

     

     

     

    ▶ 준비물

    1. 체크하고 싶은 웹 사이트 (여러분들의 서버 안의 웹 어플리케이션이 대부분이라고 생각됩니다.)
    2. Google Chrome 41 이상의 버전

     

     

     

    ▶ 사용 방법

    1. Google Chrome에서 F12 또는 Ctrl + Shift + I를 눌러 개발자 도구(Development Tools)를 실행합니다.
    Network 탭에 들어가면 네트워크 활동을 감지하기 위해 크롬이 준비합니다.
    [ 구글 개발자 도구에서 Network 탭을 눌러, 트래킹을 시작합니다. ]
    [ 구글 개발자 도구에서 Network 탭을 눌러, 트래킹을 시작합니다. ]

     

    2. 측정하길 원하는 사이트(저는 제 블로그로 하였습니다.)에 접속하게 되면 크롬 개발자 도구가 전송을 추적하기 시작합니다.
    [ 측정하길 원하는 웹 어플리케이션에 접속해, 트래킹을 기다립니다. ]
    [ 측정하길 원하는 웹 어플리케이션에 접속해, 트래킹을 기다립니다. ]

     

    3. Name, Status, Type 등이 있는 이름 탭에서 오른쪽 버튼을 클릭해 Protocol 항목을 활성화 시켜 줍니다.
    [ 이름 표시줄에서 오른쪽 버튼을 눌러, Protocol 이름 표시를 켜 줍니다. ]
    [ 이름 표시줄에서 오른쪽 버튼을 눌러, Protocol 이름 표시를 켜 줍니다. ]

     

    4. Protocol 항목에서 나오는 결과값을 통해 여러분들 웹 어플리케이션의 프로토콜을 확인할 수 있습니다.
    [ Protocol 항목에서 여러분들의 웹 어플리케이션이 어떤 통신 규약에서 작동하는지 확인할 수 있습니다. ]
    [ Protocol 항목에서 여러분들의 웹 어플리케이션이 어떤 통신 규약에서 작동하는지 확인할 수 있습니다. ]
    http/1.1: 오늘날의 웹에서 널리 사용되고 있는 HTTP/1.1 프로토콜 통신입니다.

    spdy/3: Google에서 제안한 SPDY/3 프로토콜(곧 사라질 예정)이며, 현재는 HTTP/2 버전에 적용되어 있는 규약입니다.

    quic/1: 구글에서 2013년에 제안한 네트워크 반응 속도를 향상시키기 위한 프로토콜입니다.

    h2: 2015년에 확정난 새로운 HTTP 프로토콜인 HTTP/2 프로토콜입니다.

     

     

     

    ▶ 결론

    Nginx나 Apache2에서 HTTP/2 또는 SSL을 적용시키고 나서 사이트에 제대로 적용되는지 궁금하신 분들에게 좋은 팁이 되실 수 있을 것이라고 생각합니다. 아울러 CloudFlare 등의 DDNS 서비스를 활용하실 경우, HTTP/2 또는 SSL 보안 적용에 용이한 부분이 많으니, 관련 자료를 구글에서 참고하셔서 서비스를 이용해 보시는 것도 나쁘지 않은 선택이라고 생각합니다.

    앞으로 HTTP/2 프로토콜을 이용해 다양한 웹 환경이 구축될 예정이라고 하니, 여러분들 홈 페이지의 보안과 관련된 부분을 한 번쯤 돌아보실 기회가 되시리라고 생각합니다. ^^

  • nginx + PHP-fpm에서 502 Bad gateway 에러 해결법 총정리

    nginx + PHP-fpm에서 502 Bad gateway 에러 해결법 총정리

    필자는 개인적으로 최근 버전의 php-7.0을 사용하고 나서 502 Bad gateway 에러가 나는 빈도수가 거의 없어진 것을 느끼고 있습니다. 우분투에서 php 7.0을 설치하시는 방법이 궁금하신 분들은 여기를 누르셔서 PHP 업그레이드를 시도해 보시기 바랍니다.

     

    nginx는 Apache2에 비해서 빠르고 더 많은 트래픽을 처리할 수 있는 HTTP 처리 능력을 가진 웹서버 데몬입니다. 아울러 PHP와 같이 구동되는 웹 어플리케이션을 사용할 때는, PHP-fpm을 사용하여 더 빠른 PHP 처리를 이끌어 낼 수 있지요.

    하지만, 간혹 nginx + php-fpm 조합을 활용하여 웹 어플리케이션을 구동할 경우, 특정한 상황의 경우 502 Bad gateway 에러를 내뿜는 경우를 확인할 수 있습니다.

    [ 필자의 경우는 CloudFlare의 502 에러 페이지입니다만, 이와 유사한 에러가 자주 등장 ]
    [ 필자의 경우는 CloudFlare의 502 에러 페이지입니다만, 이와 유사한 에러가 자주 등장 ]

    제가 추론하고 있는 특정한 상황은,

    1. PHP-fpm으로 처리 해야 되는 자료 중에서 굉장히 크기가 큰 요청을 처리하는 경우
    2. 서버 반응속도가 느려 PHP-fpm으로 가는 도중에 서버 요청에 긴 시간을 요구하는 경우
      (저의 경우가 이 사례인 것 같은데, 라즈베리파이2에서 서버를 구동하다 보니 왠만한 php 요청이 timeout이 발생하는 것 같았습니다.)

    라고 생각되었습니다.

    따라서 이것을 해결하기 위해 수 많은 구글링을 해 본 결과, 저에게 맞는 해결책을 일단 찾게 되었습니다.

     

     

    ▶ 문제점

    – nginx + php-fpm (저의 경우에는 php7.0-fpm을 통해 서버를 구동했습니다만, php5-fpm 의 경우에도 같은 문제가 지속적으로 발견되는 것을 확인했습니다.) 조합에서 PHP 요청을 할 경우, 간혹 502 Bad gateway 에러를 내뿜음

    – 502 Bad gateway 에러를 내뿜은 뒤, 다른 PHP 파일 또한 응답을 하지 않음

    – 콘솔에서 다음과 같은 명령어를 활용해, php-fpm과 nginx의 프로세스 상태를 보면 정상 작동하고 있음 (…)

    $  sudo service nginx status
    $  sudo service php7.0-fpm status
    [ nginx와 php-fpm의 서비스 상태는 정상 작동함을 확인할 수 있습니다. ]
    [ nginx와 php-fpm의 서비스 상태는 정상 작동함을 확인할 수 있습니다. ]

    nginx의 에러 로그(예: sudo cat /var/log/nginx/error.log)를 살펴보면 다음과 유사한 에러가 나타남을 확인할 수 있음

    $  sudo cat /var/log/nginx/error.log
    
    
     결과값 예: 
    2016/01/08 00:36:53 [error] 1911#0: *3 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 123.456.789.012, server: example.com, request: "GET /your/address/ HTTP/1.1", upstream: "fastcgi://unix:/your/php/socket/php7.0-fpm.sock:", host: "example.com"
    2016/01/08 00:36:59 [error] 1911#0: *5 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 123.456.789.012, server: example.com, request: "GET /your/address/ HTTP/1.1", upstream: "fastcgi://unix:/your/php/socket/php7.0-fpm.sock:", host: "example.com"

     

     

    ▶ 해결책 1 : nginx HTTP 부분에서 fastcgi 버퍼 사이즈와 timeout 시간 변경

    – 이 해결 방법은 가장 대중적인 해결 방법으로써, nginx가 php-fpm으로 PHP 처리 요청을 보냈을 때, 버퍼의 크기를 늘려 처리 용량을 확대해주고 timeout이 처리되는 시간을 늘려주는 방법

    (참고 : 502 Bad Gateway on Nginx with BuddyPress)

    nginx의 HTTP(최근 버전의 nginx에서는 /etc/nginx/sites-available/default 등) 안의 php 소켓 관련 설정에서, 아래와 같은 설정을 추가

    server {
     (... 중략 ...)
    
         location ~ \.php$ {
               # With php7-fpm:
               fastcgi_split_path_info ^(.+\.php)(/.+)$;
               fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
              # 아래부터 버그 해결을 위해 추가해 주실 옵션입니다.
              # 502 에러를 없애기 위한 proxy 버퍼 관련 설정입니다.
              proxy_buffer_size               128k;
              proxy_buffers                   4 256k;
              proxy_busy_buffers_size         256k;
    
              # 502 에러를 없애기 위한 fastcgi 버퍼 관련 설정입니다.
              fastcgi_buffering               on;
              fastcgi_buffer_size             16k;
              fastcgi_buffers                 16 16k;
    
              # 최대 timeout 설정입니다.
              fastcgi_connect_timeout         600s;
              fastcgi_send_timeout            600s;
              fastcgi_read_timeout            600s;
    
              # 이 아래 설정은 PHP 성능 향상을 위한 옵션입니다. 추가해 주시면 좋습니다.
              sendfile                        on;
              tcp_nopush                      off;
              keepalive_requests              0;
    
     (... 이하 생략 ...)

    – 이후 nginx와 php7.0-fpm 을 restart (또는 reload) 해주시면 됩니다.
    아마 이것으로 대부분의 502 에러는 해결이 됩니다.

    $  sudo service nginx restart
    $  sudo service php7.0-fpm restart

     

     

    ▶ 해결책 2 : nginx의 설정 파일과 php-fpm 설정 파일의 소켓 일치시키기

    – 간혹 nginx의 설정 안에서의 ‘fastcgi-pass’ 경로와, php-fpm 설정 파일의 listen 경로가 다른 경우, 502 Bad gateway 에러가 나타나는 경우가 있다고도 합니다. 이런 경우에는 PHP를 불러오는 대다수의 경우의 에러가 발생하는 경우가 많습니다.

    – 먼저 nginx 설정 파일에서 PHP를 처리하는 부분의, fastcgi-pass 값을 확인하여 PHP-fpm sock 파일이 정상적으로 위치해 있는지 확인합니다. (없는 경우에는, sock 파일을 찾아서 적당한 경로로 입력해 주어야 합니다. 많은 경우에는 /var/ 디렉토리 안에서 php 관련 폴더 안에 위치하고 있습니다.)

    # nginx 설정 파일 내 PHP 처리 부분(저의 경우는 /etc/nginx/sites-available/default 내)에서,
    # location ~ \.php$ { 부분으로 시작하는 곳을 찾습니다.
    
            location ~ \.php$ {
    # 안에서,
                    fastcgi_pass unix:/your/php/sample/php7.0-fpm.sock;
    # 부분의 경로에 sock 파일이 있는지 확인합니다.
    
     -------------------------
    
    $  ls -al /your/php/sample/
    -rw-r--r--  1 root     root       4  1월  8 12:34 php7.0-fpm.pid

     

    – sock 파일이 있는 것을 확인했다면, PHP-fpm 설정 파일에서 listen 부분의 sock 파일이 경로가 동일한지 확인합니다.

    $  sudo nano /etc/php/7.0/fpm/pool.d/www.conf
     (PHP 버전 및 설치 방법에 따라 설정파일 경로가 다를 수 있음)
    
    
    [www]
     (중에서, )
    
    ; The address on which to accept FastCGI requests.
    ; Valid syntaxes are:
    ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
    ;                            a specific port;
    ;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
    ;                            a specific port;
    ;   'port'                 - to listen on a TCP socket to all addresses
    ;                            (IPv6 and IPv4-mapped) on a specific port;
    ;   '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    listen = /your/php/sample/php7.0-fpm.sock
    
     (listen 부분의 경로가 nginx 설정 파일의 경로와 일치하게 수정)

     

    설정이 끝난 이후, nginx와 php-fpm을 재시작(또는 reload) 해 줍니다.

    $  sudo service nginx restart
    $  sudo service php7.0-fpm restart

     

     

    ▶ 해결책 3 : php-fpm 설치 후 php-fpm을 실행하지 않은 경우 (…)

    – 매우 드문 경우이긴 합니다만, php-fpm 을 설치한 이후 실행하지 않아서 작동하지 않는 경우가 있을 수도 있습니다. (…) service 명령어를 이용해 아래와 같은 명령어들을 실행해 봅니다.

    $  sudo service php-fpm start
    $  sudo service php5-fpm start
    $  sudo service php7.0-fpm start

    – 혹은 그저, 프로세스의 문제로 재시작을 하여 문제가 해결되는 경우도 있다고 합니다.

    $  sudo service php-fpm restart
    $  sudo service php5-fpm restart
    $  sudo service php7.0-fpm restart

     

     

    ▶ 끝마치며

    nginx와 php-fpm은 간혹 다양한 문제를 내뿜기도 합니다만, 확실히 Apache2 + PHP 조합보다 더 나은 성능과, 복합적인 처리 능력을 자랑하는 만큼, 다양한 에러를 해결해 나가면서 점점 nginx가 최적화 될 수 있도록 설정하실 수 있으실 것이라고 확신합니다.

    502 Bad gateway 또한 다양한 이유에 의해 문제가 발생하고 있기도 하고, 또 다양한 방법으로 해결되기도 합니다. 그런 만큼, 포기하지 마시고 해결하실 수 있으시면 좋겠습니다.

    이상으로 글을 마치겠습니다.
    다양한 코멘트 늘 기다리고 있습니다. ^^

  • nginx/Apache 우분투 서버에 PHP7(PHP7-fpm) 설치(또는 업데이트) 하기

    nginx/Apache 우분투 서버에 PHP7(PHP7-fpm) 설치(또는 업데이트) 하기

    ※ 본 팁은 기본적으로는 nginx + PHP7-fpm + PHP7-mysql 조합으로 설치 또는 업데이트 하는 방법을 기준으로 하고 있습니다.
    ※ 하지만 Apache + PHP7 + PHP7-mysql 조합으로 설치하는 분들에게도 적용이 가능합니다. (nginx 설정 부분 제외하여 적용)
    (2016/02/25 기준) PHP 7.0을 배포하는 ppa(개인 레파지토리)가 기존의 ppa:ondrej/php-7.0 에서 ppa:ondrej/php 로 통합되었습니다. 기존에 php-7.0 ppa를 이용하시던 분들은 반드시 sudo add-apt-repository –remove ppa:ondrej/php-7.0 명령어를 실행한 이후 sudo add-apt-repository ppa:ondrej/php로 ppa를 변경하여 사용하시기 바랍니다.

    ▶ 들어가며

    [ 우분투 시스템에서 PHP 7과 nginx 설치하기 ]
    [ 우분투 시스템에서 PHP 7과 nginx 설치하기 ]
    nginx는 기본적으로 Apache 등에 비해서 퍼포먼스가 괜찮은 웹 서버입니다. 현재 이 곰곰 잡동사니 블로그를 운영하고 있는 필자의 서버 또한 라즈베리 파이 2B라는 좋지 않은 스팩의 미니 컴퓨터인데도, nginx로 워드프레스를 운영하고 있는 중입니다.

    워드프레스를 운영하기 위해서는 nginx 외에도 같이 작동해야 할 어플리케이션이 있는데, 그 중에 대표적인 어플리케이션을 뽑으라고 하면 PHP가 있습니다. PHP는 과거부터 HTTP 어플리케이션이 좀 더 동적이고 다양한 방식으로 운영될 수 있도록 해 주었는데요. 최근까지는 PHP5 버전이 비교적 많이 쓰이고 있었고, 제품 지원또한 잘 이루어지고 있었습니다.

    하지만 2015년 12월, PHP7 버전이 정식으로 릴리즈 되었고, PHP5.5는 2016년 7월 10일, PHP 5.6은 2017년 8월 28일에 보안 업데이트 지원이 중단된다(관련 공식 홈페이지 페이지)는 이야기가 있는 만큼, PHP7 으로 업그레이드 해서 지속적인 보안 지원을 받고, 한편으로는 PHP 처리 속도 등에서도 유리하지 않을까 하는 생각에 업데이트를 결심하게 되었습니다.

    또한 다행히도 PHP7 에서도 워드프레스는 정상 작동(링크)한다는 이야기를 들었기에, 안심하고 업데이트를 수행하였습니다.

     

     

    ▶ PHP 7.0 설치 준비하기

    현재 우분투 공식 apt-get 배포지에서는 PHP7 등이 공식적으로 지원되지 않고 있습니다. 따라서 현재 PHP7 등을 설치하기 위해서는 개인 패키지 어카이브(영어로 Personal Package Archive; 이하 PPA)를 등록하여 apt-get를 이용해야 합니다. Ondřej Surý는 우분투 개발자중에 한 명인데, 그의 PPA에는 우분투에서 바로 사용 가능한 PHP 7.0이 올라와 있습니다. 따라서 우리 리눅스 시스템에서 이 PPA를 활용하기 위해 아래와 같은 명령어를 사용하여 저장소를 등록해 줍니다.

    $  sudo add-apt-repository ppa:ondrej/php

     

    참고로 외국 홈페이지에 따르면, 이 저장소를 활용할 때는 시스템이 UTF-8을 지원하는 시스템으로 설정되어 있어야 한다고 합니다.

    어쨌든 PPA에서 php-7.0 관련 저장소를 인스톨했다면, apt-get update를 활용해 개인 리눅스 시스템 저장소를 업데이트 해 줍니다.

    $  sudo apt-get update
    [ apt-get update를 구동하면 이와 같이 저장소의 캐시를 새로고칩니다. ]
    [ apt-get update를 구동하면 이와 같이 저장소의 캐시를 새로고칩니다. ]

    이제, PHP 7.0을 설치할 준비는 모두 끝났습니다.

     

     

    ▶ 선택지 1) nginx 유저를 위한 PHP 7.0 fpm 설치

    nginx를 사용해신 분들이라면 아시겠지만, nginx는 PHP를 기본적으로 지원하고 있지 않아, nginx 상에서 PHP를 구동하기 위해 PHP-fpm 이라는 패키지를 필요로 하게 됩니다. 따라서 보통 Apache 서버에서 설치하는 것처럼 apt-get install php7.0 이라는 명령어로는 PHP를 구동하실 수 없습니다.

    따라서 php7.0-fpm 을 설치해주도록 합니다.

    $  sudo apt-get install php7.0-fpm

     

    기존에 php5-fpm 이 설치되어 있으셨던 분들은, 자동으로 php5-fpm이 php7.0-fpm으로 업데이트 되는 것을 확인하실 수 있으실 겁니다.

    php7.0-fpm의 설치 이후, MySQL/MariaDB을 같이 이용하시는 분들은 php5-mysql의 업데이트 버전인 php7.0-mysql 또한 설치해 주셔야 합니다.

    $  sudo apt-get install php7.0-mysql

     

    설치가 끝나면, 이어서 nginx 상에서 PHP 7.0을 구동하실 수 있게 nginx 설정 파일을 바꾸어 주셔야 합니다. nginx를 apt-get을 통해 설치해 주신 분들은, 기본 사이트의 설정 파일이 /etc/nginx/sites-available/default 에 존재함을 아실겁니다. 여러분들이 편한 텍스트 에디터로 이 파일을 열어줍니다. (저는 편의상 nano를 활용합니다.)

    $  sudo nano /etc/nginx/sites-available/default

     

    설정 파일을 열어, 먼저 기존 php5-fpm을 위해 구동되고 있던 부분을 주석처리 한 후, php7.0-fpm을 위해 설정 파일에 다음과 같은 부분이 들어가도록 합니다.

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    # (For PHP 7.0)
    #
            location ~ \.php$ {
                    # With php7-fpm:
                    try_files $uri =404;
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }

     

    저의 경우는 아래 이미지와 같이 설정해 두었으므로, 설정 파일 입력에 참고하시기 바랍니다.

    [ 이와 같이 기존의 php5 구동을 위한 부분을 주석처리 후, 새로이 설정 파일을 씁니다. ]
    [ 이와 같이 기존의 php5 구동을 위한 부분을 주석처리 후, 새로이 설정 파일을 씁니다. ]

    다음과 같이 설정하고, 설정 파일을 저장한 이후, nginx를 재시작해 줍니다.

    $  sudo service nginx restart

     

     

    ▶ 선택지 2) Apache 유저를 위한 PHP 7.0 설치

    Apache 유저는 설정 파일의 수정 없이 PHP 7.0과 관련 패키지만 설치되면 됩니다. 다음과 같이 PHP 7.0/PHP7-mysql을 설치 후, 아파치 서버를 새로 시작해 줍니다.

    $  sudo apt-get install php7.0
    $  sudo apt-get install php7.0-mysql
    $  sudo service apache2 restart

     

     

    ▶ PHP 테스트하기 & 끝마치며

    여러분들의 웹서버가 돌아가고 있는 디렉토리 루트에, PHP 정보 확인을 위한 파일을 하나 만듭니다. (예: phpinfo.php)

    <?php
     phpinfo();
    ?>

     

    이 파일을 만들어 실행해 보면, PHP가 7.0으로 실행되고 있는 것으로 확인하실 수 있습니다.
    ( 확인을 위해 만든 phpinfo.php 는 확인하시고 지워주시는 것이 보안상 좋습니다. )

    [ phpinfo();를 통해 PHP 7.0가 정상적으로 작동하는 것을 확인할 수 있었습니다. ]
    [ phpinfo();를 통해 PHP 7.0가 정상적으로 작동하는 것을 확인할 수 있었습니다. ]
    위와 같이 PHP가 7.0으로 구동되고 있다는 것을 확인하실 수 있습니다.

     

    저는 개인적으로 PHP 7.0 업데이트 후 어느 정도 워드프레스가 가벼워진 느낌을 받았는데, 여러분들은 어떨지 모르겠습니다.

    어찌되었든 성공적인 업데이트를 기원합니다. 두서 없는 글 읽어주셔서 감사합니다.

     

    ※ 참고 : How To Upgrade to PHP 7 on Ubuntu 14.04 (https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04)
  • 워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전

    워드프레스 Nginx 라즈베리파이로 서버 설치 또는 이전

    ▶ 들어가며

    본 블로그(곰곰 잡동사니 블로그)는 Tistory에서 테더툴즈로 돌아가던 시절로부터 시작해서, 노트북 내에 민트 리눅스를 사용하여 집에서 서버로 운영되고 있었습니다. 하지만 본 블로그는 인기가 한 푼 어치도 없는 블로그(…)이기 때문에, i3-3217u가 붙어있는 4GB 메모리의 노트북으로 서버를 운영하기에는 전력량이나 서버 자원량이 너무나도 사치(…)로웠기 때문에, 마침내 전기 사용을 적게 유지할 수 있는 라즈베리파이 2 모델 B를 사용하여 리눅스 서버를 운영하기로 결심을 하였습니다.

    (하지만, 2016년 1월부터 Amazon Web Service EC2 서버를 빌려 호스팅하고 있습니다. (…))

    [ 부담스럽지 않은 웹 서버 사용에는 라즈베리파이2 모델B도 좋은 선택이 될 수 있습니다. ]
    [ 부담스럽지 않은 웹 서버 사용에는 라즈베리파이2 모델B도 좋은 선택이 될 수 있습니다. ]

     

     

    ▶ 웹 서버에 알맞는 라즈베리 파이 운영체제와 웹 서버 데몬은?

    현재 원래 노트북에 Apache + PHP5 + MySQL (속칭 APM)이라고 부르는 그것들을 활용하여 블로그 서버를 운영하고 있었습니다. 트래픽 부담이 적은 제 컴퓨터에서 이 정도면 넘치는 사양이었지요.

    [ 현재 운영되고 있는 서버의 대략적인 개요입니다. ]
    [ 현재 운영되고 있는 서버의 대략적인 개요입니다. ]

     

    라즈베리파이 2 모델 BARMv7 설계 CPU를 사용하기 때문에 ARM용으로 설계된 리눅스 배포판(예: Ubuntu Server, Ubuntu MATE 등)을 라즈베리 파이에 설치할 수 있었습니다. 다만, 라즈베리 파이가 성능이 좋은 모바일 PC는 아니기 때문에, Apache보다 동시 접속자 처리 등에서 훨씬 가볍다고 여겨지는 NginX를 사용하여 웹 서버를 운영하기로 결정하였습니다.

    또한 지극히 개인적인 이유로 MySQL 대신 MariaDB를 사용하여 서버를 구축하고자 합니다.

    라즈베리 파이에 설치할 운영체제 또한 어떤 것을 골라야 할지 고민됐는데, Raspbian이나 기타 운영체제 대신 저는 Ubuntu MATE 라즈베리 파이 버전을 설치하기로 했습니다. 제가 지금까지 써 오던 우분투 계열의 리눅스이기도 하고, 다양한 팁을 적용하기도 쉬워 보였기 때문입니다. 따라서 서버는 아래와 같이 전환될 예정입니다.

    [ 이사가 진행되면 다음과 같이 라즈베리파이가 서버로 운영됩니다. ]
    [ 이사가 진행되면 다음과 같이 라즈베리파이가 서버로 운영됩니다. ]

     

     

    ▶ 1. 라즈베리 파이에 운영체제를 설치한다.

    00_rasp1

    라즈베리 파이를 구매하여 마우스와 키보드를 연결하고, 모니터를 연결해 두어 부팅할 수 있는 상태로 준비해 두고, 운영체제를 설치해야 합니다.

     

    라즈베리 파이용 Ubuntu MATE는 여기에서 다운로드 하실 수 있습니다. 사이트에 들어가 토렌트를 이용하여 운영체제를 다운로드 받습니다.

    [ 홈페이지에 들어가 BitTorrent 파일을 받아 토렌트로 다운로드를 마칩니다. ]
    [ 홈페이지에 들어가 BitTorrent 파일을 받아 토렌트로 다운로드를 마칩니다. ]

    다운로드 받은 img.xz 파일의 압축을 해제합니다. img 파일을 라즈베리 파이용으로 실행할 수 있기 위해 Win32 Disk Imager(여기에서 다운로드 가능)를 실행합니다.

    Win32 Disk Imager를 실행하여 ‘Image File’에 다운로드 하여 압축 해제한 img 파일을, ‘Device’에는 micro SD카드를 선택하여 Write를 눌러 이미지를 완성시킵니다.

    [ Win32 Disk Imager를 실행하여 다음과 같이 설정되게 합니다. ]
    [ Win32 Disk Imager를 실행하여 다음과 같이 설정되게 합니다. ]

    완성된 micro SD카드를 라즈베리 파이에 넣고 부팅을 시키면, Ubuntu Mate 설치 화면이 나옵니다. 순서대로 설치를 마칩니다.

    설치된 Ubuntu Mate를 여러분들 micro SD와 서버 운영에 맞게 설정을 해 줄 필요가 있습니다. 이에 대해서는 다른 팁에서 다루도록 하겠습니다.

    라즈베리 파이2B에 설치한 Ubuntu MATE 간단한 최적화 하기 (클릭)

     

     

     

    ▶ 2. nginx 설치

    이제부터 터미널을 활용하여 nginx를 설치하고자 합니다. 터미널에 apt-get 명령어를 입력하여 nginx를 설치합니다.

    sudo apt-get install nginx

    nginx가 설치가 완료되면, 웹 서버에 접속이 잘 되는지 웹 서버 IP로 접속을 하여 메인페이지를 확인합니다.

     

    설치가 완료된 경우, 저의 경우는 웹서버용 사용자 계정을 하나 만들어, 그 계정 안에 웹페이지 서버를 운영하고자 합니다. (※ 이렇게 하는 이유는 vsftpd를 활용할 때, 사용자 계정 이상으로 넘나들 수 있는 권한을 주지 않기 위해서입니다. 저는 리눅스 초보인지라 더 좋은 방법이 떠오르지 않아, 이 방법으로 앞으로 안내하고자 합니다.)

    nginx 메인 폴더를 변경하기 위해서는 nginx 설정 파일을 바꾸어 주어야 합니다. nginx 설정 파일이 들어있는 디렉토리 중 sites-available 안의 default 설정 파일을 변경해 주면 됩니다.
    저는 nano 편집기가 편하므로 nano를 사용하여 설정 파일을 수정하고자 합니다.

    sudo nano /etc/nginx/sites-available/default

     

    다음과 같은 세 가지가 수정되어야 합니다. (권장 변경 사항 1개, 필수 변경 사항 2개)

    ※ 1) 권장: 루트 폴더를 /home/web/www/ 로 변경하여 줍니다.

    [ root 디렉토리를 다음과 같이 수정합니다. 여기에 설정되는 폴더는 mkdir로 미리 만들어져 있어야 합니다. ]
    [ root 디렉토리를 다음과 같이 수정합니다. 여기에 설정되는 폴더는 mkdir로 미리 만들어져 있어야 합니다. ]

    ※ 2) 필수 1: index 부분에 index.php가 들어갈 수 있도록 합니다.

    [ index에 index.php를 넣어 주어 php로 만들어진 웹페이지가 정상 작동하도록 합니다. ]
    [ index에 index.php를 넣어 주어 php로 만들어진 웹페이지가 정상 작동하도록 합니다. ]

    ※ 3) 필수 2: nginx를 위한 php5-fpm을 설치하여 실행하기 위해 다음 사진과 같이 주석이 해제되어 있어야 합니다.

    [ nginx에서 PHP를 사용할 수 있게 다음과 같이 주석을 몇 줄 해제해야합니다. (주의해서 해제할 것) ]
    [ nginx에서 PHP를 사용할 수 있게 다음과 같이 주석을 몇 줄 해제해야합니다. (주의해서 해제할 것) ]

    이와 같은 과정이 끝나면 nginx의 설정은 일단(…) 마무리 됩니다.

    아래 명령어를 활용해 엔진엑스 데몬을 재시작 해 줍니다.

    sudo service nginx restart

     

     

     

    ▶ 3. php5 & php5-fpm & php5-mysql 설치

    apt-get을 이용하여 php5와 php5를 nginx 및 MariaDB에서 사용하기 위한 데몬을 설치하도록 합니다. 아래 명령어를 사용합니다.

    sudo apt-get install php5 php5-fpm php5-mysql

    설치가 끝나면, phpinfo 파일을 만들어 서버에서 실행시켜 봅니다.

    <?php
    phpinfo();
    ?>

     

    다음과 같이 실행이 된다면, MariaDB를 설치해 주시면 됩니다.

    [ phpinfo(); 가 정상적으로 이해되어 오픈되고 있음을 확인할 수 있습니다. ]
    [ phpinfo(); 가 정상적으로 이해되어 오픈되고 있음을 확인할 수 있습니다. ]

     

     

    ▶ 4. MariaDB 설치 & 간단한 설정하기

    역시 apt-get을 이용하여 MariaDB를 설치해 줍니다. MariaDB는 MySQL의 fork이기 때문에 실제 사용방법은 MySQL과 거의 동일합니다.

    sudo apt-get install mariadb-server

    MariaDB가 설치되었으면, mysql 로 접속하여 MariaDB가 사용가능한 상태인지 확인합니다. (아래 명령어 이용, 기본 root 비밀번호는 관리자 비밀번호와 동일)

    sudo mysql -uroot -p
    [ mysql 명령어를 사용하여, MariaDB에 접속해 봅니다. ]
    [ mysql 명령어를 사용하여, MariaDB에 접속해 봅니다. ]

    이와 같이 MariaDB에 접속이 가능한 상태면, 워드프레스 사용을 위해 MariaDB 서버 입출력을 utf-8로 바꾸어 주는 작업을 해야 합니다.

    아래와 같이 MariaDB 설정 파일을 변경해 줍니다. 아래 명령어를 활용해 다음 스크린샷과 같이 설정 파일을 수정해 줍니다.
    스크린샷에서 보이는 것처럼 아래 내용이 추가되어야 합니다.

    sudo nano /etc/mysql/mariadb.cnf
    
    
    #
    ## nano에 진입한 후, 아래 내용이 가장 마지막에 추가되도록 합니다.
    #
    
    [client]
    default-character-set=utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    
    [mysqld]
    collation-server = utf8mb4_unicode_ci
    character-set-server = utf8mb4
    [ 이와 같은 형식으로 mariadb.cnf 파일 제일 아래에 내용을 입력해주면 됩니다. ]
    [ 이와 같은 형식으로 mariadb.cnf 파일 제일 아래에 내용을 입력해주면 됩니다. ]

    이와 같이 설정을 모두 마쳤다면, 아래 명령어들을 이용해 전체적으로 서비스를 재시작 해 줍니다.

    sudo service mysql restart
    sudo service nginx restart

    이제, 통상적인 방법으로 워드프레스를 설치해 주시면 됩니다. 아래 추가 정보는 wordpress 서버를 이사하실 때 도움이 될만한 명령어를 모아두었습니다.

     

     

     

    ▶ 웹서버에서 다른 웹서버로 워드프레스 통째로 백업 & 복구하기

    1) 워드프레스 폴더를 통째로 압축하고 해제할 때 사용할 수 있는 명령어 (예: wordpress라는 폴더에 워드프레스가 있을 때)

    sudo tar -cvf backup.tar wordpress   # 압축을 수행할 때 사용하는 명령어
    sudo tar -xvf backup.tar   # 압축을 해제할 때 사용하는 명령어

     

    2) WordPress를 사용하고 있는 데이터베이스 전체를 백업해야 할 때 사용하는 명령어

    sudo mysqldump -uroot -p -A > backup_db.sql
    
    # 데이터베이스 전체를 백업하는 명령어
    

     

    3) WordPress database만 백업하고 싶을 때 (DB 이름이 wordpress인 경우)

    sudo mysqldump -uroot -p wordpress > backup_db_wordpress.sql
    
    # wordpress 데이터를 백업하는 명령어
    

     

    4) 데이터베이스를 복구할 때 사용하는 명령어

    sudo mysql -uroot -p < backup_db.sql   # 전체 데이터베이스를 복원할 때
    sudo mysql -uroot -p wordpress < backup_db_wordpress.sql
     # wordpress 데이터베이스만 복원할 때 (단, create database wordpress; 명령어로 wordpress DB가 미리 만들어져 있어야 함)
    
    # 데이터베이스 백업을 복원할 때 사용하는 방법

     

     

    궁금한 점 있으시면 틈틈히 답변 드립니다. 댓글 부탁드립니다.

    무사히 워드프레스를 라즈베리파이에 설치 또는 이사 마치시기를 바랍니다. 감사합니다.

  • 리눅스 민트(Linux Mint) 부팅 시 콘솔(CUI)로 부팅하기

    리눅스 민트(Linux Mint) 부팅 시 콘솔(CUI)로 부팅하기

    ▶ 들어가며

    리눅스 민트(Linux Mint)는 우분투 기반으로 만들어진 리눅스입니다. 기존에 있던 우분투도 사용자적인 측면에서 많은 배려가 있는 운영체제였는데요, 리눅스 민트는 더욱 더 사용자가 친숙하다고 느낄 수 있도록(사실 이 친숙하다는 부분은 Microsoft Windows를 사용하는 분들에게 더욱 와닿는 표현이지요.) 수정된 리눅스 배포판입니다.

    저는 이 곰곰 잡동사니 블로그를 운영하기 위해 집에서 잘 사용하고 있지 않던 노트북을 뚜껑(?)을 덮어놓고 서버로 운영하고 있는데요. (사실 제 미천한 블로그를 운영하기 위해서는 너무 과한 성능을 가진 노트북입니다. 라즈베리파이로 운영해 볼까 생각해보기도 했습니다만, 구매 후 불량이어서 그냥 노트북을 서버로 운영하고 있습니다.) 제가 리눅스에 대해 잘 알지도 못하고, 이러한 저러한 이유로 리눅스 민트를 설치해 서버로 운영하고 있습니다.

    리눅스 민트로 서버를 운영하면서 한 가지 불만인 점이 있었는데, 바로 필요 없는 때에도 운영체제가 GUI(그래픽)로 부팅된다는 점이었습니다. 저는 설치할 때나 간단한 설정을 할 때는 GUI로 진입하고 싶었습니다만, 서버로써 작동하고 있을 때는 SSH 콘솔로 충분하고, GUI 모드로 작동하고 있으면 불필요한 리소스 낭비가 아닐까 싶어서, 민트 리눅스를 CUI로 작동할 수 있는 방법을 찾기 시작했습니다.

     

    ▶ 리눅스 민트를 CUI로 사용하는 방법

    리눅스 민트를 부팅할 떄부터 CUI로 동작시키는 설정을 하기 위해선, 먼저 터미널(콘솔)로 진입할 필요가 있습니다. GUI를 현재 이용중이신 분들은 메뉴에서 터미널을 찾아서 실행시키시면 되고, 저는 PuTTY로 SSH 접속을 하여 실시하였습니다. 어느 쪽이시든 편한 쪽으로 사용하시면 됩니다.

    콘솔에서 편하신 텍스트 에디터를 사용하셔서 /boot/grub/grub.cfg 를 편집합니다.
    관리자에게 소유권이 있으므로, 앞에 sudo를 붙이시는 것을 잊지 마시기 바랍니다.

    ※ 만일의 문제에 대비하여, grub.cfg 파일을 반드시 백업해 두세요.
    (예: sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup)

     

    저는 nano를 좋아하기 때문에, nano로 편집하겠습니다.

    [ SSH로 접속하여, 위와 같이 명령어를 쳐 주고, root 비밀번호를 입력합니다. ]
    [ SSH로 접속하여, 위와 같이 명령어를 쳐 주고, root 비밀번호를 입력합니다. ]

    nano로 /etc/default/grub를 실행하시면 다음과 같은 화면을 만나실 수 있습니다.

    [ nano 텍스트 에디터로 연 파일입니다. 다른 텍스트 에디터는 화면이 상이할 수 있습니다. ]
    [ nano 텍스트 에디터로 연 파일입니다. 다른 텍스트 에디터는 화면이 상이할 수 있습니다. ]

    아래로 쭉 내리셔서, ### BEGIN /etc/grub.d/10_linux ### 라고 되어있는 부분을 찾습니다.

    [ ### BEGIN /etc/grub.d/10_linux ### 라고 되어있는 부분을 찾습니다. ]
    [ ### BEGIN /etc/grub.d/10_linux ### 라고 되어있는 부분을 찾습니다. ]

    그 부분을 찾으셨으면 아래로 몇줄 내리시면, menuentry “Linux Mint ~” 하는 부분이 첫 번째로 보이는 곳이 있습니다. 그 부분이 여러분들 부팅 메뉴의 처음 위치해 있는 기본 리눅스 부팅 옵션입니다.

    그 곳에서 아래에 있는 “linux /boot/vmlinuz-~” 라고 되어 있는 부분을 찾습니다.

    [ menuentry "Linux Mint ~" 라고 되어있는 부분 바로 아래의 linux 를 찾으셔야 합니다. ]
    [ menuentry “Linux Mint ~” 라고 되어있는 부분 바로 아래의 linux 를 찾으셔야 합니다. ]

    찾으셨다면, 오른쪽으로 쭉 이동해서 quiet splash라고 되어 있는 부분 바로 뒤에, text라고 입력해 줍니다.

    [ 다른 부분을 건드시면 문제가 되니, quiet splash 뒤에 text만 입력합니다. ]
    [ 다른 부분을 건드시면 문제가 되니, quiet splash 뒤에 text만 입력합니다. ]

    이제, 다 끝났습니다. 저장하고 나옵니다. (nano 텍스트 에디터의 경우에는 Ctrl + X 누르고, Y 누르고, 엔터 칩니다.)

    올바르게 작업내용을 저장하시고 재부팅(shutdown -r now)을 하시면, 콘솔로 리눅스가 진입하시는걸 볼 수 있습니다.

     

     

    ▶ 마무리

    리눅스를 CUI로 놓고 사용하는 것은, 리눅스를 공부할 때 참 좋다고 합니다. 저도 리눅스에 대해서는 멋도 모르지만, 콘솔로 두고 공부해 보고 있습니다.

    혹시 GUI가 다시 그리우실 땐 똑같이 이 파일을 수정하시되, 이 팁에서 입력했던 text 부분을 지워주시고 재부팅하면, 이쁜 리눅스 민트 GUI가 여러분을 반겨줄 것입니다.

    콘솔로 리눅스 민트를 이용하고 싶으신 분들이 있으셨다면 도움이 되시기를 바랍니다.

     

    ※ 이 팁의 적용으로 인한 각종 문제를 저는 책임지지 않습니다. 다만 궁금하신 점은 댓글로 받고 있습니다.
    ※ 본 팁은 http://community.linuxmint.com/tutorial/view/460 의 글을 기본으로 만들었습니다.
  • Hotspot Shield Elite 1년 이용권 간단 리뷰

    Hotspot Shield Elite 1년 이용권 간단 리뷰

    hotspot_shield

    1. 들어가며

    최근 다양한 외국 미디어나 어플리케이션 스토어의 매체의 우회 접속, 해킹 등으로 인한 각종 IP 접속에 대해 보안을 필요로 하는 경우가 많아졌습니다. 이에 따라서 VPN 서비스 또한 굉장히 큰 발전세를 보이고 있는데요.

    필자는 평소에도 VPN의 활용에 굉장히 관심이 많았습니다만, 이번에 일본에서 가입한 NetFlix 계정을 해지하기 위해서 부득이하게 일본 VPN으로 접속을 해야 할 필요가 있었기에, IP 우회를 하기 위하여 VPN 이용권을 구매할 생각을 가지고 있었습니다.

    따라서 괜찮은 VPN 호스트를 찾고 있던 중, VPN 제공 서비스 중에서 비교적 유명한 Hotspot Shield 를 이용해 보기 위하여, Elite (유료 회원) 1년 이용권을 끊었기 때문에, Hotspot Shield가 지원하는 VPN 서버, 인터넷 서핑 및 미디어 스트리밍 스피드 등에 대해서 궁금하신 분들이 많으실 것 같아 짧게 리뷰를 적어보고자 합니다.

    2. Hotspot Shield란?

    Hotspot Shield(핫스팟 쉴드)란 VPN을 제공하는 클라이언트의 이름이자 회사의 이름입니다. 먼저 이 Hotspot Shield를 이해하기 위해서는 VPN이 무엇인지에 대해 알아야 합니다. (VPN에 대해서 자세하게 읽어보기를 원하시면 아래를 참고해 주세요.

    • VPN이란 가상 사설 망(Virtual Private Network)의 줄임말입니다. 인터넷 서비스 업체(ISP)가 제공하는 망이 아닌 사설적으로 만들어진 네트워크라는 뜻이라고 생각하시면 편하실텐데요, 일단 ISP가 무엇인지 생각해 봅시다.

    ISP를 생각해보면 다양한 예를 들 수 있겠지만, 확 와닿을 수 있는 의미에서 우리나라에서 최종적으로 인터넷을 공급해주는 서비스 업체는 olleh(KT), SK(브로드밴드) 등을 예시로 들 수 있습니다. 그들은 간단히 말하면 컴퓨터와 컴퓨터를 연결해 줄 수 있는 거대한 인터넷 망에 여러분들의 각종 기기가 접속할 수 있도록 망을 배정해 주는 역할을 합니다.

    VPN이란 여러분들이 가지고 있는 내부 사설망에, 외부 어딘가 인터넷이 연결된 곳에서 여러분들의 사설망으로 접속할 수 있게 해 주는 시스템이라고 생각하시면 됩니다.

    간단한 예로 인터넷 공유기와 연결된 가상 우리집 인터넷 관계망을 생각해 봅시다. 인터넷 회선 1개를 받아, 우리는 집 안에서 모든 컴퓨터가 인터넷을 할 수 있게 연결해 둔 상태이죠.

    [ 우리집 내부망 (이라고 생각을 해 봅시다 (...)) ]
    [ 우리집 내부망 (이라고 생각을 해 봅시다 (…)) ]

    이러한 우리 집 내부 사설 망에 외부에서 접속하길 윈한다면, 이때 사용해야 하는 것이 VPN입니다. VPN는 암호화된 고유의 프로토콜로 외부의 컴퓨터가 내부 컴퓨터처럼 인식될 수 있게 만들어 주는 방법인 것이지요.

    [ VPN 서버는 외부에서 접속하여 마치 내부망에서 컴퓨터를 사용하는 것처럼 해 주는 역할을 합니다. ]
    [ VPN 서버는 외부에서 접속하여 마치 내부망에서 컴퓨터를 사용하는 것처럼 해 주는 역할을 합니다. ]

    따라서, VPN 서버에 연결하고 나서 이 컴퓨터에서 수행되는 모든 통신은 VPN 서버 안에서 수행되는 것처럼 취급 받는겁니다.

    즉, 미국 VPN 서버에 접속하여 컴퓨터를 사용하면, 제가 마치 미국에 해당 VPN 서버에서 컴퓨터를 이용하고 있는 것처럼 보이게 되는 것이지요.

    이에, Hotspot Shield는 세계 각지에 VPN 서버를 구축하여 전세계 어디에서는 그 VPN 서버로 연결하여 컴퓨터를 활용할 수 있게 해주는 프로그램/시스템입니다.

    3. Hotspot Shield의 지원 대상 & 설치 후기

    Hotspot Shield는 꽤나 거대한 VPN 서버 업체이기 때문에, 다양한 플렛폼을 지원하고 있습니다. 

    [ Hotspot Shield는 다양한 운영체제를 지원하고 있습니다. ]
    [ Hotspot Shield는 다양한 운영체제를 지원하고 있습니다. ]

    Hotspot Shield는 다양한 플랫폼을 지원합니다. 저는 개인적으로 Windows 10과 iPhone 6를 이용하고 있는데, 두 군데에서 모두 등록해서 사용해 본 결과, 모두 잘 지원이 되고 있습니다. 다만 일부 플랫폼에서는 플랫폼 지원이 안되는 경우도 있는데, 예를 들어서 Android는 대부분의 버전을 지원하고 있지만 Android TV 플랫폼은 아직 지원하고 있지 않고 있기도 합니다.

    Windows 10에서는 공식 홈페이지(여기)에서 Hotspot Shield를 다운 받아 설치하여 실행하면, 다음과 같은 화면을 만나실 수 있습니다.

    [ Elite 회원이 되시면 국적을 선택하거나, 최대 기기를 5개까지 설정할 수 있습니다. ]
    [ Elite 회원이 되시면 국적을 선택하거나, 최대 기기를 5개까지 설정할 수 있습니다. ]

    회원이 아니여도 프로그램 설치로 무료로 VPN 서비스를 이용하실 수 있지만, Elite 회원이 되시면 더욱 많은 혜택을 보실 수 있습니다.

    자세한 사항은 공식 홈페이지를 참고하시기 바라며, 여기에는 홈페이지에서 캡쳐해온 스크린샷만 올려두도록 하고자 합니다.

    [ 엘리트 회원에게는 다음과 같은 혜택이 주어집니다. 연간 이용권을 구매해야 합니다. ]
    [ 엘리트 회원에게는 다음과 같은 혜택이 주어집니다. 연간 이용권을 구매해야 합니다. ]

    4. Hotspot Shield 속도 분석 (인터넷 검색, Youtube 스트리밍을 미국, 일본 서버에서 비교)

    [ 세계 각국의 VPN을 통해 그 지역에서만 사용가능한 컨텐츠가 활용 가능합니다. ]
    [ 세계 각국의 VPN을 통해 그 지역에서만 사용가능한 컨텐츠가 활용 가능합니다. ]
    VPN을 통해 다양한 서비스에 접속해 본 결과, 미국 VPN을 통해 Amazon Prime이나 NetFlix에 접근하여 이용하는 것이 가능하였고, 일본 VPN을 통해서도 Amazon NetFlix 모두에 접속이 가능했었습니다. 외국 VPN 중에서는 간혹 중복된 IP, 차단 당한 IP 등의 사유로 인하여 외국 사이트에 접속을 차단당하는 경우가 있는데, Hotspot Shield는 그런 문제는 없었습니다.

    다만, 집 회선이 느린 것이 아닌데도 VPN 접속 후 속도가 굉장히 느려서 재빠르게 서비스를 이용할 수는 없었습니다. 궁금해서 Google 접속과 Youtube 동영상 사이트 접속에 대해서 속도를 측정해 보았습니다.

    공정성을 위해 3회씩 측정하여 평균을 냈고, 쿠키 등으로 속도가 차이가 있을 경우를 대비해 Google Chrome Inprivate 에서 평가하였습니다.

    [ 일본 VPN과 미국 VPN 접속 시 접속 시간 ]
    [ 일본 VPN과 미국 VPN 접속 시 접속 시간 ]

    전체적인 총평을 내리면, 해당 외국 서버에 존재하는 페이지면 비교적 빠르게 접속되지만, Amazon Prime 비디오나 NetFlix 비디오를 볼 때는 끊김 등을 주의하셔야 할 필요가 있습니다.

    다만, 간단한 보안을 위해 사용하시는 것이라면 저렴한 가격에 5대까지 VPN 사용이 가능한 Hotspot Shield도 좋은 선택이 되실 것 같습니다.

    5. 총평

    Hotspot Shield VPN은 저렴한 가격에 강력한 IP 우회 기능을 갖고 있는 VPN 서버 접속이 가능하도록 해 줍니다. 무료에도 사용이 가능하다는 점, 카페 등 공공장소에서 인터넷을 할 때 각종 해킹 시도로부터 안전할 수 있다는 점은 굉장히 매력적이며, 특히 Elite 회원인 경우 다양한 국가의 서버 접속이 가능하여 해당 지역 인터넷 활용시 더욱 빠르게 이용이 가능할 수도 있다는 점이 메리트로 작용할 것 같습니다.

    하지만 동영상 스트리밍을 보기에는 쉽지 않은 점, 특히 VPN 접속을 하여 불편하게 해외 서비스를 이용해야 하는 경우, VPN 접속 과정과 사용 시 인터넷 속도가 느려지는 현상 등에 대해서는 꼭 한번 깊게 생각해보시고 해당 서비스를 이용하시는 것이 좋을 것 같습니다.

    다양한 질문은 댓글로 받고 있습니다.

    부디 여러분들의 VPN 서비스 선택에 도움이 되셨기를 바랍니다.
    감사합니다.