Azure VM에 Golang과 MySQL로 백엔드 서비스 만들기
대량 요청은 오지 않고 데이터베이스 용량도 확실히 적다는 요구 사항이었기 때문에 가장 작은 VM을 사용했습니다.
서버 구성
서버 구축 절차
Azure 화면에서 Virtual Machines > 추가 > 검색 상자에 ubuntu를 입력합니다.
Ubuntu Server 16.04 LTS를 선택합니다.
디스크는 HDD를 선택하고 인증은 암호로 만들었습니다.
머신 사이즈는 「모두 표시」를 클릭해, 가장 작은 「A0 Basic」을 선택.
VM을 만든 후에도 추가할 수 있지만 네트워크 보안 그룹에 FTP 및 HTTP를 허용하는 설정을 추가합니다.
이 설정을 실시하는 순서가 조금 바뀌므로, 낡은 기사를 참고로 하고 있으면 미아가 됩니다.
또한 IP가 동적이면 DNS 레이블 이름을 설정하는 것이 유용합니다.
(SSH 할 때는 항상 DNS 이름으로 연결할 수 있습니다.)
VM이 시작되면 SSH로 연결 확인.
ssh -l [ユーザ名] [DNS名(例 xxxxxx.japaneast.cloudapp.azure.com)]
실행하면 암호를 묻는 메시지가 표시되므로 Enter를 입력합니다.
MySQL 설치
다음 명령으로 설치.
sudo apt-get install mysql-server
문자 코드를 utf-8에 맞추기 위해 설정 파일을 편집.
sudo vi /etc/mysql/my.cnf
(실은 vi 사용할 수 없기 때문에 nano로 했다.)
sudo nano /etc/mysql/my.cnf
그리고, 이하를 추기한다.
[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=INNODB
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
재부팅.
sudo /etc/init.d/mysql restart
연결하여 UTF-8인지 확인.
mysql -u root -p
status;
이후는 Sequel Pro 등의 툴로 SSH 접속하여 이용할 수 있습니다.
vsftpd 설치
FTP용 사용자를 작성.
sudo adduser ftpuser
설치.
sudo apt-get install -y vsftpd
구성 파일을 수정합니다.
sudo nano /etc/vsftpd.conf
다음과 같이 수정.
コメント解除( 書き込み許可 )
write_enable=YES
コメント解除( アスキーモード転送許可 )
ascii_upload_enable=YES
ascii_download_enable=YES
コメント解除( chroot 有効 )
chroot_local_user=YES
コメント解除
chroot_list_enable=YES
コメント解除
chroot_list_file=/etc/vsftpd.chroot_list
コメント解除( ディレクトリごと一括での転送有効 )
ls_recurse_enable=YES
chroot_list를 편집 (새로 만들기)하여 ftpuser를 추가합니다.
sudo nano /etc/vsftpd.chroot_list
다음을 추가합니다.
ftpuser
재부팅.
sudo service vsftpd restart
이후에는 Cyberduck 등의 도구로 연결하여 사용할 수 있습니다.
※SFTP로 접속합니다.
Golang에서 개발 ~ 빌드 ~ 실행
개발은 Visual Studio Code에서 수행되었습니다.
개발 환경의 구축 방법은 여기 의 기사를 참고로 했습니다.
크로스 컴파일을 가능하게하기 위해 다음 명령으로 설치
brew install go --cross-compile-all
실제로 쓴 소스등의 설명은 그 2 로 실시합니다.
구현이 끝나면 컴파일합니다.
Ubuntu 환경에서 실행하기 위한 빌드 명령은 다음과 같습니다.
GOOS=linux GOARCH=amd64 go build main.go
빌드하여 만든 실행 파일을 FTP로 서버에 업합니다.
(여기에서는 예로/usr/local/myproject/bin/에 올립니다.)
업되면 SSH로 접속해 실행 권한을 붙입니다.
cd /usr/local/myproject/bin/
sudo chmod 755 main
실행.
sudo ./main &
정지.
(뒤에서 시작하기 때문에 프로세스를 kill합니다.)
ps aux | grep main
sudo kill -KILL [ps番号]
서버를 재부팅할 때 자동으로 실행하려면 다음과 같이 하십시오.
rc.local 파일을 편집합니다.
sudo nano /etc/rc.local
파일을 열면 exit 0 앞의 행에 다음을 추가합니다.
# By default ……
cd /usr/local/myproject/bin ←この行を追加
sudo ./main & ←この行を追加
exit 0
이것으로 서버의 환경에 대해서는 종료입니다.
Golang 소스 설명을 위해 그 2
Reference
이 문제에 관하여(Azure VM에 Golang과 MySQL로 백엔드 서비스 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naoki_koreeda/items/8d4f001ef6bf76d4510a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ssh -l [ユーザ名] [DNS名(例 xxxxxx.japaneast.cloudapp.azure.com)]
다음 명령으로 설치.
sudo apt-get install mysql-server
문자 코드를 utf-8에 맞추기 위해 설정 파일을 편집.
sudo vi /etc/mysql/my.cnf
(실은 vi 사용할 수 없기 때문에 nano로 했다.)
sudo nano /etc/mysql/my.cnf
그리고, 이하를 추기한다.
[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=INNODB
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
재부팅.
sudo /etc/init.d/mysql restart
연결하여 UTF-8인지 확인.
mysql -u root -p
status;
이후는 Sequel Pro 등의 툴로 SSH 접속하여 이용할 수 있습니다.
vsftpd 설치
FTP용 사용자를 작성.
sudo adduser ftpuser
설치.
sudo apt-get install -y vsftpd
구성 파일을 수정합니다.
sudo nano /etc/vsftpd.conf
다음과 같이 수정.
コメント解除( 書き込み許可 )
write_enable=YES
コメント解除( アスキーモード転送許可 )
ascii_upload_enable=YES
ascii_download_enable=YES
コメント解除( chroot 有効 )
chroot_local_user=YES
コメント解除
chroot_list_enable=YES
コメント解除
chroot_list_file=/etc/vsftpd.chroot_list
コメント解除( ディレクトリごと一括での転送有効 )
ls_recurse_enable=YES
chroot_list를 편집 (새로 만들기)하여 ftpuser를 추가합니다.
sudo nano /etc/vsftpd.chroot_list
다음을 추가합니다.
ftpuser
재부팅.
sudo service vsftpd restart
이후에는 Cyberduck 등의 도구로 연결하여 사용할 수 있습니다.
※SFTP로 접속합니다.
Golang에서 개발 ~ 빌드 ~ 실행
개발은 Visual Studio Code에서 수행되었습니다.
개발 환경의 구축 방법은 여기 의 기사를 참고로 했습니다.
크로스 컴파일을 가능하게하기 위해 다음 명령으로 설치
brew install go --cross-compile-all
실제로 쓴 소스등의 설명은 그 2 로 실시합니다.
구현이 끝나면 컴파일합니다.
Ubuntu 환경에서 실행하기 위한 빌드 명령은 다음과 같습니다.
GOOS=linux GOARCH=amd64 go build main.go
빌드하여 만든 실행 파일을 FTP로 서버에 업합니다.
(여기에서는 예로/usr/local/myproject/bin/에 올립니다.)
업되면 SSH로 접속해 실행 권한을 붙입니다.
cd /usr/local/myproject/bin/
sudo chmod 755 main
실행.
sudo ./main &
정지.
(뒤에서 시작하기 때문에 프로세스를 kill합니다.)
ps aux | grep main
sudo kill -KILL [ps番号]
서버를 재부팅할 때 자동으로 실행하려면 다음과 같이 하십시오.
rc.local 파일을 편집합니다.
sudo nano /etc/rc.local
파일을 열면 exit 0 앞의 행에 다음을 추가합니다.
# By default ……
cd /usr/local/myproject/bin ←この行を追加
sudo ./main & ←この行を追加
exit 0
이것으로 서버의 환경에 대해서는 종료입니다.
Golang 소스 설명을 위해 그 2
Reference
이 문제에 관하여(Azure VM에 Golang과 MySQL로 백엔드 서비스 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naoki_koreeda/items/8d4f001ef6bf76d4510a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo adduser ftpuser
sudo apt-get install -y vsftpd
sudo nano /etc/vsftpd.conf
コメント解除( 書き込み許可 )
write_enable=YES
コメント解除( アスキーモード転送許可 )
ascii_upload_enable=YES
ascii_download_enable=YES
コメント解除( chroot 有効 )
chroot_local_user=YES
コメント解除
chroot_list_enable=YES
コメント解除
chroot_list_file=/etc/vsftpd.chroot_list
コメント解除( ディレクトリごと一括での転送有効 )
ls_recurse_enable=YES
sudo nano /etc/vsftpd.chroot_list
ftpuser
sudo service vsftpd restart
개발은 Visual Studio Code에서 수행되었습니다.
개발 환경의 구축 방법은 여기 의 기사를 참고로 했습니다.
크로스 컴파일을 가능하게하기 위해 다음 명령으로 설치
brew install go --cross-compile-all
실제로 쓴 소스등의 설명은 그 2 로 실시합니다.
구현이 끝나면 컴파일합니다.
Ubuntu 환경에서 실행하기 위한 빌드 명령은 다음과 같습니다.
GOOS=linux GOARCH=amd64 go build main.go
빌드하여 만든 실행 파일을 FTP로 서버에 업합니다.
(여기에서는 예로/usr/local/myproject/bin/에 올립니다.)
업되면 SSH로 접속해 실행 권한을 붙입니다.
cd /usr/local/myproject/bin/
sudo chmod 755 main
실행.
sudo ./main &
정지.
(뒤에서 시작하기 때문에 프로세스를 kill합니다.)
ps aux | grep main
sudo kill -KILL [ps番号]
서버를 재부팅할 때 자동으로 실행하려면 다음과 같이 하십시오.
rc.local 파일을 편집합니다.
sudo nano /etc/rc.local
파일을 열면 exit 0 앞의 행에 다음을 추가합니다.
# By default ……
cd /usr/local/myproject/bin ←この行を追加
sudo ./main & ←この行を追加
exit 0
이것으로 서버의 환경에 대해서는 종료입니다.
Golang 소스 설명을 위해 그 2
Reference
이 문제에 관하여(Azure VM에 Golang과 MySQL로 백엔드 서비스 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naoki_koreeda/items/8d4f001ef6bf76d4510a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)