본문 바로가기

반응형

분류 전체보기

(176)
[Boto3] RDS의 Parameter Group 값을 CSV 추출 스크립트 RDS의 Parameter Groups에 어떤 Parameter들이 정의되어 있는지 CSV 파일로 추출해주는 스크립트입니다. - 기대 효과 1. CSV로 저장하여 확인하고 싶을 경우 2. RDS 버전을 MySQL 5.6 -> 5.7 등으로 업그레이드 하고자 할 때 Excel로 비교하고 싶을 경우 import boto3 import csv p_name = "default" r_name = "ap-northeast-2" param_group_name = "psql-param-group" session = boto3.session.Session(profile_name=p_name) client = session.client(service_name='rds', region_name=r_name) paginato..
[Bash] S3에 저장되어 있는 AWS FlowLogs 추출하는 Shell Script S3에 저장되어 있는 Flowlogs들은 엄청나게 많이 쌓여 있으며 하나하나 Download하기 굉장히 힘들다. 이러한 이유 때문에 간단한 Script를 짜두면 좋은데 능력이 부족하여 AWS CLI를 통해 간단한 스크립트를 작성하였다. ~/.aws/credentials 파일에 Access Key와 Secret Key가 저장되어 있다고 가정하며 S3 ReadOnly 권한만 있으면 된다. Bash Shell에서 AWS CLI를 이용하여 S3의 객체들을 Download하여 하나의 파일로 저장한 뒤 모든 Log 파일들은 삭제한다. 아래의 정보를 파악한 후 Script를 돌리면 된다. Bucket Name Profile Name ( ~/.aws/credentials) Region Name Flowlogs ID 보..
[Python] Boto3로 Security Group rule 추가 (csv 파일 이용) 개요 SG 정책 추가를 관리형 웹 콘솔에서 보안 그룹을 적용할 경우 수십분이 걸리는 작업이다. CIDR 대역이 아닌 각 IP당 여러 Port를 요구하기 때문에 보안 그룹 규칙이 굉장히 번잡해진다. 보안 그룹 정책은 고객사를 따라서 해야 하기 때문에 요청대로 해줘야 하는데 굉장히 노가다성 작업이 심해서 파이썬 Boto3와 CSV 파일을 이용하여 수고를 덜면 어떨까라는 생각이 들었다. 과정은 다음과 같다. (Python 스크립트를 돌리기 이전에 웹 콘솔에 접속하여 Rule이 이미 허용은 되어 있는지, 라우트 테이블 정책은 어떻게 이루어져 있는지, Site to Site VPN Static Route 혹은 Transit Gateway Route Table에 라우팅이 설정되어 있는지 등을 사전에 확인 후 10 ..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #5 - CodeDeploy를 통한 ASG Blue-Green 배포 #4에서 S3로 zip 파일이 업로도된 것을 확인하였다. CodeDeploy를 통한 war 파일 배포 Tomcat Server에서 S3에 있는 파일을 가져오기 위해 IAM Instance Profile이 해당 WAS EC2에 Attach되어 있어야 한다. 아래의 EC2 Metadata로 잘 붙어있는지 확인할 수 있다. - CodeDeploy Agent 설치 #!/bin/bash sudo yum -y install ruby sudo yum -y install wget cd /home/ec2-user sudo wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install sudo chmod +x ./instal..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #4 - Jenkins, Github 연동 및 Maven Build ** Role 설정 CI/CD 작업을 진행하면서 3개의 Role을 생성해주어야 한다. 1. Tomcat IAM Role (tomcat 서버에서 s3에 .zip 파일을 가져올 수 있는 Policy 부여) : S3FullAccess (.zip 파일을 s3에서 가져오기) 2. Jenkins IAM Role (Jenkins가 S3에 파일 업로드하고 CodeDeploy에게 Deployment 생성 및 배포 요청하는 Policy) : S3FullAccess : CodeDeployFullAccess 3. CodeDeploy IAM Role (CodeDeploy가 CD 작업을 수행할 수 있도록 Policy 부여) : AWSCodeDeployRole : CodeDeployAdditionalPolicy (If use La..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #3 - 3 Tier 인프라 구축 * 본 글에서는 Terraform 코드에 대한 자세한 설명은 진행하지 않습니다. * - Module은 EC2, VPC, RDS - MySQL 3개만 구현하였고, 나머지는 Resource를 사용하여 인프라를 구현하였다. - 동적으로 Infra의 설정 값을 변경할 수 있도록 variables.tf를 적절히 활용하였고, 각 Test, Dev, Stg, Prd 등 각 환경마다 변수 값을 다르게 설정할 수 있도록 env/~.tfvars 처럼 tfvars 파일을 생성하였다. - 아직 Module화, count, for_each 등의 Terraform 함수들을 활용하여 좀 더 간결하여 동적인 Code로 리팩터링하는 작업이 필요할 것으로 보인다. - Tomcat AMI는 Packer로 생성하였는데, 아래의 링크에서 확..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #2 - Maven으로 SpringBoot Demo 앱 배포 - 참고 (Spring Initializr) https://start.spring.io/ SpringBoot로 Demo 프로젝트 생성 Project : Maven Packaging : War (Tomcat 서버를 통해 배포할 것이기 때문) Java : 8 Version 사용 Dependencies : Spring Web 간단한 Source 수정 및 index.html (Welcome Page) 생성 기본 뼈대에 index.html만 추가해준다. 그럼 기본 경로로 접속할 시 index.html로 리다이렉션이 된다. 실 서버에서 war 파일을 배포하기 전에 다음의 Test들을 진행하였다. Docker container, EC2에서 각각 war 파일 배포해보기 1. Local에서 Docker Container..
[CICD] Terraform을 통한 AWS 3 Tier 구성 및 CI/CD 파이프라인 배포 #1 - 아키텍처 및 CICD 흐름 소개 개요 Terraform을 통하여 AWS의 각종 자원들(VPC, EC2, ALB, NLB, AutoScaling Group, ..)을 생성하고 Application 배포 자동화를 위한 Jenkins + AWS CodeDeploy 구축 이후 WAR 파일 배포를 진행해 볼 예정이다. 요즘에는 WAR를 말아서 Tomcat에 직접 배포하는 것이 아닌 JAR 파일에 있는 내장 톰캣을 사용하지만 아직도 많은 회사에서는 Tomcat을 직접 구성하여 사용하고 있기 때문에 3 티어를 구현하여 인프라를 구현해 볼 예정이다. (SpringBoot는 처음 사용해보기 때문에 hello만 출력하는 페이지를 생성하였음) 어떠한 것들을 사용할 것인지 간략하게 소개해보겠다. 1. 인프라 - Terraform - Packer 2. CI/..

반응형