0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】EC2+RDSを使用したRedmine構築(清書版)

Posted at

はじめに

前回の構築手順を再度やり直して、アウトプットとして投稿させていただきます。
【前回の構築URL】

構成概要

リソース 内容
EC2 Redmine アプリケーションサーバ(Amazon Linux 2)
RDS MySQL 8.0(Redmine用データベース)

前提条件

・EC2:Amazon Linux 2 または Ubuntu 20.04(ここでは Amazon Linux 2 で進行)

・RDS:MySQL 8.0

・Redmineバージョン:5.1系推奨

構築手順

ステップ1:EC2の作成と接続
ステップ2:RDSの作成(MySQL)
ステップ3:Ruby・rbenvのインストール
ステップ4:Redmineインストール
ステップ5:Nokogiriのバージョン指定 & Bundle Install
ステップ6:データベース設定
ステップ7:Passenger + Apacheで起動
✅ 動作確認

ステップ1:EC2の作成と接続

1.Amazon Linux 2 を使用してEC2インスタンスを作成

2.セキュリティグループで以下を許可
 ・22(SSH)
 ・80(HTTP)
 ・3306(RDS接続用)

3.SSHでログインし、以下を実行:

sudo yum update -y
sudo yum install -y git gcc gcc-c++ make zlib-devel curl-devel openssl-devel \
    readline-devel libyaml-devel libffi-devel mariadb-devel ImageMagick-devel

redmine1.png

ステップ2:RDSの作成(MySQL)

・RDS画面にて、「データベース作成」

・エンジンの選択 → MySQL(8.0系)

・DBインスタンス識別子、マスターユーザー名/パスワードを設定

・パブリックアクセス:いいえ

・セキュリティグループ:EC2と同じSGまたは3306許可SG

redmine2.png

ステップ3:Ruby・rbenvのインストール

# rbenvとruby-build
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
# 追加で必要なパッケージ
sudo yum install -y gcc gcc-c++ make \
  openssl-devel readline-devel zlib-devel \
  libffi-devel libyaml-devel \
  bzip2 tar git

# Rubyインストール(Redmine推奨:3.2〜3.3系)
rbenv install 3.2.2
rbenv global 3.2.2

# Bundler
gem install bundler

ステップ4:Redmineインストール

sudo mkdir /var/www

# 最新のRedmineをダウンロード(例:5.1)
cd /var/www
sudo git clone https://github.com/redmine/redmine.git -b 5.1-stable redmine
sudo chown ec2-user redmine
cd redmine

ステップ5:Nokogiriのバージョン指定 & Bundle Install
Gemfile内に以下を追記:

gem 'nokogiri', '~> 1.15.7'

その後、以下を実行:

bundle config set --local build.nokogiri --use-system-libraries
bundle install --without development test

ステップ6:データベース設定
MariaDBインストール・DB起動及び初期設定

sudo yum install -y mariadb mariadb-server mariadb-devel
sudo systemctl start mariadb
sudo mysql_secure_installation
cp config/database.yml.example config/database.yml
vi config/database.yml

編集内容

production:
  adapter: mysql2
  database: redmine
  host: [RDSのエンドポイント]
  username: [RDSのユーザー名]
  password: [RDSのパスワード]
  encoding: utf8mb4

ログの出力先設定

# logディレクトリがなければ作成
mkdir -p /var/www/redmine/log

# production.log を作成
touch /var/www/redmine/log/production.log

# アクセス権を設定(Redmineが書き込みできるように)
chmod 664 /var/www/redmine/log/production.log

# 所有権を正しく設定(ec2-user で操作している場合)
chown ec2-user:ec2-user /var/www/redmine/log/production.log

データベース作成

mysql -h <RDSのエンドポイント> -u admin -p
CREATE DATABASE redmine CHARACTER SET utf8mb4;
EXIT;

RAILS_ENV=production bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

ステップ7:Passenger + Apacheで起動
スワップ領域の追加(2GB)

# スワップファイルを作成
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

# スワップファイルを有効化
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 反映確認
swapon -s
free -m

Passenger + Apacheインストール

sudo yum install -y httpd
sudo yum groupinstall -y "Development Tools"
sudo yum install -y curl-devel httpd-devel apr-devel apr-util-devel

gem install passenger
passenger-install-apache2-module

Apache設定1(/etc/httpd/conf.d/passenger.conf)に以下を追記:

LoadModule passenger_module /home/ec2-user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.27/buildout/apache2/mod_passenger.so

<IfModule mod_passenger.c>
  PassengerRoot /home/ec2-user/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/passenger-6.0.27
  PassengerDefaultRuby /home/ec2-user/.rbenv/versions/3.2.2/bin/ruby
</IfModule>


Apache設定2(/etc/httpd/conf.d/redmine.conf)に以下を追記:

<VirtualHost *:80>
  ServerName redmine.local
  DocumentRoot /var/www/redmine/public
  <Directory /var/www/redmine/public>
    Require all granted
    Options -MultiViews
  </Directory>
</VirtualHost>

Apache設定3(/etc/hosts)に以下を追記:

[EC2のIPアドレス]   redmine.local

Apache再起動:

sudo systemctl restart httpd

✅ 動作確認
ブラウザで http://[EC2のパブリックIP] にアクセス

ログインID:admin

パスワード:admin

redmine3.png

おわりに

もう一度、同じ手順でやり直してみても、上手くいかない部分が発生して、時間はかかりましたが、各コマンドの意味や設定ファイルの内容についての理解が深まりました。
今後もハンズオンを通して、成長していきたいと思います

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?