Azure VM에 Golang과 MySQL로 백엔드 서비스 만들기

5041 단어 5MySQLWebAPIAzure
Microsoft Azure VM에 MySQL을 넣고 Golang에서 WebAPI 서버를 만들었습니다.
대량 요청은 오지 않고 데이터베이스 용량도 확실히 적다는 요구 사항이었기 때문에 가장 작은 VM을 사용했습니다.

서버 구성


  • 호스트 컴퓨터: Microsoft Azure
  • OS: 우분투 16.04
  • 데이터베이스: MySQL 5.7.13
  • 개발 언어: Golang 1.6.2

  • 서버 구축 절차



    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

    좋은 웹페이지 즐겨찾기