Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beanstalk Practice #10

Open
pbg0205 opened this issue Dec 18, 2022 · 4 comments
Open

Beanstalk Practice #10

pbg0205 opened this issue Dec 18, 2022 · 4 comments
Assignees

Comments

@pbg0205 pbg0205 self-assigned this Dec 19, 2022
@pbg0205 pbg0205 changed the title Beanstalk 설정하기 Beanstalk Practice Dec 19, 2022
@pbg0205
Copy link
Owner Author

pbg0205 commented Dec 28, 2022

사전 작업

  1. VPC 설정
  2. public & private subnet 설정
  3. public subnet 에 internet gateway 설정
  4. public & private security group 설정
    • public subnet 에 트래픽을 입력받을 port 설정 (e.g. 22, 80, 8080)
    • private subnet 에 트래픽을 입력받을 subnet group 또는port 설정

elastic beanstalk 설정

  1. beanstalk 환경 티어 : 웹 서버 환경
  2. 어플리케이션 이름, 환경 정보, 도메인 설정
  3. 플랫폼: application java version 선택
  4. 어플리케이션 코드 : 샘플 어플리케이션
  5. 추가 옵션 구성 선택하기
  6. 네트워크 : 이전에 설정한 VPC 설정 + 퍼블릭 IP 주소 할당 + 인스턴스, DB 서브넷 설정
  • 인스턴스 서브넷 : public subnet 설정
  • 데이터 베이스 서브넷 : private subnet 설정(가용 영역 2개 : ap-northeast-2a, ap-northeast-2c)
  1. 용량 : EC 인스턴스 유형 : t2.micro 설정
  2. 보안 : 가상 머신 키 페어 설정
  3. 데이터 베이스 설정
  • DB 엔진 + 버전 + 인스턴스 클래스 설정
  • 사용자 이름, 암호 설정
  1. 인스턴스 설정 : EC2 인스턴스 보안 그룹 설정
  2. 환경 생성

  • beanstalk 환경 설정을 기반으로 EC2, RDS, load balancer 가 실행되고 EC2, RDS 에 별도의 보안 그룹 설정이 할당된다.
  • private subnet group(RDS) 의 보안 그룹 설정으로 public subnet group(EC2) 의 모든 포트에 대한 트래픽을 받을 수 있도록 설정되어 있다? (재확인 필요)
  • RDS 연결 확인하는 법 : EC2에 mysql client 설치 후 접근 가능 여부 확인
    • mysql 설치 과정
      1. yum update && yum upgrade
      2. yum -y install mysql
      3. DB 연결
        # mysql -h"ip" -u"id" -p"pw" "sid"
        mysql -h127.0.0.1 -uadmin -pabcd test
  • RDS 환경 변수 설정 : https://velog.io/@wisdom08/aws-%EB%B0%B0%ED%8F%AC-4%EB%8B%A8%EA%B3%84-elastic-beanstalk-RDS
  • Spring 에서 elastic beanstalk properties 설정 : https://choibulldog.tistory.com/44

@pbg0205
Copy link
Owner Author

pbg0205 commented Dec 28, 2022

IPv4

  • 4개의 8bit 를 통해 사용자의 주소를 할당하는 방식
  • 대략 5억개의 예약어가 있고 37억개 정도를 할당할 수 있다.

private IPv4

  • 사설망에서 사용하기 위한 ip 주소
  • 사설망을 통해 내부적로만 통신이 가능하도록 하고 Gateway(NAT) 를 통해 외부와의 통신이 가능하도록 한다.
  • 사설 ip 에서 외부와의 통신은 routing table 에 저장된 내용을 토대로 해당 ip 의 요청을 가리키는 역할을 한다.

CIDR

  • 하나의 서브넷의 network address 범위와 host address 의 범위를 나타낼 수 있는 방법
  • 서브넷 마스크 : 몇 bit까지 network address 로 할당할지를 나타내는 지표
    • e.g. 192. 168.0.0.16/24 = 11000000.00000000.00000000.00010000
    • 11000000 / 00000000 / 00000000 / 00010000
      • 앞에 24bit 까지 network address 를 뜻한다.
      • host address 가 가능한 영역은 00010000(16) ~ 11111111(255) = 255 - 16 - 1 = 238
      • AWS 에서 선언한 5개의 address 예약
        1. 0 : Network address
        2. 1 : VPC address
        3. 2 : DNS address
        4. 3 : Future use (미래에 사용할 것을 대비하고 예약)
        5. 마지막 번호 : broadcast

VPC

  • 가상으로 존재하는 데이터 센터를 의미한다.
  • Region 단위로 구분된다.

@pbg0205
Copy link
Owner Author

pbg0205 commented Dec 28, 2022

ElasticCache 에서 Ealstic Beanstalk 사용

  1. ElasticCahe 클러스터 생성
  2. ElasticCahce 보안그룹 구성 : eb security group 설정
  3. 구성 파일을 사용해 Elastic Beanstalk 환경을 사용자 지정할 수 있다.
  4. EB 에 할당된 EC2 에서 redis-cli 설치해서 확인

@pbg0205
Copy link
Owner Author

pbg0205 commented Dec 31, 2022

Spring properties 우선 순위


build 시에 마주쳤던 properties 고민

  • 빌드한 jar 파일을 실행할 때 spring 에서 properties 우선 순위가 달라 project file 내부 application.properties 파일을 인식했다.
  • 해당 파일을 외부에서 관리하기 위한 방법으로 빌드용 spring.profiles.active option 을 통해 각각 환경마다 다른 property 가 활성화 되도록하고 각 환경의 properties 파일은 외부에서 관리하는 방식이 적합해보인다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant