티스토리 뷰

AWS Academy Cloud Architecting Module 10 (Automating Your Architecture) Challenge Lab 잘 안 됐던 부분 메모

 

1. Challenge #3 - Task 4

Network 배포 자동화 하기 전에 update-network-stack 삭제

CafeNetworkPipeline에 연결된 CloudFormation에 이미 update-network-stack이라는 stack이 존재한다.

여기에 VPC, Subnet이 배포되어 있기 때문에, cafe-network.yaml의 템플릿을 업로드해서 CodePipeline에서 배포하면, 새로운 VPC와 Subnet을 배포하지 않는다.

네트워크 배포에는 당장 문제가 생기지 않는다. 그러나 그 다음 어플리케이션 서버 배포에서 문제가 생긴다. 조건에 맞는 Cafe VPC, Cafe Public Subnet이라는 네임 태그를 가진 자원들이 없기 때문에 cafe-app.yaml 배포에서 에러가 발생한다.

따라서 미리 삭제하고 cafe-network.yaml을 CodeCommit에 코드를 업로드 하는 작업을 해야 뒤에 에러가 발생하지 않는다.

 

2. Challenge #3 - Task 6

어플리케이션 서버 자원 EC2 작성하는 부분에서 많이 헤맸다.

정답은 아래와 같음 (EC2 부분만!)

CafeInstance:
    Type: AWS::EC2::Instance
    Properties: 
      ImageId: !Ref LatestAmiId
      InstanceType: !Ref InstanceTypeParameter
      KeyName: !FindInMap [RegionMap, !Ref "AWS::Region", keypair]
      IamInstanceProfile: CafeRole
      NetworkInterfaces:
        - DeviceIndex: '0'
          AssociatePublicIpAddress: 'true'
          SubnetId: !ImportValue
            'Fn::Sub': '${CafeNetworkParameter}-SubnetID'
          GroupSet:
            - !Ref CafeSG
      Tags:
        - Key: Name
          Value: Cafe Web Server
      UserData:
        Fn::Base64:
          !Sub |
            #!/bin/bash
            yum -y update
            yum install -y httpd mariadb-server wget
            amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
            systemctl enable httpd
            systemctl start httpd
            systemctl enable mariadb
            systemctl start mariadb
            wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-200-ACACAD-20-EN/mod10-challenge/cafe-app.sh
            chmod +x cafe-app.sh
            ./cafe-app.sh

특히 IamInstanceProfile 부분에서 많이 헤맸는데 저 부분 value 값 형태는 무조건 string이어야 한다.

만약에 새로운 IAM을 생성하고 싶으면 Resource 아래에 InstanceProfile을 만들고 참고(!Ref) 해준다.

그러나 이 챌린지랩에서는 이미 CafeRole이라는 IAM이 있었고 이걸 이용하라고 했으므로 그냥 CafeRole이라고 이름만 적어주면 되었다.. 🙃

너무 어렵게 생각해서 오히려 헤맸다

 


 

참고로 IAM 프로필을 만드는 방법은

Resource:
	IamProfileExample:
    	Type: AWS::IAM::InstanceProfile
        Properties: 
          InstanceProfileName: ExampleIamInstance
          Path: /
          Roles: 
            - MyRoleExample

 

아래 사이트를 참고하면 더 정확하고 자세하다

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html

 

AWS::IAM::InstanceProfile - AWS CloudFormation

Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.

docs.aws.amazon.com

 


 

자동화 템플릿에서 EC2 자원 내용을 수정하지 않고도, secret pair key를 설정하는 법

KeyName: !FindInMap [RegionMap, !Ref "AWS::Region", keypair]

그 리전 내에 있는 페어 키를 자동으로 찾아서 매핑함


 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함