Public Cloud 인프라 구축 및 운영 (22.03.29)

박민선·2022년 3월 29일
1

Ubuntu로 서버 구성 (이 전 수업내용 참고)

저번 시간 Windows와 Linux로 서버구성을 해보았는데 이어서 Ubuntu로 구성 해보기
1) [인스턴스 시작]

2) 1단계 Amazon Machine Image를 선택한다.
Ubuntu Server 20.04LTS 선택 (최신버전)

3) 2단계 인스턴스 유형선택
t2.micro 선택

4) 3단계 인스턴스 세부정보를 구성

5) 4단계 스토리지 추가

6) 5단계 태그 추가
태그를 정의하는 것은 중요함

7) 6단계 보안 그룹 구성
자신의 퍼블릿 ip를 입력할 것

8) 7단계 인스턴스 시작 검토
내가 구성한 정보가 맞는지 검토

9) [시작하기]를 눌러 새 키 페어를 생성하여 다운로드 받는다.

10) Ubuntu 환경의 인스턴스가 실행중

11) Ubuntu는 SSH클라이언트로 실행해야 하므로 Linux와 마찬가지로 .ppk로 변환한 뒤 저장

12) PuTTY에서 키를 로드하고

13) 자신의 퍼블릭IP를 설정하여 실행시킨다.

14) login as : → 는 "ec2-user" 가 아니라 "ubuntu" 이다.

15) apt-get 명령어로 웹서버 액세스 환경을 구성한다.

sudo apt-get update
sudo apt-get install -y apache2
systemctl status apache2

최신 버전으로 업데이트 후 apache2를 설치하고 상태를 확인한다.

16) 웹 서버에 테스트를 위한 환경을 구성한다.

systemctl restart apache2
echo "test page" > index.html
sudo cp index.html /var/www/html

재시작 후 index.html 에 "test page"를 저장
/var/www/html 경로로 카피해준다.

17) 보안그룹 변경으로 http 80포트를 허용한다.

18) 브라우저에 퍼블릭ip를 검색하였을 때 테스트 메시지가 뜨면 성공

"저장한 내용 확인 완료!"


S3버킷 생성하기

1) S3에서 버킷을 만들어 보자!

2) 버킷 만들기
버킷 이름과 리전, 객체 소유권, 퍼블릭 액세스 차단설정, 버킷버전관리를 설정한다.

3) 중요한 태그 설정하기

4) 버킷이 생성되었다. 액세스를 보면 알다시피 퍼블릭 액세스 차단설정을 활성화 했기에 '퍼블릭이 아님'이라고 볼 수 있다.

5) 버킷에 들어가서 파일을 업로드 해보자

6) 업로드가 완료되면 업로드가 완료된 파일의 정보를 확인하여
객체의 URL을 통해 접속해본다.

7) 액세스 접근금지 (퍼플릭 액세스 차단을 활성화 했기에)

8) 버킷의 권한에서 퍼블릭 액세스 차단을 수정해보자

9) [편집]을 눌러서 모든 퍼블리 액세스 차단을 풀어보자

10) 설정 확인을 위한 확인을 입력한다. (퍼블릭 액세스 차단 비활성 완료 ! )

11) 퍼블릭 액세스 차단을 비활성화 하게 되면 버킷정책도 수정을 해야한다.

"arn:aws:s3:::bucket-name/*" → 의 버킷네임을 자신의 버킷네임으로 수정한다.
(web접근 허용 버킷정책 참고 사이트 : https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/WebsiteAccessPermissionsReqd.html)

12) 버킷정책 편집을 완료

13) 다시 한번 브라우저를 통해 객체의 URL을 통해 접속해본다.

(접근 성공 !)


PC의 파일을 Amazon S3로 백업하기

1) S3의 버킷을 다시 만든다.
만들때 버킷 이름 지정 규칙을 지킬 것 (아래 참조)

2) AWS CLI 사용을 위해 IAM 계정 생성이 필요하다.
[사용자]를 들어가 [사용자 추가] 선택 [사용자 이름]을 설정한다
AWS 자격 증명 유형선택 시 CLI를 사용할 것이기에 액세스 키를 선택

3) 그룹에 사용자를 추가한다.
administratorFullAcess 사용자의 모든 권한 부여
s3FullAccess S3의 모든 권한 부여
둘 중에 선택 (이번엔 S3만 사용하므로 후자를 선택)

4) 사용자 추가가 성공하면 .csv를 다운로드 한다.

5) 엑셀파일로 저장이 되는데 엑셀이 있다면 이런식으로

엑셀파일이 없다면 연결 프로그램을 메모장으로 실행해서 볼 수 있음

6) 이제 CLI를 설치하고 실행해보자
( https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi 로 설치)

7) 윈도우키+R 로 cmd 창을 열어 액세스 해준다.
( 만약 없는 실행명령어로 뜰 경우 7-1). 확인 )

aws --version
aws configure
	AWS Access key ID :
	AWS Secret Access Key :
	Default region name :
	Default output format : json
cmd> cd [동기화 할 디렉토리]
cmd> aws s3 ls
cmd> aws s3 sync  ‘로컬경로’  ‘s3://버킷명’
aws s3 sync C:\awsbackup s3://soyoung-desktop-backup
(폴더를 동기화 하는 명령어)

7-1) 설치 디렉토리 C:\Program Files\Amazon\AWSCLIV2 없는 실행명령어라고 에러뜨는 경우

첫번 째, cmd창을 새로 열기

두번 째, 고급 시스템 설정 보기 에서 [고급] → [환경 변수]

