Aurora 리스트, 스냅샷, 복원 CLI - AWS Aurora MySQL (RDS)
안녕하세요. Johncomputer 입니다.이번에는 아마 최근들어서 더 많은 분들이 이용하고 계신 Aurora MySQL에 대해서 같이 다뤄보려고 합니다.운영을 하다보면 "자동화", "대규모" 작업을 하게 되는 경우가 있는데이럴때는 항상 웹 화면에서 하나씩 다루기는 힘들거든요...그렇다 보니 Lambda 라던가 EC2 아니면 개인 PC에서 CLI로 명령을 할 수 있는 방법이 있는데요한번 같이 보겠습니다. 디테일한 옵션은 아래에 있고 전 주로 사용하는 스크립트 위주로 올려드릴게요https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html describe-db-clusters — AWS CLI 1.38.20 Command Ref..
2025.03.29
no image
MySQL 테이블 DB 사이즈 구하기 - row 개수 / 행 개수
안녕하세요. Johncom 입니다. information Schema의 테이블에는 테이블 관련 정보들이 정의되어 기록되고 있습니다.모든 값들은 byte 단위로 기록되고 있어 간단한 변환이 필요합니다.아래 내용은 "MB" 기준으로 계산 되어 "GB" 계산을 진행하려면 /1024를 추가해야 합니다. DESC information_schema.TABLES;+-----------------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----------------+---------------------+------+-----+---..
2024.10.23
no image
VMware 무료 설치하기 + 리눅스 설치까지
안녕하세요 JohnComputer 입니다. 굉장히 오랜만에 글을 올리게 됩니다.. 요즘 일이 너무 바뻐서 자주 못 들어오게 되는데요 ㅠㅠ 이번에는 또 학생들에게 도움이 될까.. 싶은 글을 써볼려고 해요 요즘은 정말 AWS만 주구장창 만지는데 개인계정으로 뭔가 작성해서 올릴려니 돈이... #AWS 형 크레딧좀 줘 내가 양질의 글을 써줄게 1. 리눅스 설치 https://www.vmware.com/kr/products/workstation-player.html VMware Workstation Player | VMware VMware Workstation Player allows you to safely run a second, isolated operating system on a single PC. Le..
2023.06.02
no image
iPad를 이용한 터미널 접속 - 리눅스 SSH - Terminus
오늘은 제가 사용하고 있는 괜찮은 앱 하나를 추천드리려고 글을 씁니다. 가끔씩 외부에서 터미널에 접속하고 싶을때 무거운 노트북을 들고 다니며 접속하는 모습을 볼 수 있는데요 요즘은 태블릿PC들이 사양도 좋아지고 블루투스 키보드도 보편화 되어서 좀 가볍게 들고 다니면서 사용하시면 좋을 앱 하나 추천드립니다. Terminal제품 중 여러 제품이 있던데 현재 Terminus이용자가 대다수인 것 같습니다. 첫 화면을 찍지 못했는데.. 애플아이디 로그인 하시면 위와 같이 비밀번호 설정하라는 문구가 나옵니다 항상 그렇듯 영문+숫자+특수기호 로 만들어 줍니다. Set the passphrase 눌러주시고 우측 상단에 있는 Skip을 클릭해서 넘어가 주시면 됩니다. 좀 더 하드하게 사용하실 분은 Pro를 이용하셔도 가..
2022.08.30
no image
SSH를 이용한 Bastion ID/PW 접속 - 공개키, 개인키 이용
이전 포스팅에 이어서 SSH 접속 로그인을 이어 진행하려고 합니다. putty나 Powershell이 아닌 Xshell이라는 프로그램으로 접속을 해보겠습니다. 앞서 만든 Bastion 서버에 아이디와 패스워드를 이용하여 접속합니다. 이후 다른 Private서버에 접속하려면 키가 없어서 Permission Denied 오류가 발생합니다. 그래서 위와 같이 구현을 해서 조금 더 보안성있고 간단하게 접속해보려고 합니다. Bastion이라고 하는 내부 인스턴스 접근을 도울 서버를 만들고 ID/PW를 이용한 사용자 인증으로 접속하게 됩니다. 해당 사용자가 권한이 있는 내부 서버에 접속을 하기 위해서 매번 키를 가져다니기도 힘들고 또 그렇다고 서버에 저장을 시켜두면 보안상으로 좋지 않습니다. 그래서 아래와 같은 방..
2022.08.23
no image
AWS Linux ID / PW 로그인만들기 (root 권한 주기)
AWS Linux를 진행하다 보면 위 사진 처럼 키페어 이름이 있고 이를 통해 접속하게 됩니다. 위 사진처럼 접속 하려면 저렇게 경로들과 함께 키 페어를 작성 해주고 ec2-user@IP를 작성해 주어야 합니다. 또 이런경우 지정 된 컴퓨터가 아니면 pem키가 없기 때문에 접속도 어렵죠 이래서 유저를 생성하여 접속할 수 있도록 설정해줍니다. 1. ID/PW 생성 sudo su useradd 유저명 passwd 유저명 ## 이후 비밀번호 입력 - 위와 같은 명령어를 실행하면 1차적으로 ID와 PW가 생성될 것이다. 2. Root 권한 주기 sudo su nano /etc/sudoers - 위 사진의 명령어를 입력하여 root 권한을 받을 수 있게 만들어 줍시다. 3. 계정 비밀번호 사용 Config 수정 ..
2022.08.22
no image
Xshell 7 SSH 세션 접속 하기 - AWS Linux 예시
AWS가 보편화 되면서 많은 개발자들이 로컬 PC에 설치하여 테스트 하는 것이 아닌 클라우드에서 작업하는 경우가 많아 졌다. 그래서 아주 간단하지만 세션에 접속하는 방법과 프로그램들을 소개하려 한다. 그 중에서도 이번엔 Xshell 7을 소개하려고 한다. 넷사랑컴퓨터에서 개발하여 배포하고 있는 프로그램으로 가정이나 학교에서 사용할 경우 무료 소프트웨어이다. 기본적으로 터미널프로그램으로는 제일 처음 사용하는것이 Putty일텐데 좀 더 많은 기능을 사용하고 현업에서 사용하는 프로그램을 써보는 것도 아주 좋은 경험인 것 같다. 아래 공식사이트에서 다운로드 하여 사용이 가능하다. Xshell 다운로드 - NetSarang Website Xshell 다운로드 - NetSarang Website 다운로드 구매하기 ..
2022.08.19
no image
VS Code – AWS EC2 SSH Terminal 연결 (리눅스 GUI 사용)
1.Remote Development 설치 (SSH를 포함한 팩) 2. F1키를 누른 후 SSH 구성파일 열기 선택 3. 해당 위치 Config 클릭 4. 아래와 같이 Config 작성 ## Host 명 Host AWS ## IP주소 HostName 10.10.10.1 ## Key가 있는 경우 Key명 IdentityFile C:/Users/usename/loginkey.pem ## 접속 계정명 User ec2-user ## Port 번호 포트가 다른 경우만 입력 Port 24 F1 키 -> SSH 연결로 지정한 Host명 클릭 후 접속 (좌측 하단 버튼 클릭 가능)
2022.07.27
반응형

