Skip to content

devsunb/ec2-gazua

 
 

Repository files navigation

EC2 Gazua

ec2-gazua 는 AWS EC2에 쉽게 접속하기 위하여 만들어진 SSH툴 입니다.
AWS EB, Auto scaling등의 환경에서 잦은 IP주소 변경으로 인하여 서버 접근이 괴로운 인간을 돕기위해 만들어졌습니다.

screenshot

설치 요구사항 (requirements)

  • tmux
  • python >= 3.7

설치 (installation)

pip

$ pip install ec2-gazua

Manually

$ git clone https://github.com/leejaycoke/ec2-gazua.git
$ cd ./ec2-gazua
$ pip install --user -r requirements.txt 
$ python ec2_gz.py

필수 설정 (configuration)

ec2-gz.sample파일을 ~/.ec2-gz로 복사하시고 편집하세요.

설정 (configuration)

name은 화면의 제일 왼쪽 그룹에 사용됩니다. AWS 계정이 여러개인 경우 yml문법에 맞게 ---을 추가하여 사용할 수 있습니다.

name: my-aws

ssh-path는 실제 로컬 PC에 ssh key가 저장되어있는 경로입니다. (끝에 /를 붙이지 마세요!)

ss-path: ~/.ssh

credential은 AWS 인증 정보입니다. 가능하다면 EC2 ReadOnly 키를 사용하세요.

credential:
  aws_access_key_id: XXX
  aws_secret_access_key: XXX
  region: ap-northeast-2

group-tag는 화면의 중간 부분 그룹, name-tag는 제일 오른쪽 인스턴스 이름으로 사용됩니다.
group-tag는 여러개의 인스턴스를 그룹으로 묶어주는 역할을 합니다.
보통 EC2이름을 표현하는데 Name Key가 사용되기 때문에 name-tag를 수정 할 일은 없을겁니다.
group-tagTeam, Group과 같이 의미있는 태그를 만들 필요가 있습니다.

group-tag: Group
name-tag: Name

filter를 true로 지정하면 접속 불가능한 instance는 보여주지 않습니다.

  • 인스턴스가 가동중이지 않은 경우
  • 접속할 수 있는 ssh key가 없습니다.
  • 인스턴스에 IP주소를 할당하지 않은경우
  • 인스턴스에 private-ip만 할당했지만 connect-ip를 public으로 지정한 경우
filter:
  connectable: false

connect-ip는 ssh에 접속할 IP주소 유형을 선택합니다. (public|private)
특정 group혹은 name의 인스턴스의 값을 override할 수 있습니다.
예를들어 default가 public이지만 특정 group은 private을 사용하고 싶다면
그룹명: private형태로 default값을 override할 수 있습니다.
마찬가지로 특정 name의 인스턴스는 private을 사용하고 싶다면 인스턴스명: private형태로 override할 수 있습니다.
group, name은 위에서 지정 한 group-tag, name-tag에서 설명한 개념과 같습니다.

connect-ip:
  default: public
  group:
    live-company-group: private
  name:
    private-my-server: public

key-file은 ssh에 접속할때 사용할 키 파일명입니다.
default값을 auto로 하신다면 EC2생성시 등록한 키 파일을 ${ssh-path}/${파일명}.pem 경로에서 찾습니다.
만약 ${파일명}.pem이 존재하지 않는다면 ${ssh-path}/${파일명} (확장자 없음)을 찾게됩니다.
그래도 키 파일이 존재하지 않는다면 해당 인스턴스는 접속할 수 없습니다.
만약 default값이 auto가 아닌 id_rsa로 입력한다면 ${ssh-path}/id_rsa 파일을 직접 사용하게 됩니다.
역시 group과 name을 이용한 override를 지원합니다.

key-file:
  default: auto
  group:
    was-1: ~/.ssh/test1
  name:
    slave1: ~/.ssh/test2

user는 ssh에 접속할 사용자 계정을 입력합니다.
Amazon Linux를 사용한다면 보통 ec2-user가 기본 값이 될 수 있지만
Linux 배포판, 여러 개발환경에 따라서 변경될 수 있으니 원하시는 계정을 사용해주세요.
마찬가지로 group, name값을 기반으로 사용자 계정을 override할 수 있습니다.

user:
  default: ec2-user
  group:
    my-team: centos
  name:
    web1-instance: leejuhyun

기타 설정

여러개의 AWS계정을 사용하는 경우 .ec2-gz파일 하나에서 아래와 같이 관리할 수 있습니다.

name: my-aws1
생략
생략

---
name: my-aws2
생략
생략

---
name: my-aws3
생략

License

MIT License

Copyright (c) 2018 JuHyun Lee

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

ec2 가즈아아아아아아

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.1%
  • Makefile 0.9%