Networks/aws

SK networks AI Camp - AWS CLI 설치 및 기능들

코딩하는 Español되기 2024. 8. 12. 19:00

access Key 발급(보안을 위함)

루트 계정 접속 → security →  create Access Key →  Description 설정 후

CSV 다운(필수!! 한 번 나가면 (= Done) 하면 안 뜸)

 

CLI 설치

1. AWS CLI 설치

    ● Powershell을 관리자 권한으로 실행 후 코드 넣기

msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi

    ● powershell 재접속 후 버전 확인 * 깔고 바로 하면 오류가 나와서 재부팅함

aws --version

[공식 링크]

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

최신 버전의 AWS CLI설치 또는 업데이트 - AWS Command Line Interface

이전 버전에서 업데이트하는 경우 unzip 명령을 실행하면 기존 파일을 덮어쓸지 묻는 메시지가 표시됩니다. 스크립트 자동화와 같은 경우에 이러한 프롬프트를 건너뛰려면 unzip에 대한 -u 업데이

docs.aws.amazon.com

 

2. AWS CLI  설정하기

    ● 아래의 사이트에서 명령 구성을 Long-term으로 선택

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-quickstart.html

 

설정하기 AWS CLI - AWS Command Line Interface

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

    ● 아까 다운로드한 CSV파일(Access Key)

          - AWS Access Key ID : CSV 파일의 ID

          - AWS Secret Access key : CSV 파일의 Access Key

          - Default region name : ap-northeast-2 (서울)

          - Default output format : 형태

 

 

3. VSCode 연동(extension 설치)

    ● extension 설치 후 → 밑에 웃음모양 확인 → Explorer →  Edit Credentials

    ● Access Key와 Key Id 확인 →  explorer에 Asia Pacific(Seoul)인지 확인 

 

4. AWS 웹에서 확인

    ● S3 검색 후 즐겨찾기 후 접속

    ● 옆 툴바에서 Buckets를 클릭

    ● AWS 기본적인 서비스 3가지 : IAM, S3, EC2 

        - IAM : 권한&계정 관리 서비스(인식, 접속 등)

                   * 권한(Roles), 계정(Users), 정책(Policies)

        - S3 : 하드디스크보다 안정화된 객체 스토리지 서비스(내구성이 좋음)

        - EC2 : 인스턴스 서비스

    ● 이름과 태그만 적고 bucket 생성하기

        - 이름은 유일한 이름이어야 함

    ● 만든 Buckets를 클릭하여 접속 및 수정

    ● Create folder를 통해 폴더 생성하는 법

      * 주로 실무에서 일을 할 때 데이터 수집을 일 단위, 시간 단위로 하는 편.

      * 그냥 year/month/day 로 폴더들을 만들지 말고 정확히 명세해주기

      * year=2024  또는 service=Web 등 기능이나 연도를 키, value 형태로 폴더명 정해주기

      * service=etl : 데이터 수집

 

5. PowerShell로 확인/만들기(use CLI command)

    ● 확인 : ls

    ● 생성 : aws s3 mb s3://버킷명

      *mb : make bucket, 이전에 1개 였던 bucket이 2개로 늘어남 * VS코드에서도 확인 가능

    ● C:/사용자/user/.aws에서 수정 가능(그렇기에 개인 컴퓨터가 아닌 경우 사용하고 반드시 지워야함)

aws s3 ls
aws s3 mb s3://버킷명

 


AWS 프리티어

○ 항상 무료 : 언제나 월별 일정 사용량은 무료

    ● AWS Lambda : 월 100만 요청 무료
    ● Amazon CloudFront : 월 1TB 트래픽 무료, HTTP/HTTPS 천만건, CloudFornt 함수 200만건 무료
    ● Amazon DynamoDB(NoSQL DB 서비스) : 월 25GB 저장공간, 월별 2억개 처리 용량 무료

 

○ 12개월 무료 : AWS 계정 생성 후 12개월동안만 적용되는 혜택

    ● Amazon EC2 t3/t2.micro : 월 750시간 무료
    ● Amazon RDS t2/t3/t4g.micro : 월 750시간 무료

 

○ 무료평가 : 사용을 시작한 후 일정 기간 혹은 일정 사용량 사용 이후부터 요금을 청구하는 방식

    ● Amazon QuickSight(AWS BI 시각화 툴): 처음 30일 무료
    ● Amazon Lightsail(AWS의 컴퓨팅 파워를 쉽고 빠르게 프로비전): 처음 3개월, 월 750시간 무료
    ● Amazon Chime(AWS의 커뮤니케이션 툴): 30일 동안 PRO 티어 무료

 

○ 자주 사용하는 서비스들

    ● Amazon SQS : Queue, Stack 같은 자료 구조 사용할 때 쓰는 서비스(LIFO, FIFO 등)
    ● Amazon CloudFront : static 파일을 클라우드에게 제공하는 서비스
    ● AWS CloudFormation : 서비스를 구축하는 서비스
    ● Amazon CloudWatch : 서비스의 문제 발생 여부, 문제 발생 시 알림을 전달하는 모니터링 서비스 
    ● Amazon Route 53 : 도메인, 앱 등 오토 스케일 제공 서비스
    ● Amazon SNS : 큐를 통해서 오류메세지가 들어오면 SNS로 이메일, 문자 등으로 전달하는 서비스
    ● AWS Systems Manager : 각 서비스마다 ID,PW 등 관리해야하는 데이터를 관리해주는 서비스
    ● AWS CloudTrail : 배포할 때 사용

[다른 서비스들]

더보기

○ 컨테이너 서비스들

    ● Amazon EKS
    ● Amazon ECS/ECR
    ● AWS Fargate  

 

