Amazon LightsailのインスタンスにSonarQubeを立ち上げる

趣味で作っているコードにSonarQubeの静的コード解析を組み込みたいなと思った。 Amazon Lightsailが最近東京リージョンに対応したので、インスタンスを立ち上げてそこにSonarQubeを構築してみることにした。

amazonlightsail.com

Amazon Lightsailを使ってみて

  • AWS定量課金なのに対して、月あたりの定額なので個人利用するときは使い過ぎを心配せずに使える。
  • ただスペックに対してちょっと高めかも?(https://amazonlightsail.com/pricing/)
  • 操作が簡単で、「インスタンスを選ぶ -> keypairをダウンロードする -> スペックを選ぶ -> 名前を付ける」だけで終わる。
  • GUI上からssh可能(セキュリティ上、鍵がなくてもsshできることになるので不安になるが…)
  • 細かい設定ができないので、サービス向きではなさそう。

SonarQubeのインストー

# Java ダウンロード(Java7から8へ)

$ yum install java-1.8.0-openjdk.x86_64
$ alternatives --config java
$ yum install java-1.8.0-openjdk-devel.x86_64

# MySQL ダウンロード

$ yum -y install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
$ yum repolist enabled | grep "mysql.*-community.*"
$ yum info mysql-community-server
$ yum -y install mysql-community-server
$ mysql --version
$ chkconfig mysqld on
$ service mysqld start
$ mysql_secure_installation

# MySQLにDB,User作成

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'xxx';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'xxx';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'xxx';
mysql> exit

# SonarQube インストール

$ wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
$ mv ./sonarqube-6.4.zip /opt/
$ cd /opt/
$ unzip ./sonarqube-6.4.zip
$ ln -s sonarqube-6.4 sonar
$ cd /opt/sonar/conf
$ vim sonar.properties // jdbc設定
$ cd /opt/sonar/bin/linux-x86-64
$ ./sonar.sh start

# Nginx インストール

$ yum install -y nginx
$ vim /etc/nginx/nginx.conf // 9000番ポートへproxy設定