[JAWS-UG 관서여자회] #2ELB+EC2+RDS 제작 EC 사이트~EC-CUBE 콘텐츠 동시편~
10792 단어 JAWS-UG 간사이여자회묵념 학습회AWSJAWS-UG
개시하다
이 기사는 JAWS-UG 간서여자회'첫 여자 응원 기획! 사례에서 배운 목촌&목촌회'입니다.
텍스트 디렉토리1문자 디렉토리의 문자입니다.
본문의 목표
EC-CUBE 설치 및 커뮤니케이션 확인
EC2-CUBE 설치 및 커뮤니케이션 확인까지의 프로세스
구축 절차
1. EC-CUBE 설치
여기를 참조하시오
2. 내용 동기화 설정
EC-CUBE를 적용해 업로드된 콘텐츠를 WEB 서버 2대로 구성하면 업로드 작업이 두 배로 늘어난다.
따라서 업로드된 컨텐트는 자동으로 다른 서버와 동기화되도록 설정됩니다.
rsync와 lsync를 동기화 설정으로 조합합니다.
rsync는 서버 간의 동기화입니다. lsync에서는 폴더 내의 업데이트 (파일의 새로운 업로드와 덮어쓰기 등) 를 감지하고 rsync 명령을 발행하는 것입니다.
이 설정을 사용하면 서버를 양방향으로 동기화할 수 있습니다.
이렇게 되면 어느 쪽이 서버 다운로드 기간에 내용을 업로드했더라도 다운로드한 서버가 시작될 때 동기화 재시도를 할 수 있다.
삭제를 추가 모드로만 설정하기 때문에 동기화 처리를 통해 파일을 삭제하지 않습니다.
현재 프리뷰에서는 오리건만 사용할 수 있지만 EFS라는 공유 드라이브로 NFS를 설치할 수 있는 서비스가 있다.
만약 EFS가 도쿄 지역에서 정식으로 발매된다면, 나는 그것으로 바꾸고 싶다
2.1.WEB 01의 설정
◆ 동기화 사용자 생성
$ sudo su - root
# useradd syncuser
# passwd syncuser
◆동기화 목표 만들기
# vi /etc/rsyncd.conf
-------------------以下を記述-------------------
[root]
path = /var/www/html/eccube/html/user_data
hosts allow = 172.31.0.0/16
read only = false
uid = syncuser
gid = syncuser
-------------------ここまで-------------------
# yum -y install xinetd
# yum -y install gcc
◆ rsync 시동
# /etc/rc.d/init.d/xinetd start
# chkconfig rsync on
◆ lsyncd 설치
# yum -y install libxml2-devel lua-devel lua-static
# export LUA_CFLAGS='-I/usr/include -lm -ldl'
# export LUA_LIBS='/usr/lib64/liblua.a'
# wget https://lsyncd.googlecode.com/files/lsyncd-2.1.5.tar.gz
# tar zxvf lsyncd-2.1.5.tar.gz
# cd lsyncd-2.1.5
# ./configure && make && make install
◆ lsyncd 설정
WEB 02의 Private IP 지정 섹션이 여기에 표시되지 않으므로 적절한 값을 입력한 후 수정합니다.# vi /etc/lsyncd.conf
-------------------以下を記述-------------------
settings {
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1, ←WEB01の場合は「1」
}
sync{
default.rsync,
source="/var/www/html/eccube/html/user_data/",
target="172.31.xx.xx:/var/www/html/eccube/html/user_data/", ←WEB02のPrivate IPを指定。
delete = false,
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
-------------------ここまで-------------------
◆ 키 만들기(비암호문)
# cd /home/syncuser
# su syncuser
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa -N ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/syncuser/.ssh/id_rsa): そのままEnterを押す
Your identification has been saved in /home/syncuser/.ssh/id_rsa.
Your public key has been saved in /home/syncuser/.ssh/id_rsa.pub.
The key fingerprint is:
RSAが表示されます
$ cp id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ cd ../
$ chmod 700 .ssh
◆ sshd 설정 확인
$ sudo su - root
# vi /etc/ssh/sshd_config
AuthorizedKeysFile .ssh/authorized_keys
コメントアウトされていたら、外す
◆ lsyncd 시작 파일 설정
# vi /etc/rc.d/init.d/lsyncd
-------------------以下を記述-------------------
#!/bin/bash
#
# lsyncd
#
# chkconfig: - 99 20
# description: lsyncd auto start script
LSYNC_USER="syncuser"
start() {
su - $LSYNC_USER -c "/usr/local/bin/lsyncd /etc/lsyncd.conf"
}
stop() {
/bin/kill -9 `/sbin/pidof lsyncd`
until [ -z $(/sbin/pidof lsyncd) ]; do :; done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=`pidof lsyncd`
if [ $? -eq 0 ]; then
echo "lsyncd (pid $pid) is running..."
else
echo "lsyncd is not running"
fi
;;
*)
echo "Usage: lsyncd {start|stop|restart|status}"
exit 1
esac
exit $?
-------------------ここまで-------------------
# chmod +x /etc/rc.d/init.d/lsyncd
# chkconfig --add lsyncd
# chkconfig lsyncd on
◆커널 파라미터 설정
# vi /etc/sysctl.conf
以下を一番下に追記
fs.inotify.max_user_watches = 30000
# sysctl -p
◆ FTP 설치
# yum install vsftpd
◆ FTP 설정
※ 동기화를 확인하기 위해 사용하기 때문에 설치가 간단합니다.2 3 4 # vi /etc/vsftpd/vsftpd.conf
ascii_upload_enable=YES ←「#」を消す
ascii_download_enable=YES ←「#」を消す
------以下を追記------
pasv_min_port=65000
pasv_max_port=65010
pasv_address=52.xx.xx.xx ←WEB01のPublic IPアドレスを記入
------ここまで------
# chkconfig vsftpd on
# chkconfig
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service vsftpd start
# chmod go+w /var/www/html/eccube/html/user_data
두 번째 EC2 인스턴스를 시작합니다.
여기를 참조하시오
2.2.WEB 02의 설정
※ 이후 설정은 WEB 02를 제작한 후 진행됩니다!!
◆ lsyncd 설정
WEB 01 측 lsyncd 설정에 WEB 02의 Private IP 주소 설정이 없기 때문에 수정되었습니다.
WEB 01 측면 수정# vi /etc/lsyncd.conf
settings {
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1, ←WEB01の場合は「1」
}
sync{
default.rsync,
source="/var/www/html/eccube/html/user_data/",
target="172.31.xx.xx:/var/www/html/eccube/html/user_data/", ←WEB02のPrivate IPを指定。
delete = false,
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
lsyncd 서비스 재시작#service lsyncd restart
다음 내용이 표시되면 같은 지령을 한 번 더 하세요.Usage:
kill [options] <pid|name> [...]
Options:
-a, --all do not restrict the name-to-pid conversion to processes
with the same uid as the present process
-s, --signal <sig> send specified signal
-q, --queue <sig> use sigqueue(2) rather than kill(2)
-p, --pid print pids without signaling them
-l, --list [=<signal>] list signal names, or convert one to a name
-L, --table list signal names and numbers
-h, --help display this help and exit
-V, --version output version information and exit
For more details see kill(1).
lsync가 시작되었는지 확인하려면 아래 명령을 누르십시오
결과 줄의 맨 오른쪽에 '/usr/local/bin/lsyncd/etc/lsyncd.conf' 라고 표시된 줄이 있으면 시작합니다.# ps aux | grep lsyncd
syncuser 14384 0.0 0.0 9996 864 ? Ss 07:30 0:00 /usr/local/bin/lsyncd /etc/lsyncd.conf
WEB 02 측면 수정# vi /etc/lsyncd.conf
settings {
statusFile = "/tmp/lsyncd.stat",
statusInterval = 2, ←WEB02の場合は「2」に変える
}
sync{
default.rsync,
source="/var/www/html/eccube/html/user_data/",
target="172.31.xx.xx:/var/www/html/eccube/html/user_data/", ←WEB01のPrivate IPを指定
delete = false,
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
lsyncd 서비스 재시작#service lsyncd restart
FTP 설정 수정# vi /etc/vsftpd/vsftpd.conf
pasv_address=52.xx.xx.xx ←WEB02のPublic IPアドレスを記入
# service vsftpd restart
보안 그룹 설정
WEB 서버용 보안 그룹에 다음 설정을 추가합니다.
Type
Protocol
Port Range
Source
SSH
TCP
22
WEB 서버용 보안 그룹
Custom TCP Rule
TCP
21
MyIP
Custom TCP Rule
TCP
65000 - 65010
MyIP
3. 동기화 설정 확인
여기서 다음과 같은 일을 할 수 있는지 확인하세요.
• WEB 01에 전송된 파일과 WEB 02 동기화
• WEB 02에 전송된 파일과 WEB 01 동기화
• 삭제 파일이 동기화되지 않음
3.1.차리다
1. Teraterm으로 WEB 01 및 WEB 02에 로그인합니다.
2. FFFTP를 사용하여 WEB 01 및 WEB 02에 로그인합니다.
호스트 이름 섹션에서 Public IP 주소를 지정하십시오.
3. Teraterm으로/var/www/exe/user 데이터로 이동합니다.$ cd /var/www/html/eccube/html/user_data
$ ls -l ←何もファイルがないことを確認
3.2.구현 확인
1. FFFTP용 WEB 01의/var/www//exe/user데이터에 파일 올리기 (무엇이든지)
2. WEB 01 측 TeraTerm ls-L 을 통해 파일이 업로드되었음을 확인합니다.
3. WEB 02 측의 TeraTerm tals-L이 WEB 01에 올린 파일이 WEB 02와 동기화되었는지 확인합니다.
※ 같은 기간에는 1~2분 정도 걸립니다.
4.WEB 02의/var/www//eccube//sierFFTP로 데이터를 업로드합니다.
5. WEB 02 측면의 TeraTerm을 통해 ls-L로 파일이 업로드되었음을 확인합니다.
6. WEB 01 측의 TeraTerm tals-L이 WEB 02에 올린 파일이 WEB 02와 동기화되었는지 확인합니다.
※ 같은 기간에는 1~2분 정도 걸립니다.
7.WEB 01 측면의 Teraterm 중/var/www//eccube//user데이터에 업로드된 파일을 삭제합니다.$ rm -f ファイル名
8. WEB 02 측 Teraterm에서 WEB 01 측에서 삭제된 파일이 삭제되지 않았는지 확인합니다.
수고하셨습니다.
RDS 제작으로 이동합니다.
여기를 참조하시오
마디!그건 미팅이야!! ↩
아래 URL 참조↩
AWS에서 FTP 서버를 구축할 때 주의해야 할 두 가지 +α http://dev.classmethod.jp/cloud/aws/to-be-aware-of-when-settingup-ftpserver-with-aws/ ↩
vsftp의 설정 절차http://promamo.com/?p=3067↩
Reference
이 문제에 관하여([JAWS-UG 관서여자회] #2ELB+EC2+RDS 제작 EC 사이트~EC-CUBE 콘텐츠 동시편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naotinn74/items/83ccefd08bbea796f359
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sudo su - root
# useradd syncuser
# passwd syncuser
# vi /etc/rsyncd.conf
-------------------以下を記述-------------------
[root]
path = /var/www/html/eccube/html/user_data
hosts allow = 172.31.0.0/16
read only = false
uid = syncuser
gid = syncuser
-------------------ここまで-------------------
# yum -y install xinetd
# yum -y install gcc
# /etc/rc.d/init.d/xinetd start
# chkconfig rsync on
# yum -y install libxml2-devel lua-devel lua-static
# export LUA_CFLAGS='-I/usr/include -lm -ldl'
# export LUA_LIBS='/usr/lib64/liblua.a'
# wget https://lsyncd.googlecode.com/files/lsyncd-2.1.5.tar.gz
# tar zxvf lsyncd-2.1.5.tar.gz
# cd lsyncd-2.1.5
# ./configure && make && make install
# vi /etc/lsyncd.conf
-------------------以下を記述-------------------
settings {
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1, ←WEB01の場合は「1」
}
sync{
default.rsync,
source="/var/www/html/eccube/html/user_data/",
target="172.31.xx.xx:/var/www/html/eccube/html/user_data/", ←WEB02のPrivate IPを指定。
delete = false,
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
-------------------ここまで-------------------
# cd /home/syncuser
# su syncuser
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t rsa -N ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/syncuser/.ssh/id_rsa): そのままEnterを押す
Your identification has been saved in /home/syncuser/.ssh/id_rsa.
Your public key has been saved in /home/syncuser/.ssh/id_rsa.pub.
The key fingerprint is:
RSAが表示されます
$ cp id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ cd ../
$ chmod 700 .ssh
$ sudo su - root
# vi /etc/ssh/sshd_config
AuthorizedKeysFile .ssh/authorized_keys
コメントアウトされていたら、外す
# vi /etc/rc.d/init.d/lsyncd
-------------------以下を記述-------------------
#!/bin/bash
#
# lsyncd
#
# chkconfig: - 99 20
# description: lsyncd auto start script
LSYNC_USER="syncuser"
start() {
su - $LSYNC_USER -c "/usr/local/bin/lsyncd /etc/lsyncd.conf"
}
stop() {
/bin/kill -9 `/sbin/pidof lsyncd`
until [ -z $(/sbin/pidof lsyncd) ]; do :; done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=`pidof lsyncd`
if [ $? -eq 0 ]; then
echo "lsyncd (pid $pid) is running..."
else
echo "lsyncd is not running"
fi
;;
*)
echo "Usage: lsyncd {start|stop|restart|status}"
exit 1
esac
exit $?
-------------------ここまで-------------------
# chmod +x /etc/rc.d/init.d/lsyncd
# chkconfig --add lsyncd
# chkconfig lsyncd on
# vi /etc/sysctl.conf
以下を一番下に追記
fs.inotify.max_user_watches = 30000
# sysctl -p
# yum install vsftpd
# vi /etc/vsftpd/vsftpd.conf
ascii_upload_enable=YES ←「#」を消す
ascii_download_enable=YES ←「#」を消す
------以下を追記------
pasv_min_port=65000
pasv_max_port=65010
pasv_address=52.xx.xx.xx ←WEB01のPublic IPアドレスを記入
------ここまで------
# chkconfig vsftpd on
# chkconfig
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service vsftpd start
# chmod go+w /var/www/html/eccube/html/user_data
# vi /etc/lsyncd.conf
settings {
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1, ←WEB01の場合は「1」
}
sync{
default.rsync,
source="/var/www/html/eccube/html/user_data/",
target="172.31.xx.xx:/var/www/html/eccube/html/user_data/", ←WEB02のPrivate IPを指定。
delete = false,
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
#service lsyncd restart
Usage:
kill [options] <pid|name> [...]
Options:
-a, --all do not restrict the name-to-pid conversion to processes
with the same uid as the present process
-s, --signal <sig> send specified signal
-q, --queue <sig> use sigqueue(2) rather than kill(2)
-p, --pid print pids without signaling them
-l, --list [=<signal>] list signal names, or convert one to a name
-L, --table list signal names and numbers
-h, --help display this help and exit
-V, --version output version information and exit
For more details see kill(1).
# ps aux | grep lsyncd
syncuser 14384 0.0 0.0 9996 864 ? Ss 07:30 0:00 /usr/local/bin/lsyncd /etc/lsyncd.conf
# vi /etc/lsyncd.conf
settings {
statusFile = "/tmp/lsyncd.stat",
statusInterval = 2, ←WEB02の場合は「2」に変える
}
sync{
default.rsync,
source="/var/www/html/eccube/html/user_data/",
target="172.31.xx.xx:/var/www/html/eccube/html/user_data/", ←WEB01のPrivate IPを指定
delete = false,
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
#service lsyncd restart
# vi /etc/vsftpd/vsftpd.conf
pasv_address=52.xx.xx.xx ←WEB02のPublic IPアドレスを記入
# service vsftpd restart
$ cd /var/www/html/eccube/html/user_data
$ ls -l ←何もファイルがないことを確認
$ rm -f ファイル名
Reference
이 문제에 관하여([JAWS-UG 관서여자회] #2ELB+EC2+RDS 제작 EC 사이트~EC-CUBE 콘텐츠 동시편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naotinn74/items/83ccefd08bbea796f359텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)