○ Serverless 서비스

   ● AWS Lambda
    ● Amazon DynamoDB
    ● Amazon API Gateway
    ● Amazon SQS
    ● AWS Step Functions
    ● Amazon EventBridge
    ● AWS AppSync
    ● Amazon CloudFront

 

○ DevOps/인프라 관리 서비스들

    ● AWS IAM
    ● AWS CloudFormation
    ● AWS CloudTrail
    ● AWS Organizations
    ● AWS CodePipeline
    ● AWS Config
    ● AWS Health Dashboard
    ● AWS CDK

 

○ 보안 서비스들

    ● AWS IAM
    ● AWS CloudTrail
    ● AWS Firewall Manager
    ● Amazon Detective
    ● AWS Shield
    ● AWS Security Hub
    ● AWS WAF
    ● AWS Network Firewall

 

○ 네트워크 서비스들

    ● Amazon VPC
    ● AWS PrivateLink
    ● AWS Transit Gateway
    ● Amazon Route 53
    ● AWS Site-to-Site VPN
    ● Amazon CloudFront
    ● AWS Global Accelerator
    ● AWS Direct Connect

 

○ 프리티어 현재 사용량 확인


EC2

    ● 컴퓨터 하나하나를 인스턴스라고 함. 빌린 컴퓨터라 생각하면 편함

    ● EC2 검색 후 접속 & Instances로 가기

    ● Launch instance하여 Instance 생성

        - 이름(사용하는 서비스로 적어두면 좋음) : e.g. Django WebService 등

        - OS 설정해주기(OS Images) : Quick Start | Browser 더 찾기 해서 원하는 서비스 고르기

          * Ubuntu Server 24.04 LTS(Long Term Support) 선택함

 

        - 컴퓨터 스펙 정해주기(Instance type) : Compare instance types를 클릭해서 원하는 스펙 선택

 

        - ID/PW 설정하기(Key Pair)

         : RSA 타입, .pem 형식으로 이름을 입력 후 create → 파일이 저장됨

 

        - 어떤 네트워크에 접속해야 하는 지 설정(Network Settings)

          : edit 클릭 → Security group 이름 및 Description 설정 → 

            * 기본 포트 번호 : ssh port : 22 http port: 80 https port : 443

 

        - Storage 설정 및 Launch instances 클릭 → Instances로 가서 리프레쉬 후 확인

         * running을 해야 사용가능

 

○ 접속하기

    ● 방법 1. Connect 버튼 클릭 → 아무것도 손 대지말고 Connect → 해당 컴퓨터 접속됨

        - Private IP 주소와 콘솔창에 ubuntu@ip- 뒤에 주소가 같으면 정상 출력된것 

 

    ● 방법 2. Git Bash

       - Security Groups 클릭 → 확인 →  Key pairs에서 이전에 입력한 Key pairs 존재 확인 

 

        - Git Bash 실행 → 홈 디렉터리인지 확인(~인지) If 아니면 cd 입력 *홈 디렉토리에서 진행해야함!

            - 홈디렉토리에 identity라는 폴더를 생성 & 확인(파일이 현재 없는 게 정상)

mkdir -p ~/identity
ls

            - KeyPair 파일 옮기기(이전에 했던 파일) 명령어

              : Downloads 폴더에 pem 형식의 파일 전체 보기(다른 폴더에 있으면 있는 폴더 위치로 적어줘야함)

                Downloads 폴더에 해당 pem을 ~/identity로 hello-ec2-keypair.pem 파일 옮기기 

            - Os에 설치(ssh-keygen) : 엔터 후 3번 엔터 후 확인

ls Downloads/*.pem
mv Downloads/hello-ec2-keypair.pem ~/identity/hello-ec2-keypair.pem
ls ~/identity
ssh-keygen -t rsa
ls ~/.ssh

 

            - 에디터 모드 들어가기 → insert 모드로 접속(i 입력) → 

               * 조금이라도 틀리면 오류가 발생함 So, 붙여넣기 하기!!!

               - Host 원하는 이름→ enter → HostName 하고 띄어쓰기 → Public IPv4 주소 붙여넣고 엔터

               - User 하고 띄어쓰고 ubuntuIdentityFile ~/Identity/아까 저장한.pem 파일

vim ~/.ssh/config

# i 입력하여 insert 모드로 접속

Host hello-ec2
        HostName public IPv4address
        User ubuntu
        IdentityFile ~/identity/hello-ec2-keypair.pem

# esc를 눌러서 모드 변환 후
# 저장
: wq

# 확인
cat ~/.ssh/config 

# 권한 주기
chmod 440 ~/.ssh/config

 

    ● 접속하기 (ssh 아까 호스트명) : 아까 Private 주소랑 같으면 정상 접속 된 것

ssh hello-ec2
# yes 누르기

# ubuntu 접속 후 확인
whoami
ls
pwd

# 나가기
exit

 

 ○ 삭제하기

     ● 웹에서 Network & Security → Security Groups → hello-sg → Inbound rules → Delete and Save rules

        이 후 shell에서 ssh hello-ec2접속하면 에러가 나옴

    ● 다시 추가해주기

        - Edit inbound rules를 통해 Type : SSH, Source 옆에 주소(연습을 위해 0.0.0.0/0 으로), Info 입력 

          shell에서 재접속해주기 : ssh hello-ec2(정상적으로 됨)

 

    ● 완전히 삭제하기 연습(순서 잘 지켜주기 : Instance → Security Groups Key Pairs) 

        1.  Instance 삭제 → Terminated 확인

 

        2. Security Groups 삭제

        

        3. Key-Pairs 삭제(Networks 쪽)