사용자의 실수를 방지하기 위해서 설정할 수 있다.

 

Termination Protection이 설정 된경우 아래와 같은 경고 화면이 나오고

Yes, Terminate 버튼이 비활성화 되어있다.

ec2 terminate which protected termination instance

설정은 간단하다

setup menu

 

Yes, Enable 버튼을 클릭한다.

세팅 끝이고

이 인스턴스를 terminated 시키기 위해서는

같은 메뉴에서 Yes, Disable을 클릭하면 된다.

상황

AWS의 market place에서 구매해서 사용하던 기존 openvpn의 사용자를 넘어서게 되어서

추가 openvpn을 구매하고 다시 세팅을 하게 되었다.

 

기존 설정하고 전부 동일하게 맞췄지만 다른 VPC로 통신을 못한다. 

맞춘 설정

  • Routing Table 설정
  • sysctl.conf에 net.ipv4.ip_forward = 1 설정
  • OpenVPN Server에서 넘어온 것을 받아줄 다른 VPC에 OpenVPN Client 세팅 (autologin)

별짓을 다해도 안되었는데 팀장님이 찾아주셨다.

 

설명

EC2 Instaces에서

Networking - Change Source/Dest. Check 옵션

EC2의 탄력적 네트워크 인터페이스에서 원본 또는 대상 확인 변경

 

Default 설정

  • 매뉴얼: 이 속성을 비활성화하면 인스턴스에서 대상이 특별히 해당 인스턴스로 지정되지 않은 네트워크 트래픽을 처리할 수 있습니다.
  • 주고받는 패킷의 src, dst를 체크하고 src가 본인이 아니면 막아버리는 옵션으로 보인다.
  • 좀 해깔리는데 StatusEnabled 인것만 확인하면 된다.

Status Enabled

 

즉, 지금하려는 case 처럼 Routing을 수행하려는 EC2 instance 에서는 이 옵션을 꺼야 한다.

매뉴얼에 나와있는대로 특별히 해당 인스턴스로 지정되지 않은 네트워크 트래픽을 처리해야 하는 상황이기때문.

 

옵션 끄고난 후 화면

Status Disabled

작업하는 서버는 Virtual Machine이고 Centos 7.3에서 수행함

(hypervisor는 kvm)

 

대쉬보드에서 3.5TB 디스크를 추가한다. (이 부분은 생략)

대쉬보드에서 생성할때 디스크 포맷은 하지 않는다. 

용량이 크니까 여기 업체 것은 꼬박 하루가 걸린다.

