linux-jaeger-setup

jaeger를 다운 받을 위치로 이동한다. 나는 amazon linux 2를 사용했고 일부패키지는 amazon-linux-extra 를 사용했다.

cd /usr/local/src/

위치에서 시작했다.

GOPATH=`pwd`
echo $GOPATH

gopath 를 설정했으면 gopath bin 을 path 로 지정해줘야 한다. 현재위치에서 gopath/bin 은 /usr/local/src/bin 이된다.

export PATH=$PATH:$GOPATH/bin

gopath bin을 설정해줬으면 사전 설치를 한다.

amazon-linux-extras install golang1.11
amazon-linux-extras install epel
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install -y git npm nodejs
npm install -g yarn
go get -u github.com/mjibson/esc
go get github.com/securego/gosec/cmd/gosec

nodejs가 8버전이 필요하다. go 1.11 버전이 최소 요구 버전이다.

이제 본격적인 설치를 시작한다.

git clone https://github.com/jaegertracing/jaeger.git jaeger
cd jaeger/

git clone 뜨고 디렉토리를 이동한다.

설치전에 CONTRIBUTING.md 파일을 꼭읽자.

https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING.md

git submodule update --init --recursive
make install-tools
make build-ui

여기까지 하면 설치가 완료된거다.

go run -tags ui ./cmd/all-in-one/main.go

명령어로 실행한다.

사이트 확인은 16686 포트이다

http://IP:16686/search

으로 접근해서 서비스를 확인하자.

이 화면이 뜨면 정상적으로 설치된거다.

읽어주셔서 감사하다.

jaeger 설치를 마친다.

AWS-Linux-MariaDB-10.5-S3-Storage-Engine-install-실패

mariadb 10.5 version 에서 S3 Storage Engine을 사용하기위해 먼저 repo를 설치하고 s3 engine 를 올리려고 해봤다. 원랜 바이너리 패키지로 지원해야 하는데....

https://mariadb.com/kb/en/using-the-s3-storage-engine/

아무리 찾아봐도 없어서...찾아보니까...

https://jira.mariadb.org/browse/MDEV-22606

The S3 storage engine is included in source code distributions of MariaDB Community Server 10.5. However, it is not currently built and distributed with any of our MariaDB Community Server 10.5 binary packages.

이런내용이 있었다...제길..컴파일해야 하는구나.

그래서 컴파일을 시작했다.

mariadb 컴파일은 생각보다 엄청 오래걸린다. T2.micro 사이즈 기준으로 2시간정도.. 너무 느리다 생각되면 인스턴스 사이즈를 컴파일 할때만 잠깐 늘리거나 인스턴스가 터지지 않게 swap 을 늘려주자.

이전에 포스팅한 swap 만들기가 있다. 참고하자.

하면서 인스턴스용량 때문에 한번 메모리때문에 한번터져서 세번째엔 그냥 T3.large 유형으로 컴파일을 했다.

설치 시작전에 먼저 필요한 패키지를 설치한다.

cmake로 컴파일한다.

# amazon-linuxer-extra install epel-release
# yum install -y cmake gcc gcc-c++ ncurses-devel git curl-devel mhash-devel

먼저 기본설정으로 두가지를 설치하자. epel은 mhash-devel 때문에 설치하는거다.

# wget http://mirrors.supportex.net/mariadb//mariadb-10.5.3/source/mariadb-10.5.3.tar.gz

다운받고

tar zfxv mariadb-10.5.3.tar.gz

압축풀고

cd mariadb-10.5.3

이동하고 컴파일 한다.

# cmake \
-DWITH_READLINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_ARIA_STORAGE_ENGINE=1 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DPLUGIN_S3=YES \
-DINSTALL_SYSCONFDIR=/usr/local/mariadb/etc \
-DINSTALL_SYSCONF2DIR=/usr/local/mariadb/etc/my.cnf.d \
-DMYSQL_TCP_PORT=3306 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
-DMYSQL_DATADIR=/usr/local/mariadb/data \
-DMYSQL_UNIX_ADDR=/usr/local/mariadb/socket/mysql.socket

CMake Error at cmake/plugin.cmake:296 (MESSAGE):
Plugin S3 cannot be built
Call Stack (most recent call first):
CMakeLists.txt:427 (CONFIGURE_PLUGINS)

