본문 바로가기

공부284

[Terraform] 메타변수 count로 반복문, 조건문 사용하기 테라폼은 count라는 메타 변수를 사용해서 반복문과 조건문을 구현할 수 있다 리소스나 모듈에 count를 지정해주면 그 수만큼 반복을 하며, index라는 object를 사용할 수 있다 근데 내가 생각하는 것들을 구현하기엔 한계가 있었다 (내 능력 부족일수도...) 일단 해보자! 1. 반복문 처음에 내가 생각했던건 모듈을 불러올 때 숫자를 입력받아서 count로 지정해주고, 그 숫자만큼 모듈 내의 리소스가 반복 생성되면서 원하는 변수들을 반복 입력받는 형태였다 이렇게 하고 싶었던 이유는 모듈이 반복될 때 마다 새로운 변수를 입력받길 원했기 때문이다 모듈에만 입력 변수를 정의해두면 모듈 내의 리소스 구문이 실행될 때 마다 변수를 입력받을거라고 생각했다 그러나... 모듈에서 사용할 변수는 실행 문서에서 정.. 2021. 3. 26.
[Terraform on AWS] VPC, Subnet Module 만들어서 사용하기 GitHub에서 코드 바로 실행해보기 지난 글에서 테라폼을 사용해 VPC 및 EC2 등의 리소스들을 생성해 보았다 그러나, 저렇게 만들어 놓은 코드들은 재사용하기가 어렵다 테라폼 모듈을 이용해서 재사용하기 쉽게 만들어보자 목차 1. 테라폼 모듈 간단 설명 2. 테라폼 모듈 간단 체험 (VPC) 3. VPC, Subnet 모듈화 1. 테라폼 모듈 간단 설명 모듈은 폴더 단위 이다 해당 폴더 내의 모든 구성 파일들이 하나의 모듈이 되는 것 그래서 난 VPC, Public Subnet, Private Subnet, EC2 등등 각각 폴더를 만들어 모듈화를 할 것이다 모듈로 쓸 파일이 수정되었다면 terraform get 명령을 통해 변경사하을 동기화해야 한다 모듈 구문의 기본 문법은 아래와 같다 module .. 2021. 3. 24.
[Terraform on AWS] 간단한 VPC 구성 & 웹서버용 EC2 생성하기 테라폼으로 간단한 네트워크 구성을 해보겠다 생성할 것 VPC : 10.0.0.0/16 Subnet Public : 10.0.1.0/24, igw와 연결 Private : 10.0.10.0/24, NAT gw와 연결 EC2 Public(WebServer용) : httpd 실행, 22/80 포트 오픈 Private(DB용) : WebServer에서의 22 포트 오픈 (DB 설치는 pass...) 1. init.tf provider "aws" { region = "ap-northeast-2" } data "aws_availability_zones" "available" { state = "available" } 기본 프로바이더와 가용 영역을 설정해주었다 프로바이더 구문에서 AWS ACCESS KEY와 SECR.. 2021. 3. 23.
[Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 참조 책 Terraform Up & Running 코드 : github.com/stitchlabio/terraform-up-and-running-code terraform101.inflearn.devopsart.dev/advanced/backend/ 이전 글 : 테라폼 backend의 이해 Requirements S3, DynamoDB 권한이 있는 IAM User 목차 1. S3 버킷, DynamoDB 테이블 생성 2. Backend 설정 1. S3 버킷, DynamoDB 테이블 생성 테라폼의 상태를 저장하기 위한 S3 Bucket과 Lock을 걸기 위한 DynamoDB 테이블을 생성해 보겠다 resources.tf provider "aws" { region = "us-east-1" } resource .. 2021. 3. 21.
[Terraform] 테라폼 backend의 이해 + 21.10.10 더 이해 많이 하고 쓴 글 : https://honglab.tistory.com/199 [Terraform] 실행 환경 분리와 Backend 설정 (AWS/Terraform Cloud) Terraform Backend에 대해 썼던 기존 글 [Terraform] 테라폼 backend의 이해 [Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 위 글들은 잘 모르는 상태에서 책 내용을 정리만 해 놓은 것이었다 테라폼.. honglab.tistory.com 참조 책 Terraform Up & Running terraform101.inflearn.devopsart.dev/preparation/terraform-basic/ 목차 1. 테라폼 상태 & backend 2... 2021. 3. 19.
[Terraform on AWS] 테라폼 채움 참조, 변수(variable), output 사용 참조 : 책 Terraform Up & Running 코드 깃헙 주소 : github.com/stitchlabio/terraform-up-and-running-code 테라폼 기본 설정은 지난 글을 참조하자 Requirements AmazonEC2FullAccess 권한이 있는 IAM User 기본 VPC (버지니아 북부 : us-east-1) 생성할 리소스 특정 포트를 열어놓는 보안 그룹 EC2 해당 포트로 접속하면 Hello, World를 보여주는 User Data 위에서 설명한 보안 그룹 연결 목차 1. 채움 참조(interpolation)를 사용해 리소스 생성 2. 변수를 사용해 리소스 생성 3. 더 다양한 variable 1. 채움 참조를 사용해 리소스 생성 provider "aws" { reg.. 2021. 3. 19.
[Terraform on AWS] 테라폼 입문 (in Window) 목차 1. Terraform이란? 2. 실습 환경 설명, terraform 설치 3. IAM User & ACCESS KEY 설정 4. 간단하게 EC2 배포해보기 (+멱등성 체험) 5. Terraform으로 프로비저닝한 리소스들 삭제 1. Terraform이란? 먼저 IaC(Infrastructure as Code, 코드형 인프라)란? 코드형태로 인프라를 작성, 정의, 배포, 업데이트 함 IaC 도구는 크게 애드 혹 스크립트, 구성 관리 도구, 서버 템플릿 도구, 서버 프로비전 도구 4가지로 나뉜다 구성 관리 도구 : Ansible, Chef, Puppet - 서버를 관리하는 쪽에 좀 더 초점 서버 프로비전 도구 : Terraform, AWS Cloudformation - 서버와 인프라 자체를 구성하는데.. 2021. 3. 15.
[AWS] Session Manager 설치해보기 2 (Windows Server 2019) 지난 글에 이어서 Windows를 Session Manager로 접속해보도록 하겠다 PowerShell을 통해 cli로 설치하는 방법도 있지만, 그냥 파일 하나 집어 넣는 것만으로도 간편하게 끝낼 수 있기에 cli로는 하지 않겠다 목차 1. IAM role 2. SSM Agent 1. IAM role 저번 글에서처럼 AmazonEC2RoleforSSM이 포함된 정책이 연결된 IAM role을 EC2에 붙여주자 2. SSM Agent 여기를 클릭해서 SSM Agent Setup 파일을 받은 후 해당 윈도우 서버에 복사해주자 복사된 파일을 더블클릭해 agree를 해주고 Install을 눌러준다 벌써 끝났다. 콘솔에서 인스턴스를 누른 후 Session Manager 탭을 보면 버튼이 활성화된걸 확인할 수 있다.. 2021. 3. 15.
[AWS] Session Manager 설치해보기 1 (CentOS 8) 이전에 Linux에서 SSH 포트를 변경하는 글을 썼었다 마지막에 주의사항으로 SSH 포트가 막힐 수 있는 위험에 대해 썼는데, 그에 대한 해결책이 Session Manager이다 Session Manager? AWS Systems Manager(SSM)의 기능으로, 포트가 아닌 IAM 권한을 가지고 통신을 할 수 있다 내부적으로 쓰이는 다른 포트가 있는건지 뭔지는 잘 모르겠다만, 실수로 SSH나 RDP가 막혔을 때 관리자가 콘솔을 통해 해당 서버로 접속해 트러블슈팅을 해줄 수 있다 Session Manager로 접속하기 위해선 SSM에서 EC2에 접근할 수 있는 IAM role, awscli, SSM Agent가 필요하다 (수정 : awscli 없어도 session manager로 접속 가능 - 밑의 .. 2021. 3. 15.
[Linux] SSH 포트 변경하기 실습환경 : CentOS 8 (AWS EC2) 보안그룹으로 포트를 열어주기 때문에 firewall은 꺼둔채로 진행한다 vi /etc/ssh/sshd_config 원하는 포트 번호를 적어준다 vi /etc/selinux/config SELINUX도 enforcing에서 disabled로 바꿔준다 그리고 sshd를 restart를 해주자 systemctl restart sshd 안될땐 그냥 reboot로 재부팅 해주면 된다 이제 바꾼 포트로 접속해보자 먼저 보안그룹에서 5000 인바운드 규칙도 추가해준다 AWS가 아닌 경우엔 firewall로 열어주자 Port를 5000으로 설정한 후 접속해보면 잘 접속 된다 다시 22로 접속해보면 Network Error가 뜨는걸 볼 수 있다 주의사항 AWS에서 진행하느라.. 2021. 3. 14.
[AWS-SAP] C01 합격 후기 Solutions Architect - Professional을 합격했다 덤프는 21.95 버전 위주로 봤고, 하나하나 직접 풀면서 푸느라 한달정도 걸렸다 (일이랑도 병행하느라..) 그냥 덤프 외우기만 하면 늦어도 2주면 가능할 것 같다 다만 덤프 정답이 틀린게 많으니 조심하시길 총 75문제였고, 아예 처음보는 문제는 4개밖에 없었으나 8문제정도 틀린걸 보니 내가 생각한 답도 틀린게 꽤 있었나보다 www.youracclaim.com/badges/5e4828f5-ccaf-46a4-809a-b81f67999541/public_url 2021. 3. 14.
[AWS] SageMaker Notebook으로 ML 맛보기 (MNIST, k-means) Amazon SageMaker란? 공식 문서도 참조하셈 ML을 하나도 모르지만, 요즘 대세인 SageMaker를 한 번 써보고싶었다 사실 SageMaker의 기능이라기보단 그냥 Jupyter Notebook을 AWS에서 실행해보는거긴 하다 일단 해보자! 목차 1. S3 버킷 만들기 2. SageMaker 노트북 생성 & 실행 3. MNIST dataset과 k-means 알고리즘 4. 머신러닝 시작! (학습 & 배포 & 테스트) 1. S3 Bucket 만들기 학습할 데이터와 학습 모델을 지정할 S3 Bucket이 필요하다 콘솔 > S3 > 버킷 만들기 이름만 정하고 나머진 다 default값으로 해서 생성한다 버킷 이름은 앞에 sagemaker-를 붙여줘야 한다 2. Notebook Instance 생성.. 2021. 2. 27.
[AWS WAF] #5 실습 마무리 : 로깅 확인 & 리소스 삭제 목차 1. 로깅 확인 2. 리소스 삭제 1. AWS WAF 로깅 확인 S3로 들어가서 waf-s3bucket-어쩌고의 버킷의 가장 최근 파일을 받아봤다 첫번째줄은 curl -i -H "x-value: bot" $waf_url 명령의 결과라서 x-value값이 bot이다 두번째줄은 curl -i -X POST -d ... 명령의 결과라서 메소드 형태가 POST이다 (파라미터 값은 안보임) 2. 리소스 삭제 순서 1) WAF Web ACL의 Associate AWS resources 탭에서 ALB와의 연결 해제 2) WAF Web ACL 삭제 3) S3 bucket 비운 후 삭제 (안비우면 삭제 안됨) (둘 다 지워야됨) 4) CloudFormation 스택 삭제 끝 WAF 실습 시리즈 #0 실습 전 준비 .. 2021. 2. 26.
[AWS WAF] #4 JSON으로 WAF Rule 직접 작성해보기 목차 1. 기존 룰 백업 및 분석 2. 새 룰 요구사항 분석 3. 새 룰 작성 후 테스트 1. 기존 룰 백업 및 삭제 WAF Web ACLs에 들어가면 현재 ACL을 JSON으로 받을 수 있다 1-1) AWS managed rule의 Core rule set { "Name": "AWS-AWSManagedRulesCommonRuleSet", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesCommonRuleSet" } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled":.. 2021. 2. 26.
[AWS WAF] #3 특정 국가 or User-Agent 차단 (custom rule) 목차 1. 특정 국가 차단 (Browsec VPN 사용) 2. 특정 User-Agent 차단 (User-Agent Switcher 사용) 3. custom rule 작성 시 참고사항 1. 특정 국가 차단 무료로 사용 가능한 VPN 중, 싱가포르의 트래픽을 차단해보겠다 1-1) 차단 전 확인 WAF를 설정하기 전에는 싱가포르에서 접속이 되는지 확인해보자 Browsec을 ON 시킨 후, Change > Singapore DVWA로의 접속은 잘 된다 1-2) Rule 생성 만들어둔 WAF Web ACLs에서 Rules 탭으로 이동 전 실습과는 다르게 Add my own rules and rule groups를 누른다 Rule Name은 맘대로 정해주자 Statement의 Inspect는 Origin from .. 2021. 2. 25.