[AWS 서버 구성] ECS로 서버 구동 및 CI/CD 환경 구성하기 (1 - GitHub, IAM, VPC, Security groups)

steve·2023년 10월 25일

Cloud

목록 보기
2/6
post-thumbnail

목표

  • GitHub Actions에서 AWS ECS workflow를 생성하고 AWS KEY를 설정해본다
  • 기본적인 보안/네트워크 설정을 해본다
    • IAM (Identity & Access Management)
    • VPC (Virtual Private Cloud)
    • Security groups

1. GitHub Actions workflow 설정

  • GitHub Actions를 활용하여 CI/CD 환경을 구성하기 위해 workflow를 추가한다
  • 해당 workflow를 추가하면 다음과 같은 yml 템플릿 파일이 생성되며,
    CI/CD 환경을 구성하기 위해 주석에 적힌 설명들을 참고한다
  • yml 템플릿 파일을 보면, secrets 정보를 파라미터로 받는 부분이 있는데, 이를 위해 먼저 AWS IAM에서 User를 생성하여 AWS KEY를 설정을 해준다
    - name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: ${{ env.AWS_REGION }}

2. IAM (Identity & Access Management)

  • Role 생성
    ECS Task를 사용하기 위한 Use case 선택
  • User 생성
    정책 직접 부여를 선택하고 아래 정책 리스트를 추가
    1. AmazonECS_FullAccess
    2. AmazonECSTaskExecutionRolePolicy
    3. AmazonEC2ContainerRegistryFullAccess
    4. AmazonElasticContainerRegistryPublicFullAccess
    5. AmazonElasticContainerRegistryPublicPowerUser
    6. AmazonElasticContainerRegistryPublicReadOnly
    7. AWSAppRunnerServicePolicyForECRAccess
    생성 후, 해당 사용자의 Security credentials 탭에서 Secret Key를 생성하고, 자신의 GitHub Repository Settings에서 Actions secrets를 아래와 같이 생성한다

3. VPC (Virtual Private Cloud)

  • VPC 생성 시 Resources 선택은 VPC and more로 선택해주고 나머지 옵션들은 설명을 참고하여 커스터마이징이 필요한 경우 수정하여 VPC를 생성한다

4. Security groups

  • 생성 시 VPC 선택하는 부분은 이전에 생성했던 VPC를 선택해준다
  • 인바운드 규칙은 아래 사진을 참고하여 본인이 설정할 인바운드 규칙들을 추가해준다 (port 3000은 nodejs 기본 포트를 사용하기 위해 추가했다)

0개의 댓글