-DPLUGIN_S3=YES

위 옵션이 먹지 않았다.

https://jira.mariadb.org/browse/MDEV-19416

이리저리 찾아봐도 안된다는 내용만.. source  에 있다해서 신나서 했는데..ㅠㅠ

아직 10.5.3버전에서도 정상적으로 릴리즈되진 않은것으로 보인다.

S3_STORAGE_ENGINE=1 이옵션으로 켜줘야 정상아닌가..그래서

S3_STORAGE_ENGINE옵션을 주고 컴파일 해봤는데... 컴파일은 되는데 플러그인을 확인할수 없었다.

-rwxr-xr-x 1 root root 30008 May 23 06:36 adt_null.so
-rwxr-xr-x 1 root root 22368 May 23 06:36 auth_0x0100.so
-rwxr-xr-x 1 root root 327904 May 23 06:36 auth_ed25519.so
-rwxr-xr-x 1 root root 33488 May 23 06:36 auth_test_plugin.so
-rwxr-xr-x 1 root root 51160 May 23 06:35 caching_sha2_password.so
-rwxr-xr-x 1 root root 343792 May 23 06:35 client_ed25519.so
-rw-r--r-- 1 root root 227 May 11 14:34 daemon_example.ini
-rwxr-xr-x 1 root root 31840 May 23 06:36 debug_key_management.so
-rwxr-xr-x 1 root root 23608 May 23 06:36 dialog_examples.so
-rwxr-xr-x 1 root root 51848 May 23 06:35 dialog.so
-rwxr-xr-x 1 root root 419984 May 23 06:36 disks.so
-rwxr-xr-x 1 root root 59432 May 23 06:36 example_key_management.so
-rwxr-xr-x 1 root root 184128 May 23 06:36 file_key_management.so
-rwxr-xr-x 1 root root 1239672 May 23 06:36 func_test.so
-rwxr-xr-x 1 root root 718464 May 23 06:36 ha_archive.so
-rwxr-xr-x 1 root root 682112 May 23 06:36 ha_blackhole.so
-rwxr-xr-x 1 root root 8822896 May 23 06:36 ha_connect.so
-rwxr-xr-x 1 root root 532336 May 23 06:36 ha_example.so
-rwxr-xr-x 1 root root 874792 May 23 06:36 ha_federated.so
-rwxr-xr-x 1 root root 1526136 May 23 06:36 ha_federatedx.so
-rwxr-xr-x 1 root root 28310200 May 23 06:36 ha_mroonga.so
-rwxr-xr-x 1 root root 3250752 May 23 06:36 handlersocket.so
-rwxr-xr-x 1 root root 126790184 May 23 06:35 ha_rocksdb.so
-rwxr-xr-x 1 root root 1806592 May 23 06:36 ha_sphinx.so
-rwxr-xr-x 1 root root 11633920 May 23 06:36 ha_spider.so
-rwxr-xr-x 1 root root 363776 May 23 06:36 ha_test_sql_discovery.so
-rwxr-xr-x 1 root root 84016 May 23 06:36 libdaemon_example.so
-rwxr-xr-x 1 root root 415792 May 23 06:36 locales.so
-rwxr-xr-x 1 root root 592512 May 23 06:36 metadata_lock_info.so
-rwxr-xr-x 1 root root 29352 May 23 06:36 mypluglib.so
-rwxr-xr-x 1 root root 35656 May 23 06:35 mysql_clear_password.so
-rwxr-xr-x 1 root root 29568 May 23 06:36 qa_auth_client.so
-rwxr-xr-x 1 root root 39152 May 23 06:36 qa_auth_interface.so
-rwxr-xr-x 1 root root 24592 May 23 06:36 qa_auth_server.so
-rwxr-xr-x 1 root root 587624 May 23 06:36 query_cache_info.so
-rwxr-xr-x 1 root root 731952 May 23 06:36 query_response_time.so
-rwxr-xr-x 1 root root 234272 May 23 06:36 server_audit.so
-rwxr-xr-x 1 root root 28576 May 23 06:36 simple_password_check.so
-rwxr-xr-x 1 root root 31152 May 23 06:36 sql_errlog.so
-rwxr-xr-x 1 root root 1281352 May 23 06:36 test_versioning.so
-rwxr-xr-x 1 root root 689104 May 23 06:36 type_test.so
-rwxr-xr-x 1 root root 720048 May 23 06:36 wsrep_info.so

