Infrastructure as Code 밋업

문학적인유사성·2022년 2월 17일
0

AWS

목록 보기
1/64

Code를 통해서 인프라 리소스를 선언하여 프로비저닝하고 관리하는 것

Infrastructure 서비스를 구성하는 리소스들의 집합

"코드를 통해서"

Server Configuration : Puppet, Ansible ...
-> 설정을 코드로 배포할때 사용
Resource management : Terraform, AWS CloudFormation
-> 서버에대한 오케스트레이션 제공, 서버 배포, 서버 세팅 코드로 관리 적용 한다.

Terraform : Write, Plan, Apply

  • 수백개의 클라우드 서비스 관리, 일관된 CLI워크플로를 제공하는 코드 소프트웨어 도구
  • .tfstate (변경된 사항 올려줘야한다는 것 중요 !!)
    1) main.tf - resource 정의
    2) variable.tf - 입력변수 설정
    3) output.tf - 출력 변수 설정 (생성된 리소스 데이터 재사용, 콘솔에서 보지않고 테라폼에서 보기위함)
    -> 한 디렉토리에 넣어두고 모듈화해서 재사용함.

모바일 게임 회사에서 GCP환경 Terraform 도입후 경험 한것

<실시간> <사이클이 매우빠름>
1) 컨텐츠 소모가 굉장히 빠르고 공격적임
2) 신규 프로젝트 생성 높음
3) 회수요청 높음
4) 서비스 중 인프라 수정 필요
5) 글로벌 런칭 - 멀티 리전 구성

--> 클릭으로 150대를 만드는건 불가능할꺼같음 ( Terraform 도입 필요 )
테라폼 서버로 하나 만들어서 사용한다고 함!

1) VDI를 통해서 Terraform 서버 접근
2) 코드 수정, Plan 확인
3) Apply를 통한 리소스 배포
4) 생성된 리소스 정보 (Private IP, Public IP, AZ, Region, Tag) --> 모니터링 서버의 mysql로 리소스 정보 저장

1] 코드기반의 인프라 관리로 신속한 리소스 생성/수정/삭제
2] 리소스 추적이 편리
3] 서비스중 인프라 수정이 빠름
4] 글로벌 런칭 멀티 리전 구성, 코드 재사용을 통한 빠른 배포

GCP -> AWS

1) 개념이 다름
2) EC2, SG, VPC, LB, IAM
3) 리소스가 Terraform이 지원하는 resource data들을 정확히 파악 필요
4) SG ID 관리
5) Elastic IP 관리, 고정 IP 식별
6) 서버 삭제 보호 기능
7) VPC 모듈 (서브넷을 나눠서 Private, Public에 둘 것들)

Terraform 지원 확인 (Docs 확인)
elastic ip, 서버이름 똑같이하면 좋더라~
root 살리는거

Hands On 실습

1) Terraform 환경 셋팅
2) AWS Accesskey 발급 Keypair 생성
3) AWS configur 설정 (Access 키, 서버에서 쓸 키 만들어두기)
4) https://github.com/D0min1c/Terraform_beginner_on_AWS
5) Terraform init -> plan -> apply
6) Terraform destory

profile
유사 IT 항해

0개의 댓글