Wisdom’s Cloud

[AWS] 31. AWS Cloud9 본문

AWS/Beginner

[AWS] 31. AWS Cloud9

지혜로운지혜쓰 2022. 3. 27. 02:59

[출처 : https://pithecuse.tistory.com/13]

구분 내용
서비스명 AWS Cloud9
설명 코드의 작성, 실행 및 디버깅을 위한 클라우드 IDE(Integrated Development Environment)
주요 특징 - 클라우드에서 사용하기 쉬운 클라우드 기반 IDE
- 내장형 GitHub와 내장형 Lambda BluePrint 지원
- 내장 SAM Local을 활용하여 로컬 환경에서 테스트, 디버깅 수행 가능
- Lambda에 직접 배포하거나 GitHub에 업데이트 푸시 가능
- AWS CodePipeline 구성을 통해 업데이트에 대한 빌드 자동화 가능
프리티어(Free Tier) - AWS 프리티어 이용 시 AWS Cloud9을 무료로 사용할 수 있음
- AWS Cloud9의 프리티어 초과 시 초과 리소스에 대해 일반 요금 부과

 

 

Cloud9의 특징
  • 브라우저만 있다면 언제 어디서든 개발을 지원
  • 손쉽게 서버리스 애플리케이션 개발을 지원
  • 팀 개발을 위한 협업을 지원
  • Cloud9을 통해 터미널을 직접 액세스

 

 

실습: Cloud9 환경 구성

 

1. 콘솔에 로그인한 후, [서비스] -> [개발자 도구] -> [Cloud9]으로 이동하여 [Create environment] 버튼을 클릭한다.
2. Name environment 페이지에서 이름을 입력한 후, [Next step] 버튼을 클릭한다.
3. Configure settings 페이지에서 Environment type은 [Create a new EC2 instance]을, Instance type은 [t2.micro]로 선택한다.
4. 그리고 Platform은 [Amazon Linux 2]을, Cost-saving setting은 [After 30 minutes]로 선택한 후, [Next step] 버튼을 클릭한다.
5. Review 페이지에서 구성한 환경 정보를 확인한 후 [Create environment] 버튼을 클릭한다.
6. 모든 설정이 마무리되면 위와 같이 AWS Cloud0 화면이 표시된다.

 

 

실습: Cloud9을 활용한 Python Tutorials

 

1. 터미널 콘솔에서 위와 같이 입력한 후, Python 버전을 확인하고 Linux에 대한 업데이트를 수행한다.
2. Cloud9 콘솔 왼쪽의 Tree를 선택하여 마우스 오른쪽 버튼을 클릭한 후, [New File]을 클릭한다.
3. 편집기 콘솔에서 위와 같이 소스를 입력한 후, Hello.py 파일로 저장한다.
4. Cloud9 콘솔 상단의 [Run] -> [Run Configurations] -> [New Run Configuration]을 클릭한다.
5. 하단의 Command 항목에서 'Hello.py 3 5'를 입력하여 해당 Python 프로그램이 정상적으로 실행됨을 확인한다.

 

 

실습: Cloud9을 활용한 Python용 AWS SDK(Boto3) 개발

 

1. AWS SDK for Python의 Tutorials 실행을 위해 터미널 콘솔에서 위와 같이 입력하여 실행한다.
2. Python용 Boto3 설치를 위해 위와 같이 명령어를 실행하여 AWS SDK for Python을 설치한다.
3. AWS SDK for Python이 실행되는 경우 호출될 때마다 자격 증명에 대한 인증이 필요하기 때문에, Cloud9이 설치된 EC2에 대해 AWS 인프라에 대한 접근 권한을 위한 IAM 설정이 필요하다. 따라서 [서비스] -> [보안, 자격 증명 및 규정준수] -> [IAM] -> [역할]로 이동하여 [역할 만들기]를 클릭한다.
4. 신뢰할 수 있는 엔터티 선택 페이지에서 [AWS 서비스]와 [EC2]를 선택한 후, [다음] 버튼을 클릭한다.
5. 권한 추가 페이지에서 [AmazonS3FullAccess]를 선택한 후, [다음] 버튼을 클릭한다.
6. 이름 지정, 검토 및 생성 페이지에서 역할 이름을 입력한 후, [역할 생성] 버튼을 클릭한다.
7. Cloud9용 EC2에 생성한 역할을 할당하기 위해 [서비스] -> [컴퓨팅] -> [EC2] -> [인스턴스]로 이동하여 [작업] -> [보안] -> [IAM 역할 수정]을 클릭한다.
8. IAM 역할 수정 페이지에서 생성한 역할을 선택한 후, [저장] 버튼을 클릭한다.
9. Cloud9 콘솔로 이동한 후, 아래의 코드를 입력하여 s3.py 파일을 생성한다.

import boto3
import sys
from botocore.exceptions import ClientError

def list_my_buckets(s3):
   print('Buckets:\n\t', *[b.name for b in s3.buckets.all()], sep="\n\t")

def create_and_delete_my_bucket(bucket_name, region, keep_bucket):
   s3 = boto3.resource('s3', region_name=region)

   list_my_buckets(s3)

   try:
      print('\nCreating new bucket:', bucket_name)
      bucket = s3.create_bucket(
         Bucket=bucket_name,
         CreateBucketConfiguration={
            'LocationConstraint': region
         }
      )
   except ClientError as e:
      print(e)
      sys.exit('Exiting the script because bucket creation failed.')

   bucket.wait_until_exists()
   list_my_buckets(s3)

   if not keep_bucket:
     print('\nDeleting bucket:', bucket.name)
     bucket.delete()

      bucket.wait_until_not_exists()
      list_my_buckets(s3)
   else:
      print('\nKeeping bucket:', bucket.name)


def main():
   import argparse

   parser = argparse.ArgumentParser()
   parser.add_argument('bucket_name', help='The name of the bucket to create.')
   parser.add_argument('region', help='The region in which to create your bucket.')
   parser.add_argument('--keep_bucket', help='Keeps the created bucket. When not specified, the bucket is deleted.', action='store_true')

   args = parser.parse_args()

   create_and_delete_my_bucket(args.bucket_name, args.region, args.keep_bucket)

if __name__ == '__main__':
   main()

 

10. 코드를 실행하여 Command 창에 's3.py 생성할버킷이름 리전명'을 입력한다. Python 코드가 정상적으로 실행되었다면 위와 같이 S3 버킷이 생성되고 다시 삭제된다. 추가적으로 버킷을 그대로 남기고 싶다면 명령어 뒤에 '--keep_bucket' 옵션을 추가로 입력하여 실행한다.

'AWS > Beginner' 카테고리의 다른 글

[AWS] 33. AWS CodeBuild  (0) 2022.03.30
[AWS] 32. AWS CodeCommit  (0) 2022.03.29
[AWS] 30. 클라우드 용어 정리(12)  (0) 2022.03.27
[AWS] 29. Amazon CloudWatch  (0) 2022.03.24
[AWS] 28. AWS Lambda  (0) 2022.03.22