플러그인 리스트를 첨부하는것으로 포스팅을 마친다...

하....이번에도 역시 실패

Azure-Free Certification Exam

https://docs.microsoft.com/en-us/learn/certifications/microsoft-build-cloud-skills-challenge-2020-free-certification-exam-offer

Microsoft Build Cloud Skills Challenge 2020 를 완료하면 시험 바우처를 제공합니다!!

과정은 이렇습니다.

https://mybuild.microsoft.com/

가입후 메일로 인증확인 개인정보 등록

https://docs.microsoft.com/ko-kr/users/

learm 프로필에서 확인

https://aka.ms/buildcloudskillschallenge

챌린지 진행!

AWS-instance-Attach to Auto Scaling Group

나는 몹쓸 고정관념이 있었다.

auto scaling group 에서 인스턴스를 분리 하게되면 재연결할수 없다고 생각했다.

아니었다..그저 연결하는 메뉴가 Auto Scaling Group에 존재하지 않았을 뿐이다.

하..멍청멍청.

ASG에서 인스턴스를 분리한다.

하나의 인스턴스만 남는다. 내 ASG는

이렇게 설정되어있고 축소정책이 없는 상태라 분리하여도 문제가 없다.

정상적으로 분리된게 확인되면 인스턴스 탭으로 이동하자.

분리된인스턴스에서 인스턴스셋팅을 보면 Attach 메뉴가 있다.

이런식으로 ASG에 인스턴스를 넣어줄수 있다.

정상적으로 추가된것까지 확인된다.

-_-;보안그룹 넣는거부터.. ASG까지..또 내가 모르는게 많았다..

ASG 액션에서 연결버튼 하나만 만들어줘도... 이런고민 안했을껀데..

음 또 나만 몰랐던 AWS의 기능... 다신 잊지 않기 위해서 포스팅한다.

AWS-Advanced-Networking-Specialty

AWS Certified Advanced Networking – Specialty

오늘 5월 17일 ANS를 합격했다.

5월6일에 SCS를 보고난 후 개인적인 도전과...
스스로에 대한 점검의 의미로 ANS를 바로 도전하기로 생각했다.

GCP-PCA-PCNE를 이어서 보면서 AWS 의 Networking 자격증 또한 취득하고 싶었다.

그래서 5월6일 SCS를 합격하자 마자 그날부터 ANS를 공부했다.

먼저 jayendrapatil님의 블로그를 이전부터 봐왔기에 ANS 가이드와 정리가 있다는것을 아고 있었다. 그래서 먼저 정독했다.

그리고 나름의 계획을 세워서 Docs 정독과 BGP - Direct Connect 를 주로 공부했다.
그외의 과목들은 SAP와 실무에서 자주하던 내용이라 깊게 고민하진 않았다.

계획대로 잘되나 했는데..연습시험이 없었다......왜??????????????
ANS만 연습시험이 없다...하...깜짝놀랐다.

Security Group 나 NACL Routing table 같은거나 VPC 디자인 같은 내용들은 SAP / SCS공부를 하면서도 반복한 내용인지라 따로 추가적인 공부를 하지 않았다.

가지고 있는 기본지식으로 문제를 풀수있을거라 생각했으므로..

DX의 사용방법이나 trensit VPC / DX HA / cloud hub 구성에 대해서 많이 찾아봤다.

Redunant Direct Connect 아키텍처

이런 이미지 들로 주로 DX를 이해하려 했다. 그리고

https://dev.classmethod.jp/?s=Direct+Connect

일본의 AWS 파트너사인 Classmethod의 블로그를 참고했다.

간밤에는 오픈카톡에서 김용대님 신승광님 서노아님 등 여러분들이 참전하셔서 길을 찾아주셨다.

https://open.kakao.com/o/gMCqYXxb

여러분들과 운영해 나가는 자격증 오픈챗팅방이다.

그렇게 다양한 자료들을 흡수하며 DX를 이해하고 구성을 그렸다.