[root@seonpapa ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  256G  0 disk [SWAP]
vdc    253:32   0  3.5T  0 disk 

디스크를 ext4로 포맷을 한다.

[root@seonpapa ~]# file -s /dev/vdc
/dev/vdc: data


[root@seonpapa ~]# mkfs -t ext4 /dev/vdc
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
234881024 inodes, 939524096 blocks
46976204 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=3087007744
28672 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done       

[root@seonpapa ~]# file -s  /dev/vdc
/dev/vdc: Linux rev 1.0 ext4 filesystem data, UUID=c477973b-a02a-4eac-aac9-51acd46f1922 (extents) (64bit) (large files) (huge files)


저렇게까지 하고 마운트를 시켰다.

# mount /dev/vdc /truejp/data

[root@seonpapa data]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  256G  0 disk [SWAP]
vdc    253:32   0  3.5T  0 disk /truejp/data


파티션을 생성한다. (gpt로 생성한다.)

[root@seonpapa ~]# parted /dev/vdc

(parted) mklabel gpt                                                      
Warning: The existing disk label on /dev/vdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes

                                                              
(parted) unit GB                                                          
(parted) print

                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 3848GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart primary 0 3848
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 3848GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      0.00GB  3848GB  3848GB               primary

(parted) quit                                                             
Information: You may need to update /etc/fstab.

 


[root@seonpapa ~]# lsbkl                                               
-bash: lsbkl: command not found
[root@seonpapa ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  256G  0 disk [SWAP]
vdc    253:32   0  3.5T  0 disk 
└─vdc1 253:33   0  3.5T  0 part 
vdd    253:48   0  400G  0 disk 


리부팅을 하고 나면 마운트 했던 정보가 사라진다.
/etc/fstab 파일에 내용을 추가한다.

[dre@tjp-db-main ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu May 15 12:47:18 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/vda1       /                       ext4    defaults        1 1
/dev/vdb       swap                 swap   defaults       0 0
/dev/vdc1      /truejp/data        ext4    defaults       0 0














스퀴드 프록시 이건 또 뭔가.


분명 어딘가로 넘겨주는 역할을 할텐데..

아마도 내부에서 외부로 넘겨주는 역할이지 싶다.


오징어 프록시라니 미끈미끈한 느낌이 드는것이 

수월하게 잘 넘겨주는 도구 같다.


squid-cache: http://www.squid-cache.org/


소개 글을 한줄 씩 읽어나가본다.


- Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more.

- It reduces bandwidth 

- It improves response times by caching and reusing frequently-requested web pages.


자주 요청되는 페이지들을 캐쉬해뒀다가 다시 사용해주는 역할을 하나보다.



한글 설명을 한번 찾아본다.

- https://github.com/Yongdae-Kim/HowToUseSquid


ACL 설정이 있는 것으로 보아

캐쉬하면서 엑세스 접근도 해주고있고.



'기타' 카테고리의 다른 글

Kerberos Setup (KR)  (0) 2019.08.22
500 Error on Confluence Startup (KR)  (2) 2019.07.29
squid proxy  (0) 2018.12.19
reverse proxy 개념  (0) 2018.12.19
Subnet mask 개념  (0) 2018.11.14
MySQL binary log 삭제 주기 설정  (0) 2018.08.08

현재 일하는 환경에서는 nginx를 유용하게 사용하다보니 

reverse proxy라는 용어를 자주 사용한다.

그런데 이게 뭔 말인지 머리속에 그려지지가 않는다.


위키(reverse proxy) - https://ko.wikipedia.org/wiki/%EB%A6%AC%EB%B2%84%EC%8A%A4_%ED%94%84%EB%A1%9D%EC%8B%9C


읽어 봤지만 아직 이해를 못하겠다.


일단 forward proxy는 전달하는 개념으로 이해하였다.

File:Proxy concept en.svg

출처: https://commons.wikimedia.org/wiki/File:Proxy_concept_en.svg



[가정]

reverse proxy는 forward proxy와 반대개념이니까

단순 전달이 아니라 

수신한 메시지에 상응하는 응답 메시지를 되돌려 준다고 이해하면 되는 것인가?


[확인]

블로그를 뒤져본다.

1. https://www.lesstif.com/pages/viewpage.action?pageId=21430345

2. https://www.ibm.com/support/knowledgecenter/ko/SSKTXQ_9.0.1/admin/config/st_adm_port_rvprxy_overview_c.html

3. https://akal.co.kr/?p=1173

4. http://blog.naver.com/PostView.nhn?blogId=alice_k106&logNo=221190043948&redirect=Dlog&widgetTypeCall=true&directAccess=false

5. http://happymemoryies.tistory.com/13


읽어보니 맞는듯하다. 

다시 원점으로 되돌아와서 위키(reverse proxy)의 그림을 보았다.


파일:Reverse proxy h2g2bob.svg

출처: https://ko.m.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC:Reverse_proxy_h2g2bob.svg


그림을 다시 보니 

internet -> proxy -> webserver로 넘어갔다가 reverse

webserver -> proxy -> internet으로 응답이 간다.


잠깐,

다시 2개의 그림을 보니 응답이 되돌가 가는건 같은거 같은데

forward proxy하고 무슨 차이인거지.




아.. 

웹서버의 실제 주소가 아니라 reverse proxy로 설정된 주소(nginx.conf)로 요청을 주는 방식이라서

요청하는 클라이언트가 진짜 웹 서버의 정보를 알 수 없게 해준다. (5번 링크)







_

'기타' 카테고리의 다른 글

500 Error on Confluence Startup (KR)  (2) 2019.07.29
squid proxy  (0) 2018.12.19
reverse proxy 개념  (0) 2018.12.19
Subnet mask 개념  (0) 2018.11.14
MySQL binary log 삭제 주기 설정  (0) 2018.08.08
[카카오톡] 카드형 오픈프로필 설정하기  (0) 2018.05.23

서브넷이란 단어를 보면

네트워크를 서브로 나눴다는 느낌이고 

실제로도 부족한 IP자원을 효율적으로 사용하기 위해서 필요하다고 알고 있다.


개념을 이해하기에 더없이 좋은 실제 사용하기 (아래 계산기를 사용하면 훨씬 이해가 쉽다.)


네트웍쪽을 다룰일이 없으니 서브넷은 생각조차 안해오다가

최근에 신규 IDC로 이전하면서 VPC를 구성하며 서브넷을 구성하는 과정에

내가 그 개념을 다 까먹었음을 인지하였다.


이해를 못한 조건

  • 기존 우리가 사용하던 IDC에서는 /21이었는데 /22로 변경되서
  • 기존에 약 2000개씩 쓸 수 있던 것이 약 1000개만 사용할 수 있다.

/21, /22의 차이는 무엇이지? 
2000에서 1000으로 줄어든다는건 뭔 뜻이지?
각각의 서브넷을 그럼 어떻게 나눠줘야 하지?
아... 다 까먹었다.. 자괴감이 엄습해온다. 😫


일단은 RFC를 훑어 보자.

For example, on a Class B network with a 6-bit wide subnet field, an address would be broken down like this: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1 0| NETWORK | SUBNET | Host Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


느낌상 왠지 저 그림 하나를 이해하면 될 것 같다.


<network-number><subnet-number><host-number>



기본으로 돌아가서 IP를 확인해보자.

  • 11000000.10101000.01111011.00000000 -- Network address (192.168.123.0) 00000000.00000000.00000000.10000100 -- Host address (000.000.000.132)



저러한 IP주소에 아래의 서브넷 마스크를 AND 연산해서 구할 것 같은데..

접두사 크기네트워크 마스크이용 가능한 부분망부분망 당
이용 가능한 호스트 수
사용 가능한
모든 호스트 수
/24255.255.255.01254254
/25255.255.255.1282126252
/26255.255.255.192462248
/27255.255.255.224830240
/28255.255.255.2401614224
/29255.255.255.248326192
/30255.255.255.252642128
/31255.255.255.254128*256


내가 알고 싶은건 /21, /22 인 경우 부분망 당 이용 가능한 호스트 수를 대충 예상해보면 

  • /22는 대략 1000개
  • /21은 대략 2000개

일 것 같아보이는데 여기에 잘 나와있다.


여기부터 보면 확실히 이해가 간다.


255.255.128.0 부터 따라가면 된다.

왜냐하면 위의 서브넷 마스크는 1bit subnet으로서 2개의 네트워크가 구성될 수 있다.

따라서 N.N.0.0과 N.N.128.0 이런식으로 2개로 나눌 수 있다.


그렇다면 이 블로그를 작성한 목적인(내가 이해하고 싶던) 

255.255.252.0 (/22)인 경우에는 아래와 같이

N.N.0.0

N.N.4.0

N.N.8.0

N.N.12.0

N.N.16.0

...

이런식으로 4씩 증가시켜가면서 각각의 서브넷에 IP를 할당해줄 수 있다.


 255.255.252.0 64 nets

6 bit subnet

1022 N.N.4.0 N.N.4-7.N N.N.7.255 N.N.8.0 N.N.8-11.N N.N.11.255 N.N.12.0 N.N.12-15.N N.N.15.255 N.N.240.0 N.N.240-243.N N.N.243.255 N.N.244.0 N.N.244-247.N N.N.247.255 N.N.248.0 N.N.248-251.N N.N.251.255 N.N.252.0 N.N.252-254.N N.N.254.255



그래서 기존에 255.255.248.0(/21)일때는 각 vlan에 8씩 증가시켜서 할당해줬었군.


'기타' 카테고리의 다른 글

squid proxy  (0) 2018.12.19
reverse proxy 개념  (0) 2018.12.19
Subnet mask 개념  (0) 2018.11.14
MySQL binary log 삭제 주기 설정  (0) 2018.08.08
[카카오톡] 카드형 오픈프로필 설정하기  (0) 2018.05.23
[MS Word 2016] 자체 번역기능 사용하기  (0) 2018.02.13

기존 800G 디스크를 사용하고 있는 DB 서버에서

DB를 백업해야하는 상황이다.


xtrabackup을 사용하려는데

남아있는 디스크가 얼마 되지 않아서

백업을 위한 텅빈 디스크가 필요하다.


http://sfixer.tistory.com/entry/%EB%94%94%EC%8A%A4%ED%81%AC-%EB%B3%BC%EB%A5%A8-%EC%82%AC%EC%9D%B4%EC%A6%88-%EC%A6%9D%EA%B0%80%EC%8B%9C%ED%82%A4%EA%B8%B0

이전에 작성했던 나의 포스트를 참고해서 시작했다.


마우스로 EC2로 가서

Elastic Bloack Store의 Volume을 클릭하고

클릭클릭... 500G 만들거니까 클릭클릭..

원하는 인스턴스에 Attach까지 


음.. 간단하군

이제 실제로 붙여 볼까.

아, 역시 그냥 하면 당연히 안되지 😭


[ec2-user@ip-sfixer ~]$ lsblk                                                  

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT                                    

xvda    202:0    0  800G  0 disk                                               

└─xvda1 202:1    0  800G  0 part /                                             

xvdf    202:80   0  500G  0 disk                                               

[ec2-user@ip-sfixer ~]$ sudo mount /dev/xvdf /Storage                          

mount: mount point /Storage does not exist                                     

                                               

 

왠지 마운트 하기전에 디스크 타입을 맞춰야 할듯하다.


https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-using-volumes.html

 

참고해보니 있다. 아래의 순서로 명령을 수행한다.


 

[ec2-user@ip-sfixer ~]$ lsblk                                                     

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT                                       

xvda    202:0    0  800G  0 disk                                                  

└─xvda1 202:1    0  800G  0 part /                                                

xvdf    202:80   0  500G  0 disk                                                  

                                                                               

[ec2-user@ip-sfixer ~]$ sudo file -s /dev/xvdf                                    

/dev/xvdf: data                                                                   

[ec2-user@ip-sfixer ~]$ sudo file -s /dev/xvda1                                   

/dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=fa5b665e-c3ee-4596-ac88-ae39494c7bf2 (needs journal recovery) (extents) (large files) (huge files)

                                                                               

[ec2-user@ip-sfixer ~]$ sudo mkfs -t ext4 /dev/xvdf                               

mke2fs 1.42.12 (29-Aug-2014)                                                      

Creating filesystem with 131072000 4k blocks and 32768000 inodes                  

Filesystem UUID: c73a1534-0bd3-4c52-9ec5-25b6f0d3945e                             

Superblock backups stored on blocks:                                              

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,       

        102400000                                                                 

                                                                                  

Allocating group tables: done                                                     

Writing inode tables: done                                                        

Creating journal (32768 blocks): done                                             

Writing superblocks and filesystem accounting information: done                   

                                                                                  

[ec2-user@ip-sfixer ~]$ sudo file -s /dev/xvdf                                    

/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=c73a1534-0bd3-4c52-9ec5-25b6f0d3945e (extents) (large files) (huge files)

                                                                               

[ec2-user@ip-sfixer ~]$ sudo mkdir /Storage                                       

[ec2-user@ip-sfixer ~]$ sudo mount /dev/xvdf /Storage/                         

[ec2-user@ip-sfixer ~]$ cd /Storage/                                           

[ec2-user@ip-sfixer Storage]$ ll



제대로 되었다. 완료


Grafana와 Zabbix를 연동해서

사설 클라우드의 서버를 모니터링하는데 쓰고 있었는데

AWS에서 사용중인 Elasticache, SQS, RDS도 함께 사용하고 있으니

이를 통합해서 보고 싶은 욕구가 생겼다.


역시나 이미 누군가 구현해놨다..😨

심지어 grafana를 설치할때 같이 설치 되어있어서 추가 설치도 필요가 없다.
그럼 그걸 연동하기 위한 세팅 방법에 대해서 여기에 기록해둬야겠다.


문서에 간단하게 나와있다.
http://docs.grafana.org/features/datasources/cloudwatch/#metric-query-editor




Data Sources를 클릭



+Add data srouce 클릭



Type에서 Cloudwatch 선택



AWS의 IAM 인증받고 발급했던 개인 액세스, 시큐릿 키가 있을텐데

(이건 awscli 사용하거나 python boto3를 쓰건 어쨌건 일반적으로 가지고 있으니 패스)


아래처럼 직접 키값을 넣어도 되고


물론 키값을 넣고 나면 일단은 아래처럼 안 보이게 해준다.

센스있는 grafana..



여튼 아래와 같이 설정해주고 Save & Test로 저장한다.




참고로 Default를 체크하고 안하고는 다음에 직접 사용할때와 연관있다.

그럼 이제 진짜 추가해보자.


그래프를 선택하고




Edit 화면에서 Metrics에 가서 저기 default 부분을 눌러준다.

일단 현재 사용하는 곳은 zabbix가 기본이라서 위의 설정에서 Default에 'v' 체크가 없는데

CloudWatch를 주로 사용하면 default로 체크하면 될듯 하다.




대략 아래처럼 해주면 그래프에 모아서 볼 수 있다. (일부 정보는 모자이크 처리)

물론 아래의 그래프는 CloudWatch에 가면 똑같이 볼 수 있다.

참고로 Dimensions를 세팅해줘야 원하는 아이템에 대해서 볼 수 있다.



나머지는 그래프 보기 설정만 만져주면 끝.

생각보다 매우 간단하다.

+ Recent posts