안녕하세요. Johncomputer 입니다.

이번에는 아마 최근들어서 더 많은 분들이 이용하고 계신 Aurora MySQL에 대해서 같이 다뤄보려고 합니다.

운영을 하다보면 "자동화", "대규모" 작업을 하게 되는 경우가 있는데

이럴때는 항상 웹 화면에서 하나씩 다루기는 힘들거든요...

그렇다 보니 Lambda 라던가 EC2 아니면 개인 PC에서 CLI로 명령을 할 수 있는 방법이 있는데요

한번 같이 보겠습니다.

 

디테일한 옵션은 아래에 있고 전 주로 사용하는 스크립트 위주로 올려드릴게요

https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html

 

describe-db-clusters — AWS CLI 1.38.20 Command Reference

Note: You are viewing the documentation for an older major version of the AWS CLI (version 1). AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. F

docs.aws.amazon.com

 

 

1. 기본 사용 명렁어

- 가장 중요한 내용 중 하나인데 DB 개념에서 Cluster, Instance 를 구별해서 볼 수 있어야 합니다.

버전은 Cluster 단위, Type 변경은 Instance 단위로 변경 가능합니다.

#!/bin/bash

# 1. Aurora 클러스터 목록 조회
# 현재 운영 중인 모든 Aurora 클러스터 정보를 확인
aws rds describe-db-clusters

# 2. 특정 클러스터의 상세 정보 조회
# 특정 Aurora 클러스터의 설정 및 상태를 확인
aws rds describe-db-clusters --db-cluster-identifier {my-cluster}