사실 잘 이해안가는건 BGP도 아닌 DX의 큰그림이 었기 때문이다.

DNS / VPC / DHCP option set 같은건 익숙했다.

그렇게 5일가량은 DX를 공부했다. 제일 도움이 됬던건

https://d1.awsstatic.com/whitepapers/aws-amazon-vpc-connectivity-options.pdf

Amazon Virtual Private Cloud Connectivity Options - white paper 정말 도움이 많이되었다.

그렇게 많은것들을 보고나서 오늘 종로 솔데스크에서 시험을 봤다.

시험을 완료하자마자 성적표가 날아왔다.

총점:  80%
주제별 등급점수:
1.0  Design and implement hybrid IT network architectures at scale: 83%
2.0  Design and implement AWS networks: 85%
3.0  Automate AWS tasks: 100%
4.0  Configure network integration with application services: 71%
5.0  Design and implement for security and compliance: 83%
6.0  Manage, optimize, and troubleshoot the network: 57%

다음과 같이 성적표까지 바로 발송되었다. 아슬아슬 했다고 생각한다.

여담으로 AWS의 시험시스템이 변경되었다고 이전에 언급했는데 당일에 점수와 결과가 발송된다.

그동안 너무 느린처리에 좀 불안하기도 하고 답답했는데 빨라져서 너무 다행이다.

일정대로 목표한 공부를 마쳤다.

시간이 난다면 sysops를 볼거 같다.

다음시험은 AZ-301을 취득하려 한다.

읽어주셔서 감사하다.

ANS 후기를 마친다.

AWS-VPC-rfc1918

요즘 ANS 공부를 하고 있다. 그러던 와중에 알게된 부분이다.

AWS에선 VPC 를 생성할때 RFC1918을 권장한다.

10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)

이 대역이다. 그러던중 IPv4 블록 연결제한 부분을 보게되었다.

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Subnets.html#VPC_Sizing

IPv4 CIDR 블록 연결 제한
기본 VPC CIDR 블록이 상주하는 IP 주소 범위제한되는 CIDR 블록 연결허용되는 CIDR 블록 연결
10.0.0.0/8다른 RFC 1918* 범위(172.16.0.0/12 및 192.168.0.0/16)의 CIDR 블록입니다.기본 CIDR이 10.0.0.0/15 범위에 해당되면 10.0.0.0/16 범위의 CIDR 블록을 추가할 수 없습니다.198.19.0.0/16 범위의 CIDR 블록입니다.제한되지 않는 10.0.0.0/8 r범위의 기타 모든 CIDR입니다.공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
172.16.0.0/12다른 RFC 1918* 범위(10.0.0.0/8 및 192.168.0.0/16)의 CIDR 블록입니다.172.31.0.0/16 범위의 CIDR 블록입니다.198.19.0.0/16 범위의 CIDR 블록입니다.제한되지 않는 172.16.0.0/12 r범위의 기타 모든 CIDR입니다.공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
192.168.0.0/16다른 RFC 1918* 범위(172.16.0.0/12 및 10.0.0.0/8)의 CIDR 블록입니다.198.19.0.0/16 범위의 CIDR 블록입니다.192.168.0.0/16 범위의 기타 모든 CIDR입니다.공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
198.19.0.0/16RFC 1918* 범위의 CIDR 블록입니다.공개적으로 라우팅이 가능한 모든 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.
공개적으로 라우팅이 가능한 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.RFC 1918* 범위의 CIDR 블록입니다.198.19.0.0/16 범위의 CIDR 블록입니다.공개적으로 라우팅이 가능한 모든 다른 IPv4 CIDR 블록(비-RFC 1918) 또는 100.64.0.0/10 범위의 CIDR 블록.

간단히 정리하면 해당 RFC1918중 하나의 대역을 사용하면 다른 대역을 사용할수 없는것이다.

예로..

이런식이다..

왜이렇게 AWS에서는 RFC1918에 대한 제한을 두었는지는 알수없다.

non-RFC1918 은또 사용할수 있기 때문이다.

추측을 하자면 어제 조언을해주신..여러분들의 의견을 종합해보자면..

관리상의 측면때문일거라 생각은 드는데..

결론은 나지 않았다.

간단하게 정리한 스샷..

