Search

#017 #노트

기본적인 CI/CD를 위한 VPC 설정을 진행하기 위해서는 몇 가지 주요 요소들을 고려하여 설정해야 합니다. 여기서는 AWS 환경에서 CI/CD 파이프라인을 구축할 때 필요한 기본적인 VPC 설정을 단계별로 설명합니다.

1. VPC 생성

1.
CIDR 블록 선택
10.0.0.0/16 CIDR 블록을 사용하여 VPC를 생성합니다.
aws ec2 create-vpc --cidr-block 10.0.0.0/16
Plain Text
복사

2. 서브넷 생성

1.
공용 서브넷사설 서브넷을 각 가용 영역(AZ)에 생성합니다.
공용 서브넷: 10.0.1.0/24
사설 서브넷: 10.0.2.0/24
# 공용 서브넷 aws ec2 create-subnet --vpc-id vpc-id --cidr-block 10.0.1.0/24 --availability-zone ap-northeast-2a # 사설 서브넷 aws ec2 create-subnet --vpc-id vpc-id --cidr-block 10.0.2.0/24 --availability-zone ap-northeast-2a
Plain Text
복사

3. 인터넷 게이트웨이 생성 및 연결

1.
*인터넷 게이트웨이(IGW)**를 생성하고 VPC에 연결합니다.
aws ec2 create-internet-gateway aws ec2 attach-internet-gateway --vpc-id vpc-id --internet-gateway-id igw-id
Plain Text
복사

4. 라우팅 테이블 생성 및 연결

1.
공용 라우팅 테이블을 생성하고, 인터넷 게이트웨이로의 경로를 추가한 후 공용 서브넷과 연결합니다.
aws ec2 create-route-table --vpc-id vpc-id aws ec2 create-route --route-table-id rtb-id --destination-cidr-block 0.0.0.0/0 --gateway-id igw-id aws ec2 associate-route-table --subnet-id subnet-id --route-table-id rtb-id
Plain Text
복사
1.
사설 라우팅 테이블을 생성하고, 사설 서브넷과 연결합니다.
aws ec2 create-route-table --vpc-id vpc-id aws ec2 associate-route-table --subnet-id subnet-id --route-table-id rtb-id
Plain Text
복사

5. NAT 게이트웨이 생성 (선택 사항)

사설 서브넷이 인터넷에 접근할 수 있도록 NAT 게이트웨이를 생성합니다. NAT 게이트웨이는 공용 서브넷에 배치해야 합니다.
# Elastic IP 생성 aws ec2 allocate-address --domain vpc # NAT 게이트웨이 생성 aws ec2 create-nat-gateway --subnet-id public-subnet-id --allocation-id eipalloc-id # 사설 라우팅 테이블에 NAT 게이트웨이 경로 추가 aws ec2 create-route --route-table-id private-rtb-id --destination-cidr-block 0.0.0.0/0 --nat-gateway-id nat-gateway-id
Plain Text
복사

6. 보안 그룹 설정

1.
보안 그룹을 생성하여 필요한 포트들을 엽니다. 예를 들어, EC2 인스턴스에 대한 SSH 접근을 허용하고, 애플리케이션에 필요한 포트를 엽니다.
aws ec2 create-security-group --group-name MySecurityGroup --description "Security group for CI/CD" --vpc-id vpc-id # SSH 접근 허용 aws ec2 authorize-security-group-ingress --group-id sg-id --protocol tcp --port 22 --cidr 0.0.0.0/0 # 애플리케이션 포트 접근 허용 (예: HTTP 80 포트) aws ec2 authorize-security-group-ingress --group-id sg-id --protocol tcp --port 80 --cidr 0.0.0.0/0
Plain Text
복사

7. IAM 역할 및 정책 설정

CI/CD 파이프라인에서 사용하는 EC2 인스턴스나 Lambda 함수가 필요한 권한을 갖도록 IAM 역할 및 정책을 설정합니다.
1.
IAM 역할 생성: EC2 인스턴스에 할당할 IAM 역할을 생성합니다.
aws iam create-role --role-name MyEC2Role --assume-role-policy-document file://trust-policy.json
Plain Text
복사
1.
IAM 정책 연결: 필요한 정책을 IAM 역할에 연결합니다.
aws iam attach-role-policy --role-name MyEC2Role --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess aws iam attach-role-policy --role-name MyEC2Role --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess
Plain Text
복사

8. CI/CD 툴 설치 및 구성

1.
Jenkins, GitLab CI, GitHub Actions 등의 CI/CD 툴을 설치하고 VPC 내에서 실행될 수 있도록 구성합니다.
2.
EC2 인스턴스를 생성하여 CI/CD 툴을 설치하거나, AWS CodePipeline과 같은 AWS 서비스를 사용하여 CI/CD 파이프라인을 구축합니다.

9. 모니터링 및 로깅

VPC에서 발생하는 트래픽을 모니터링하고 로그를 분석할 수 있도록 VPC 흐름 로그를 설정합니다.
aws ec2 create-flow-logs --resource-type VPC --resource-id vpc-id --traffic-type ALL --log-group-name my-vpc-flow-logs --deliver-logs-permission-arn arn:aws:iam::account-id:role/my-iam-role
Plain Text
복사
이러한 설정을 통해 AWS VPC에서 기본적인 CI/CD 환경을 구성할 수 있습니다. CI/CD 파이프라인은 코드 배포의 자동화 및 관리가 가능하며, 이 설정을 통해 네트워크와 보안 요구 사항을 충족할 수 있습니다.