Linux AMI 에 ec2-user로 sftp접근할 때/var/www/html 접근 불가 문제

FTP는 개별적으로 포트를 열어주어야해서.. 22번포트를 사용하여 SFTP를 접속하기를 권장하기에 Key pair을 사용하여 SFTP 접속을 하면 /var/www/html 접근이 불가합니다. 접근이 가능케 하기 위해서, 여러가지 방법이 가능합니다. root계정으로 접근하거나, 777권한을 주거나 할 수 있습니다. 하지만 최소한의 권한으로 접근권한을 주기 위해서, 아래와 같은 방법을 제안해 드립니다.

우선 Linux AMI는 CentOS기반으로 돌아갑니다. CentOS의 아파치 기본 접근 계정은 apache입니다. 확인 방법으로는 아래와 같습니다.

ps aux | egrep '(apache|httpd)'

그렇다면, ec2-user를 apache 그룹에 추가하여 필요한 디렉토리에 권한을 적용합니다.

sudo gpasswd -a ec2-user apache
sudo chmod -R 775 /var/www/html/
sudo chgrp -R apache /var/www/html/

 

SFTP 클라이언트로 접속해보면, 잘 접속이 되며, 파일 업로드 시 ec2-user의 소유로 업로드가 됩니다.

AWS로 1명부터 1백만 사용자까지 처리하기(AWS Summits 2014)

1

처음 클라우드 이전 혹은 생성 시에는 EC2하나로 시작합니다.

2

유저가 늘어나면서 필요에 따라 EC2의 크기 조정을 합니다

3

DB서버를 개별 설치하여 서버의 부하를 나눕니다

4

DB서버가 5TB이상의 데이터를 처리한다면, NoSQL 고려

5

NoSQL 사용 이유

6

HA 위해 multi-AZ 설치

7

사용량에 따라 서버 및 DB 개수 조정

8

부하를 분산시키기 위해 캐싱 서버 활용

9

CF 사용하면 부하도 줄고 요금도 줄어요

10

AutoScaling을 통해 예상 유입량 고려를 적게 할 수 있음

11

캐싱과 CF를 사용하여 자원 배치

12

커스텀 자동화도 가능함

13

Cloudwatch 메트릭스

14

서비스별로 아키텍쳐 필요

15

마이크로 서비스별로 자원 분배

16

SOA를 잘활용할 수 있는 도구들

17

서비스가 잘되면.. 이렇게도 가능

EC2에 custom keypair 붙이기(linux)

왜?? 이 글을 썼냐면요..  EC2를 사용하다보면 영구적으로 모든 권한을 주는 것이 아닌, 일시적으로 EC2 서버의 ssh접근권한을 주어서 관리자가 원할 때 ssh 접근권한을 가진 유저를 제한하는 방법이 필요했기 때문입니다. 이를 위해서 자칫 IAM 으로 컨트롤 가능할 거 같지만, EC2 생성/제거가 아닌, ssh 접근을 통제하는 방법은 AWS에서 제공하지 않습니다. 그럼 시작

1. 준비물로 우선 puttygen으로 키페어 하나를 만들어 줍니다.

puttygen

puttygen key.PNG

위와 같이 생성이 완료 되면, private key는 저장하여 간직하고, public key 내용을 복사해서 노트해 둡니다. (ssh-rsa AAAABBBBBB로 시작 [한 문장])

2.  ssh 접근 후, 유저 생성을 해주고 폴더를 설정해 줍니다.

adduser andykwak
su - andykwak
mkdir .ssh/
chmod 700 .ssh/

3. 방금 저장한 public key 내용을 저장해 줍니다.

vim .ssh/authorized_keys     ##ssh-rsa 어쩌고 복사
chmod 600 .ssh/authorized_keys

4. /etc/sudoers에 정보를 추가합니다

유저명 ALL=NOPASSWD:ALL   ##ec2-user의 경우 /etc/sudoers.d/cloud-init에 포함

5. 이제 새로운 유저로 putty 접근을 해 봅니다.

6. 유저 삭제 시

sudo userdel -r 유저명(andykwak)

 

EBS 사용 도중 크기/종류 변경이 가능해졌습니다. (2/13/17)

아마존 공문 링크

어제 (17년 2월 13일) Amazon Elastic Block Store (Amazon EBS) Enables Live Volume Modifications with Elastic Volumes 이라는 아마존 공식 문서가 발행되었습니다. 링크는 위에 있고요, 드디어 EBS스냅샷을 뜨지 않고 변경이 가능해 졌습니다~!!!!!!

이로써 Cloudwatch와 Lambda를 통해 디스크 크기 조정도 가능해 졌는데요, 아마존 사용량이 많으신 분들은 아마 이 기능으로 요금 절감도 가능할 것으로 보입니다.

실제로는 안 해보았는데.. 일단 무료로 사용할 수 있는 기능이라 매력적이긴 합니다!
오호라..  준비를 많이 했는지 바로 사용가능하네요~!

1회 변경 후 6시간 동안 재변경이 불가하며, Linux 인스턴스는 재부팅이 필요하니 참고하세요
(기존 Linux 는 resize가 필요했으나, 현재 필요없음. 윈도우는 Expand 후 사용)

pasted-image-at-2017_02_14-02_54-pm

EBS Live 주의사항.PNG

 

PuttyGen 사용하여 EC2 접근하기

AWS EC2에 접근하기 위해서는 우선 Key Pairs 가 필요합니다. Key Pair은 EC2를 생성할 때 만들거나 개별 생성이 가능하며 EC2 Launch 시 필수사항으로 매칭이 되어야 정상적으로 가동이 됩니다.

Key Pair 은 pem 파일로 우선 받아 집니다. pem 파일이 있고, ssh 클라이언트가 있으시면 아래와 같이 사용하시면 됩니다.

1. pem 파일를 비공개로 바꿔줍니다.

chmod 400 /path/my-key-pair.pem

2. EC2의 도메인 이름과,  계정정보(amazon-ami:ec2-user / ubuntu:ubuntu)를 함께 입력 하여
ssh 접근을 시도 합니다

ssh -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

하지만 Putty 를 이용하여 접근하고 싶다면, 우선 Putty Gen 이 필요합니다.

1. Putty Gen 다운 받기 (출처 : http://www.chiark.greenend.org.uk)

2. Putty Gen을 다운 받으셨다면, Putty Gen을 이용하여 pem파일을 ppk 파일로 변환시켜 줍니다.  (Load 버튼 클릭 -> Save Private Key) [pem 파일과 동일한 이름 권장]

putty

3. 이제 ppk 파일을  사용하여 putty 로 접근해 보겠습니다.  putty 다운로드

putty2

위 그림 처럼 좌측의 Connection-SSH-Auth를 클릭 하신 뒤   Private key file 옆 Browse를 눌러 방금 만든 ppk 파일을 사용해 줍니다.

4. 마지막으로 접속을 하겠습니다. 다시 좌측의 Session을 클릭하셔서 계정명과 도메인을 입력 후
접속하여 봅니다.

putty3.PNG