긴밤에 같이 고민해 주신 김용대님 신승광님 서노아님께 감사를 드립니다!

읽어주셔서 감사하다!

AWS-auto-assign IP settings

기본 VPC의 경우에는 EC2를 생성할때 자동으로 인스턴스에 Public IP가 자동으로 붙는다.

이퍼블릭 IP는 생성되면 뗄수도없고 인스턴스를 종료후 재생성 해야지만 된다.
Private subnet 에서도 Public IP가 생성되는것이므로 보안상의 취약점을 초래한다.

따라서 인스턴스를 생성할때는

이렇게 퍼블릭 IP가 비활성화로 생성해야하는데 매번 일일이 신경써서 하기엔 불편하다.

VPC-서브넷 에서 자동 할당 IP 설정 수정 옵션을 해제해주면 된다.

해제하고 저장후 인스턴스를 생성해보면 아래와 같이 확인된다.

스샷에서 보이듯 서브넷의 기본설정을 수정하여 자동으로 비활성화 할수있다.

이미붙은 Public IP는 뗄수 없다.

명심하자. 모든 EC2는 Public IP 없이 생성해야한다.

읽어주셔서 감사하다!

좋은하루 되시라!

AWS-GCP-Azure-network-none-rfc1918

VPC를 생성하는 경우, 다음과 같이 /16RFC 1918:규격에 따라 프라이빗(비공개적으로 라우팅 가능) IPv4 주소 범위에 속하는 CIDR 블록( 또는 이하)을 지정하는 것이 좋습니다.

-_-;공인IP를 쓸수있는건 아니지만 걍 아무대역 가져다 써도 VPC는 생성 가능하다.

갑자기 궁금해져서 퍼블릭클라우드는 비RFC1918을 지원하는지 모두 테스트 해보았고 모두 지원한다~

DOCS에서 명확하게 적혀있는것은 AWS 뿐이었다.

Azure

VNet 내에서 사용할 수 있는 주소 범위는 무엇입니까?

RFC 1918에 정의되어 있는 모든 IP 주소 범위를 사용할 수 있습니다. 예를 들어 10.0.0.0/16을 사용할 수 있습니다. 다음 주소 범위는 추가할 수 없습니다.

  • 224.0.0.0/4(멀티캐스트)
  • 255.255.255.255/32(브로드캐스트)
  • 127.0.0.0/8(루프백)
  • 169.254.0.0/16(링크-로컬)
  • 168.63.129.16/32(내부 DNS)

GCP

서브넷 및 IP 범위

서브넷을 만들 때 기본 IP 주소 범위를 정의해야 합니다. 선택사항으로 보조 IP 주소 범위를 정의할 수 있습니다.

  • 기본 IP 주소 범위: 서브넷의 기본 IP 주소 범위에 대한 비공개 RFC 1918 CIDR 블록을 선택할 수 있습니다. 이러한 IP 주소는 VM 기본 내부 IP 주소, VM 별칭 IP 주소, 내부 부하 분산기의 IP 주소에 사용할 수 있습니다.

뭐야.. 애매하잖아 다되는데

AWS-Security-Group-Tip

지금까지는 대량의 IP를 컨트롤 할땐..CLI를 이용하거나..

한줄씩 넣었다.

그도 그럴게..

(구)인터페이스 를 보면 한번에 하나의 IP만 넣을수 있게 되어있어 보이는 것이다.
그래서 지금까지의 나는 여러개의 IP에 동일한 프로토콜일 경우 여러개의 규칙을 추가했었다.

그런데 오늘 대량의 IP를 추가하려고 보니 CLI를 쓰기 너무 귀찮았다.

그래서..설마 구분자가 먹는거아냐? 싶어서 콤마를 써봤다.

ex) 192.168.1.1/32,192.168.2.1/32,192.168.3.1/32,192.168.4.1/32,192.168.5.1/32

다섯개의 32bit IP를 ,로 구분하고 이건 소스 IP에 넣는다

이런식으로..그리고 저장

한꺼번에 추가가 된게 보인다. 그럼 새로운 인터페이스에선?

이렇게 추가된다...하...왜이걸 몰랐지..?

나만 몰랐던걸로 하자.

하..씁슬

읽어주셔서 감사하다!