# 3. Aurora 인스턴스 목록 조회
# 현재 운영 중인 모든 데이터베이스 인스턴스를 확인
aws rds describe-db-instances

# 4. 특정 Aurora 인스턴스 상태 조회
# 특정 DB 인스턴스의 상세 정보를 가져옴
aws rds describe-db-instances --db-instance-identifier {my-instance}

# 5. Aurora 클러스터 백업 (스냅샷 생성)
# 클러스터의 백업을 생성하여 데이터 보호
aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier {my-cluster-snapshot} --db-cluster-identifier {my-cluster}

# 6. 스냅샷 목록 조회
# 생성된 모든 클러스터 스냅샷을 확인
aws rds describe-db-cluster-snapshots

# 7. Aurora 클러스터 복원 (스냅샷에서 복구)
# 기존 백업 스냅샷을 사용하여 새로운 Aurora 클러스터 생성
aws rds restore-db-cluster-from-snapshot --db-cluster-identifier {my-new-cluster} --snapshot-identifier {my-cluster-snapshot}

# 8. Aurora 클러스터 크기 조정 (자동 스케일링 설정 변경)
# Aurora Serverless의 최소 및 최대 용량을 조정
aws rds modify-db-cluster --db-cluster-identifier {my-cluster} --scaling-configuration MinCapacity={2},MaxCapacity={8}

# 9. Aurora 인스턴스 타입 변경 (업그레이드 또는 다운그레이드)
# Aurora 인스턴스의 스펙을 변경 (ex. db.r5.large → db.r6g.large)
aws rds modify-db-instance --db-instance-identifier {my-instance} --db-instance-class {db.r6g.large} --apply-immediately

# 10. Aurora 클러스터 삭제
# 최종 스냅샷 없이 Aurora 클러스터 삭제 (데이터 영구 삭제됨)
aws rds delete-db-cluster --db-cluster-identifier {my-cluster} --skip-final-snapshot

# 11. Aurora 인스턴스 재시작
# 특정 Aurora DB 인스턴스를 재부팅하여 문제 해결
aws rds reboot-db-instance --db-instance-identifier {my-instance}

# 12. Aurora 파라미터 변경
# 특정 파라미터 그룹의 값을 변경하고 적용
aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name {my-cluster-param-group} --parameters "ParameterName={max_connections},ParameterValue={500},ApplyMethod=immediate"

# 13. Aurora MySQL 버전 업그레이드
# 기존 Aurora 클러스터의 엔진 버전을 업그레이드 (사전 테스트 필수!)
aws rds modify-db-cluster --db-cluster-identifier {my-cluster} --engine-version {8.0.mysql_aurora.3.04.0} --apply-immediately

 

2. describe 심화 - 특정 인스턴스 목록 뽑기 jq json

- 아래처럼 쿼리를 이용해서 원하는 출력값만 얻을 수 있습니다.

- output style 은 text, json, table등 보기 편하게도 가능해요

aws rds describe-db-clusters --region ap-northeast-3 --query "DBClusters[?contains(DBClusterIdentifier, '필터값')]" --output json
aws rds describe-db-clusters --query "DBClusters[?contains(DBClusterIdentifier, '필터값')].{DBClusterIdentifier:DBClusterIdentifier, Endpoint:Endpoint, ReaderEndpoint:ReaderEndpoint}" --output text
aws rds describe-db-clusters --query "DBClusters[?contains(DBClusterIdentifier, '필터값')].{DBClusterIdentifier:DBClusterIdentifier, Endpoint:Endpoint, ReaderEndpoint:ReaderEndpoint}" --output table

 

3. 기타 사용 명령어 

--region	#실행할 AWS 리전을 지정	--region ap-northeast-2
--output	#출력 형식 지정 (json, table, text, yaml)	--output table
--query	#특정 데이터 필드만 출력	--query "DBClusters[*].DBClusterIdentifier"
--profile	#사용할 AWS 프로필 지정	--profile my-profile
--no-paginate	#페이지 나누기 없이 전체 데이터 출력	--no-paginate

- paginator의 경우 100개가 넘는 리스트를 다룰 때 사용됩니다.

 

반응형
반응형

안녕하세요. Johncom 입니다.

 

information Schema의 테이블에는 테이블 관련 정보들이 정의되어 기록되고 있습니다.