시스템 변수 에서 변수, 값을 C:\Program Files\Amazon\AWSCLIV2 설정한다.

8) 동기화 완료! (경로 폴더에 ddasdf.txt 파일을 만들어 뒀음)


↑ 3) 권한 부여 시, 최소한의 권한을 부여하여 작업하도록 합니다.
IAM에서 추가한 IAM user에 대해서, “administrator”가 아닌 “S3FullAccess/S3OutpostsFullAccess”로 S3제한으로 권한을 변경하도록 합니다.
그리고, 해당 버킷에 해당 사용자만 허용하도록 버킷정책을 추가합니다.
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example1.html
https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html

정책할당시 JSON구문을 모를 때, “정책생성기”를 이용하면 좋음
https://awspolicygen.s3.amazonaws.com/policygen.html

버킷 정책 > 편집
{
    "Version": "2012-10-17",
    "Id": "ExamplePolicy01",
    "Statement": [
        {
            "Sid": "ExampleStatement01",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::[계정ID]:user/[IAM사용자]"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::[버킷명]/*",
                "arn:aws:s3:::[버킷명]"
            ]
        }
    ]
}

버킷 정책으로 해당 버킷에 해당 사용자에 대한 권한 부여하기


AMI를 이용한 서버 백업과 복원하기

1) 인스턴스를 (중지)한 상태 에서 [작업]→[이미지 및 펨플릿]→[이미지 생성] 클릭

2) 이미지 생성 시 필요한 정보 기입

3) 생성된 AMI으로 인스턴스 새로 만들어 보자 (AMI가 생성될 때 몇 분이 소요)

4) 기존 인스턴스를 AMI 하였기에 기본 정보는 같지만 보안 그룹은 수동으로 설정해 주어야 함 (HTTP 포트 추가)

5) 기존 인스턴스로 백업완료를 하였다.
확인을 위해 ubuntu서버 구성때 작성했던 "test page"가 뜨는지 확인을 해보자

6) 기존 인스턴스에서 적었던 테스트 문구를 AMI으로 백업한 인스턴스에서도 확인이 가능하다
( AMI으로 백업 성공! )


Windows 시스템 및 Linux 시스템에서 백업&동기화 확인

1. windows시스템의 개인 data 백업하기

.msi 다운받아 설치 https://awscli.amazonaws.com/AWSCLIV2-2.0.30.msi
설치 디렉토리 C:\Program Files\Amazon\AWSCLIV2
없는 실행명령어라고 에러뜨는 경우, cmd창 새로 열기

cmd> C:> aws --version

cmd> aws configure
AWS Access key ID
AWS Secret Access Key
Default region name
Default output format : json
cmd> cd [동기화 할 디렉토리]
cmd> aws s3 ls
cmd> aws s3 sync ‘로컬경로’ ‘s3://버킷명’
aws s3 sync C:\awsbackup s3://soyoung-desktop-backup
폴더를 동기화 하는 명령어

관리콘솔 해당 버킷에서 동기화 확인

2. linux 시스템에서 백업&동기화하기

Linux에 CLI 설치

​- CLI 설치 파일 다운로드 후 압축 해제하여 설치

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscliv2.zip

./aws/install

​- 설치 확인

aws --version

  • aws CLI에 액세스 키 입력

    aws configure

AWS Access Key ID [None] : 액세스 키 입력

AWS Secret Access Key [None] : 비밀 액세스 키 입력

Default region name [None] : Default 값 입력

S3의 region 입력을 해도 무관하며, 설정 이후 변경이 가능합니다.

Default output format [None] : json

설정한 내용은 OS 계정 Home 디렉터리 하위에 숨긴 폴더로 저장됩니다.

ex) /root/.aws/

  • AWS CLI를 통해 생성된 S3 확인

    aws s3 ls

​-----------------------------------

AWS S3 CLI 주요 명령어

  • 신규 버킷 생성

aws s3 mb s3://버킷명

ex) # aws s3 mb s3://newbucket

  • 버킷 및 객체 확인

버킷 확인 aws s3 ls

객체 확인 aws s3 ls s3://버킷명

ex) # aws s3 ls

aws s3 ls s3://s3-linuxclitest

  • 버킷 삭제

aws s3 rb s3://버킷명

ex) # aws s3 rb s3://s3-linuxclitest

  • 객체 삭제

aws s3 rm s3://버킷명/객체명

ex) # aws s3 rm s3://s3-linuxclitest/test

  • 객체 이동

aws s3 mv

ex) # aws s3 mv /root/file.txt s3://testbuket

aws s3 mv s3://newbucket/file.txt s3://s3-linuxclitest/

  • 객체 복사

aws s3 cp

ex) # aws s3 cp /root/file.txt s3://s3-linuxclitest

aws s3 cp s3://newbucket/file.txt s3://s3-linuxclitest/

  • 객체 동기화

aws s3 sync

ex) # aws s3 sync /root/ s3://s3-linuxclitest

aws s3 sync s3://newbucket/ s3://s3-linuxclitest

​--recursive

해당 옵션을 사용하면 지정된 디렉터리 또는 접두사 아래의 모든 객체에 대해 명령이 수행됩니다. (명령어 mv, cp, rm 적용)

ex) # aws s3 mv /root s3://s3-linuxclitest/ --recursive


EC2 인스턴스 AMI 사용시 로그인 ID
AWS linux (centos) : ec2-user
ubuntu : ubuntu
windows : administrator

profile
클라우드신생아

0개의 댓글