3화 본격적인 서버 구축
기본 운영체제(Operating System)의 기본 설정 및 확인
이제 이전 화를 바탕으로 운영체제를 선택했습니다.
[개발자가 하는 일 1] 서버 구축에 앞서..
그럼 이제 운영체제를 선택했으니 운영체제를 설치하고 서버를 구축해야 합니다
직접 PC 에서 설치한다면 링크를 확인 통해 설치 해주세요.
많은 운영체제 중 우리는 센트오에스(CentOs) 를 선택했습니다.
클라우드 환경에서 운영체제를 설치할 때 별도의 설치 과정이 필요 없습니다.
그럼 설치가 되었다고 생각하고 서버에 접속을 합니다.(이 아래의 과정 글에 대한 형식은 글의 마지막에 부분에서 확인하세요.)
일반 기본적인 컴퓨터 사용을 비유하며 진행하겠습니다.
서버 구축을 한다는 건 개인 컴퓨터를 샀을 때 하는 행동과 같습니다.
개인 컴퓨터를 사면 무엇을 먼저하나요?
보통 개인의 목적에 따른 프로그램들을 설치합니다.
그렇지만 윈도우 오피스 라던가 한글, 동영상 플레이어 등 보편적으로 설치하는 프로그램들이 있습니다.
이처럼 리눅스라는 것도 보편적으로 설치하는 부분들이 있습니다.
다만 가장 큰 차이가 있다면 마우스를 이용하여 클릭하는 부분들이
직접 명령어를 입력하여 실행되게 되는 것입니다.
그럼 왜 굳이 이렇게 불편하게 하는가 하는 의문이 들게 됩니다.
저는 그에 대해 이렇게 생각합니다.
일반 윈도우나 맥등의 구이(GUI) 환경은 컴퓨터의 자원(Resource)를 많이 잡아 먹게 됩니다.
그래서 이러한 자원을 최대한 아껴서 서버 성능의 최대화를 위해 보기 어려운 Text 모드를 이용하게 됩니다.
그럼 이제 서버에 접속부터 하겠습니다.
이제부터 가상의 환경에서 작업하는 일이지만 실제로 사람이 하는 것을 생각해보면
아래 이미지 같은 일은 한다고 생각하시면 될 것 같습니다.
1) 서버 접속
#ssh -l ID -p Port IP
실제 코드 : ssh -l root -p 43232 123.155.157.133 만약에 제대로 된 아이피로 접속한다면 아래처럼 비밀번호를 물어보게 됩니다. root@IP's password:
시큐어셸( Secure Shell, SSH)[1]는 네트워크 상의 다른 컴퓨터에 로그인 하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복수할 수 있도록 해 주는 응용프로그램 또는 프로토콜을 말합니다.
강력한 인증 방법을 통해 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공합니다.
시큐어셸(SSH)는 암호화 기법을 사용하기 때문에, 통신이 노출된다 하더라도 이해할 수 없는 암호화된 문자로 보인다.
이를 쉽게 풀어서 이야기 하면
서버와 내 피시간의 통신을 위한 목적으로 만들어 졌습니다.
만약 축구를 한다면 축구를 하면서 지켜야 할 규칙이라고 이해하시면 됩니다.
1~5는 내가 설치한 컴퓨터 사양이 맞는지 확인하는 과정입니다.
1) 리눅스 버전 체크
[root@mobileflow ~]# uname -a
2) CentOS 버전체크
[root@mobileflow ~]# cat /etc/redhat-release
3) 하드용량체크
#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 50G 7.7G 39G 17% /
tmpfs 935M 0 935M 0% /dev/shm
뭔가를 잔뜩깔았는지 39기가가 사용 가능합니다.
4) 메모리 체크
[root@mobileflow ~]# free -m
total used free shared buffers cached
Mem: 1869 1851 17 0 197 234
-/+ buffers/cache: 1419 449
Swap: 0 0 0
5) CPU 체크
[root@mobileflow ~]# cat /proc/cpuinfo | grep processor | wc -l
1
#cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
stepping : 7
microcode : 1808
cpu MHz : 2194.756
cache size : 20480 KB
physical id : 6
siblings : 1
core id : 0
cpu cores : 1
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc up rep_good unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat epb pln pts dtherm
bogomips : 4389.51
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
6) 패키지 목록 갱신 및 업데이트
Yum
은 Yellow dog Updater, Modified의 약자로
RPM
기반의 시스템을 위한 자동 업데이터 겸 패키지 설치/제거 도구이다.
Yum은 Yellow dog Update라고도 하고 Duke University에서 RPM 설치를 개선하기 위해 개발한 패키지 관리자입니다.
Yum
[2]
은 패키지 저장소를 수요되는 패키지를 검색하고 다운로드 하여 설치까지 처리하면서 패키지들의 의존성을 고려하여 설치할때 패키지 의존성에 대한 error를 줄일 수 있습니다. Red Hat Enterprise Linux 5에서는 Yum으로 패키지를 설치합니다.
우리는 yum 라는 센트오에스에 내장된 프로그램을 이용해서 프로그램을 쉽게 설치/제거 할 수 있습니다.
쉽게 생각하면 그리가 스마트 폰에서 사용하는 앱스토어나 플레이 스토어 같은 개념으로 이해하시면 쉽습니다. 다만 차이가 있다면 눈으로 쉽게 터치 하는 것이 아니라 명령어를 입력하는 것입니다.
[root@mobileflow ~]# yum update
Loaded plugins: fastestmirror, security
Setting up Update Process
Loading mirror speeds from cached hostfile
epel/metalink | 4.3 kB 00:00
* base: mirror.navercorp.com
* epel: mirror.premi.st
* extras: mirror.navercorp.com
* updates: www.ftp.ne.jp
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
jenkins | 2.9 kB 00:00
mongodb | 951 B 00:00
updates | 3.4 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package libudev.x86_64 0:147-2.73.el6_8.1 will be updated
---> Package libudev.x86_64 0:147-2.73.el6_8.2 will be an update
---> Package udev.x86_64 0:147-2.73.el6_8.1 will be updated
---> Package udev.x86_64 0:147-2.73.el6_8.2 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================================================
Updating:
libudev x86_64 147-2.73.el6_8.2 updates 78 k
udev x86_64 147-2.73.el6_8.2 updates 358 k
Transaction Summary
================================================================================================================================================================
Upgrade 2 Package(s)
Total download size: 436 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libudev-147-2.73.el6_8.2.x86_64.rpm | 78 kB 00:00
(2/2): udev-147-2.73.el6_8.2.x86_64.rpm | 358 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 753 kB/s | 436 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libudev-147-2.73.el6_8.2.x86_64 1/4
Updating : udev-147-2.73.el6_8.2.x86_64 2/4
udevd[1324]: specified group 'lp' unknown
Cleanup : libudev-147-2.73.el6_8.1.x86_64 3/4
Cleanup : udev-147-2.73.el6_8.1.x86_64 4/4
Verifying : udev-147-2.73.el6_8.2.x86_64 1/4
Verifying : libudev-147-2.73.el6_8.2.x86_64 2/4
Verifying : libudev-147-2.73.el6_8.1.x86_64 3/4
Verifying : udev-147-2.73.el6_8.1.x86_64 4/4
Updated:
libudev.x86_64 0:147-2.73.el6_8.2 udev.x86_64 0:147-2.73.el6_8.2
Complete!
6) 시스템 시간 설정
[root@mobileflow ~]# cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime
cp: overwrite `/etc/localtime'? yes
한국사람이니 한국에 맞는 시간을 설정합니다.
이제 다음화에는 FTP 설치부터 진행하겠습니다.
1) https://ko.wikipedia.org/wiki/%EC%8B%9C%ED%81%90%EC%96%B4_%EC%85%B8
2) https://access.redhat.com/ko/node/82093
작성 폼 양식
번호) 제목
[root@mobileflow ~]# 명령어
실행결과