모든 값들은 byte 단위로 기록되고 있어 간단한 변환이 필요합니다.

아래 내용은 "MB" 기준으로 계산 되어 "GB" 계산을 진행하려면 /1024를 추가해야 합니다.

 

DESC information_schema.TABLES;

< information_shema.TABLES 구조 >

+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG   | varchar(512)        | NO   |     |         |       |
| TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
| TABLE_NAME      | varchar(64)         | NO   |     |         |       |
| TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
| ENGINE          | varchar(64)         | YES  |     | NULL    |       |
| VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
| ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
| TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
| AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
| INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
| AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_TIME     | datetime            | YES  |     | NULL    |       |
| UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
| CHECK_TIME      | datetime            | YES  |     | NULL    |       |
| TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
| CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
| TABLE_COMMENT   | varchar(2048)       | NO   |     |         |       |
+-----------------+---------------------+------+-----+---------+-------+

 

TABLE 정보

TABLE_CATALOG 테이블이 속한 카탈로그 (대부분은 고정된 값일 수 있음)
TABLE_SCHEMA 테이블이 속한 스키마 (데이터베이스 이름)
TABLE_NAME 테이블 이름
TABLE_TYPE 테이블의 유형 (예
ENGINE 테이블이 사용하는 스토리지 엔진 (예
VERSION 테이블의 버전 (내부적인 관리 버전 정보)
ROW_FORMAT 테이블의 행 저장 형식 (예
TABLE_ROWS 테이블에 저장된 행의 개수
AVG_ROW_LENGTH 평균 행 길이 (바이트 단위)
DATA_LENGTH 테이블의 실제 데이터 크기 (바이트 단위)
MAX_DATA_LENGTH 테이블이 수용할 수 있는 최대 데이터 크기
INDEX_LENGTH 인덱스에 사용된 공간 크기
DATA_FREE 테이블에서 사용하지 않는 (비어 있는) 공간 크기
AUTO_INCREMENT 자동 증가(AUTO_INCREMENT) 값
CREATE_TIME 테이블이 생성된 시간
UPDATE_TIME 테이블이 마지막으로 업데이트된 시간
CHECK_TIME 테이블이 마지막으로 검사된 시간
TABLE_COLLATION 테이블에서 사용하는 정렬 규칙 (콜레이션)
CHECKSUM 테이블의 체크섬 값 (데이터의 무결성 검사용)
CREATE_OPTIONS 테이블 생성 시 사용된 추가 옵션
TABLE_COMMENT 테이블에 대한 설명 또는 주석
TABLE_SCHEMAL DB명
TABLE_NAME TABLE명

 

Query

1. 간단한 DB 사이즈 TOTAL SIZE 조회 ( 데이터 + 인덱스 )

SELECT table_schema "DATABASE",
ROUND(SUM(data_length+index_length)/1024/1024,1) "DATA(MB)"
FROM information_schema.TABLES
GROUP BY table_schema;

 

 

2. DB 사이즈 중 DATA와 INDEX 나눠서 보기

SELECT
table_schema "DATABASE",
ROUND(SUM(data_length)/(1024/1024),2) as 'DATA(MB)',
ROUND(SUM(index_length)/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
GROUP BY table_schema
ORDER BY 2 DESC;

 

3.특정 DB내 테이블 정보 가져오기

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
WHERE table_schema = 'test'
ORDER BY 3 DESC;

 

4.DB-TABLE 별 COUNT와 DATABASE SIZE 확인하기

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES;

 

자주 내가 날리는 쿼리

SELECT
table_schema "DATABASE",
table_name "TABLE",
table_rows "TABLE_COUNT",
ROUND(data_length/(1024/1024),2) as 'DATA(MB)',
ROUND(index_length/(1024/1024),2) as 'INDEX(MB)'
FROM information_schema.TABLES
WHERE table_schema NOT IN ('sys','mysql','information_schema','performance_schema')
ORDER BY data_length DESC;
반응형
반응형

안녕하세요 JohnComputer 입니다.

굉장히 오랜만에 글을 올리게 됩니다..

요즘 일이 너무 바뻐서 자주 못 들어오게 되는데요 ㅠㅠ

이번에는 또 학생들에게 도움이 될까.. 싶은 글을 써볼려고 해요

요즘은 정말 AWS만 주구장창 만지는데 개인계정으로 뭔가 작성해서 올릴려니

돈이... #AWS 형 크레딧좀 줘 내가 양질의 글을 써줄게 

 

1. 리눅스 설치


https://www.vmware.com/kr/products/workstation-player.html

 

VMware Workstation Player | VMware

VMware Workstation Player allows you to safely run a second, isolated operating system on a single PC. Learn more.

www.vmware.com

그래서 무료로 리눅스를 다룰 수 있게 Vmware로 친절하게 설명 도와드리겠습니다.

 

여기로 접속하셔서

무료 다운로드 눌러주세용

자 여기서 실수 하실 수 있는데

저희는 리눅스를 설치할거지

리눅스 OS가 아니고

윈도우 OS이니깐 윈도우 OS버전으로 설치해주세요

아... 잠시만 오래걸리는데?

Vmware 15 버전이 있네요

ㅋㅋㅋㅋ

설치가 취소되었습니다.

 

자 다시 설치 진행합니다.

여기 노란색에 해제되어 있으실텐데

향상된 키보드 드라이버라고 나오는데

원래는 설치하고 나서

팝업창이 뜨는 내용인데

설치해주시는게 편합니다.

작업관리창이랑 왔다갔다 할때

편합니다.

1. 업데이트 매번 확인할거니 X

2. 고객경험을 줄거니 X

 

키보드를 설치했으니 YES

재부팅 해주시면 됩니다.

 

자이제 리눅스를 다운 받으러 갈게요.

 

2. 리눅스 다운로드


https://www.centos.org/download/

 

Download

Home Download Architectures Packages Others x86_64 RPMs Cloud | Containers | Vagrant ARM64 (aarch64) RPMs Cloud | Containers | Vagrant IBM Power BE (ppc64) RPMs Cloud | Containers | Vagrant IBM Power (ppc64le) RPMs Cloud | Containers | Vagrant ARM32 (armhf

www.centos.org

OS는 자신의 선택이지만

AWS를 주로 다룰 현대인이라면

우분투도 좋지만 CentOS 공부하는것이 좋습니다.

 

 

아키텍쳐는 아는 분들은 선택하시면 되지만

모른다면 x86_64로 가시면 되요

intel 칩 중.... AMD는....주절주절

모바일 저전력을 ....

이야기가 길어질 것 같아요

 

맘에 드는 미러사이트로 이동~

종류도 참 많군요

일단.. 저희는 그냥 일반적인 것을 설치하시죠

 

3. Vmware에 리눅스 설치하기


Create a New virtual machine 누르셔서 설치 진행해주시고

아까 다운로드 받은 리눅스 경로의 iso 이미지

Name은 보여지는 것이니 원하시는대로 하고

user는 root/admin 원하시는대로

비밀번호 . 비밀번호 확인까지 작성해주세요

Vmware에 뜰 가상머신 명입니다.

프로젝트명 해주시면 편해요

맥시멈 disk 설정인데

20GB설정이 추천되는데

전 정말 가볍게 쓸거라

8GB할당해줍니다.

 

 

4. 옵션 설정


이후 자세한 옵션 설정을 설정하고 싶으시면

아래 링크에 있는 다른 게시물 보시고 따라하시면 됩니당~

https://johncom.tistory.com/47

반응형
반응형

오늘은 제가 사용하고 있는 괜찮은 앱 하나를 추천드리려고

글을 씁니다.

가끔씩 외부에서 터미널에 접속하고 싶을때

무거운 노트북을 들고 다니며 접속하는 모습을 볼 수 있는데요

요즘은 태블릿PC들이 사양도 좋아지고

블루투스 키보드도 보편화 되어서 좀 가볍게 들고 다니면서 사용하시면

좋을 앱 하나 추천드립니다.

Terminal제품 중 여러 제품이 있던데 현재 Terminus이용자가 대다수인 것 같습니다.

 

첫 화면을 찍지 못했는데..

애플아이디 로그인 하시면

위와 같이 비밀번호 설정하라는 문구가 나옵니다

항상 그렇듯 영문+숫자+특수기호 로 만들어 줍니다.

Set the passphrase 눌러주시고

우측 상단에 있는 Skip을 클릭해서 넘어가 주시면 됩니다.

좀 더 하드하게 사용하실 분은 Pro를 이용하셔도 가격은 괜찮은 것 같네요

 

우측 상단에 NEW HOST로 만들어 주셔도 되고

첫 화면 들어오면 보이는 New Host를 누르셔도 됩니다.

Alias : 보기 편한 별칭

Group : 그룹으로 묶어둬도 됩니다. ( 전 일반 사용자니 PASS)

Tags : 그룹과 비슷하게 구별하기 위한 용도 ( PASS )

Backspace as CTRL+H : Backcpace를 단축키 사용할 것인지 ( 전 필요없으니 PASS )

 

SSH : SSH통신이니 당연히~

port : PORT 번호 (22)

username : AWS라서 (EC2-USER)

password / Key : 사용하시는 것으로 이용해주세요.

 

전 Bastion이라는 이름의 Host가 생겼습니다.

중앙 상단에 아래와 같은 이미지를 눌러 주시면 연결이 됩니다.

이제 가볍게 아이패드로 연결하세요~

반응형
반응형

이전 포스팅에 이어서 SSH 접속 로그인을 이어 진행하려고 합니다.

putty나 Powershell이 아닌 Xshell이라는 프로그램으로 접속을 해보겠습니다.

앞서 만든 Bastion 서버에 아이디와 패스워드를 이용하여 접속합니다.

 

이후 다른 Private서버에 접속하려면 키가 없어서 Permission Denied 오류가 발생합니다.

 

그래서 위와 같이 구현을 해서 조금 더 보안성있고 간단하게 접속해보려고 합니다.

Bastion이라고 하는 내부 인스턴스 접근을 도울 서버를 만들고 ID/PW를 이용한 사용자 인증으로 접속하게 됩니다.

해당 사용자가 권한이 있는 내부 서버에 접속을 하기 위해서 매번 키를 가져다니기도 힘들고

또 그렇다고 서버에 저장을 시켜두면 보안상으로 좋지 않습니다.

 

그래서 아래와 같은 방법으로 구현을 해봅니다.

 

Bastion 사용자가 PrivateKey를 가지고 Privater Server에 PublicKey를 두어 키가 있는 사용자만

접속이 가능하게 끔 만들면 됩니다.

 

 

1. 공개키 생성

1
2
cd /home/유저명
ssh-keygen -t rsa
cs

 

- 다음과 같이 자신의 home/유저명 에서 명령어를 입력해서 만들어 줍니다.

 

 

2. 키 확인

 

1
2
cd .ssh
ls
cs

- 위 명령어를 이용한  KEY 확인을 합니다.

 

 

3. EC2-2 (Private Server) 유저 생성

 

1
2
3
sudo -s
useradd 유저명
passwd 유저명
cs

- 프라이빗 서버에 접속을 위한 유저를 만들어 줍니다.

 

4. root 권한 주기, 비밀번호 사용 ON, 재시작

1
nano /etc/sudoers
nano /etc/ssh/sshd_config
systemctl restart sshd
cs

- johncom 유저에게 수도 권한을 주고 비밀번호를 활성화 시킨 다음 재시작 한 번 해줍니다.

 

 

5. 공개키 설정

 

1
2
cd .ssh
scp id_rsa.pub 유저아이디@내IP:/home/유저아이디/authorized_keys
cs

-  EC2-1 (Bastion) 에서 EC2-2 (private server)로 공개키를 보낸다.

 

1
2
3
4
5
6
7
8
9
mkdir .ssh # 키를 담기 위한 .ssh 폴더 생성
ls -al # 권한 확인
 
## 권한 변경
chmod 700 .ssh
chmod 600 authorized_keys
 
# 키 이동
mv authorized_keys .ssh/authorized_keys

nano /etc/ssh/sshd_config
systemctl restart sshd
cs


- EC2-2 에서 위에 명령어와 같이 .ssh폴더를 생성하고 권한을 부여해주고 난 후 passwd들 다시 NO로 바꿔준다.

 

이후 인터널 접근을 해보면 비밀번호 없이 공개키과 개인키를 이용하여 접속이 된다.

반응형
반응형

AWS Linux를 진행하다 보면

 

위 사진 처럼 키페어 이름이 있고 이를 통해 접속하게 됩니다.

 

위 사진처럼 접속 하려면 저렇게 경로들과 함께 키 페어를 작성 해주고 ec2-user@IP를 작성해 주어야 합니다.

또 이런경우 지정 된 컴퓨터가 아니면 pem키가 없기 때문에 접속도 어렵죠

이래서 유저를 생성하여 접속할 수 있도록 설정해줍니다.

 

 

1. ID/PW 생성

sudo su
useradd 유저명
passwd 유저명
## 이후 비밀번호 입력

- 위와 같은 명령어를 실행하면 1차적으로 ID와 PW가 생성될 것이다.

 

 

2. Root 권한 주기

sudo su
nano /etc/sudoers

- 위 사진의 명령어를 입력하여 root 권한을 받을 수 있게 만들어 줍시다.

 

 

3. 계정 비밀번호 사용 Config 수정

nano /etc/ssh/sshd_config
systemctl restart sshd

- 비밀번호를 이용한 접속을 위한 Config 수정 및 sshd 재시작

 

 

4. 비밀번호를 이용한 접속

ssh -i "키명" ec2-user@내IP
--------- 변경 후 ------------
ssh 아이디@내아이피

- 기존에 접속하던 방식이 아닌 아이디와 비밀번호를 입력해서 로그인

 

 

 

.... 이 다음 포스팅에 여기에 추가로 공개키와 비밀키를 발급 받아 bastion으로 사용하여

내부망에 ID/PW 유저로 접근하는 글을 써보겠습니다.~!

반응형
반응형

AWS가 보편화 되면서 많은 개발자들이 로컬 PC에 설치하여 테스트 하는 것이 아닌

클라우드에서 작업하는 경우가 많아 졌다.

그래서 아주 간단하지만 세션에 접속하는 방법과 프로그램들을 소개하려 한다.

그 중에서도 이번엔 Xshell 7을 소개하려고 한다.

 

넷사랑컴퓨터에서 개발하여 배포하고 있는 프로그램으로

가정이나 학교에서 사용할 경우 무료 소프트웨어이다.

기본적으로 터미널프로그램으로는 제일 처음 사용하는것이 Putty일텐데

좀 더 많은 기능을 사용하고 현업에서 사용하는 프로그램을 써보는 것도 아주 좋은 경험인 것 같다.

 

아래 공식사이트에서 다운로드 하여 사용이 가능하다.

Xshell 다운로드 - NetSarang Website

 

Xshell 다운로드 - NetSarang Website

다운로드 구매하기 개요 라이선스 종류를 선택하세요 기재하신 정보 중 이름, 회사(기관), 이메일 정보는 제품 출시나, 업데이트 정보 등을 신속하게 제공하기 위해 사용합니다. 이 정보는 서비

www.netsarang.com

 

1. 처음으로 프로그램을 시작하면 위와 같은 화면이 생성된다.

 

 

2. 1번은 화면에서 좌측상단 새로만들기 클릭하면 아래와 같은 화면이 나오고 접속하려는 곳의

IP를 입력하면 된다. Putty와 달리 먼저 IP만 입력해보자.(ec2-user은 뺀다)

ex)  192.192.192.1       

 

3. 완료 버튼을 클릭하면 위와 같은 세션이 만들어져 있고 더블 클릭을 눌러 실행한다.

 

4. 위 화면으로 넘어가게 되고 이곳에 ec2-user와 같은 유저명을 적어주고 사용자 이름 기억 체크박스를 선택해 준다.

 

5. 1회용 로그인의 경우 파일을 눌러 한 번 공개키를 연결해주어도 된다.

하지만 여러번 사용하게 되면 등록을 해주는 것이 편리하기 때문에 "사용자 키"를 눌러준다.

 

 

6. 가져오기를 눌러서 경로에 있는 공개키를 가져온다.

이후 위와 같이 등록이 되면 더블 클릭을 하여 키 지정을 해주고

5번 이미지아래에 있는 암호 저장을 클릭한 후 확인을 눌러준다.

반응형
반응형

1.Remote Development 설치 (SSH를 포함한 팩)

2. F1키를 누른 후 SSH 구성파일 열기 선택

3. 해당 위치 Config 클릭

4. 아래와 같이 Config 작성

## Host 명
Host AWS
    ## IP주소
    HostName 10.10.10.1
    ## Key가 있는 경우 Key명
    IdentityFile C:/Users/usename/loginkey.pem
    ## 접속 계정명
    User ec2-user
    ## Port 번호 포트가 다른 경우만 입력
    Port 24

 

    F1  -> SSH 연결로 지정한 Host명 클릭 후 접속

(좌측 하단 버튼 클릭 가능)

 

 

반응형