Gazelle
2020年08月19日更新 1169 Views

lightSailでインスタンスを生成してApacheデフォルトページ表示まで

さくらVPS、このはVPS、Indigo等複数のVPSサービスがあるが、それぞれに対して初期設定が若干ずつ異なっている。LightSailの特徴としては

  • 静的public IPアドレスが最初から割り当てられていない
  • Amazon独自のファイアウォールがコンソール上で設定でき、初期の段階ではSSHとHTTPポートしか開けられていない
  • SELinuxが初期状態で有効化されている
  • 初期のタイムゾーン設定がUTC

という点が注意すべき点である。それでは作業を始める。

静的IPのアタッチ

ネットワーキングタブの静的IPの作成ボタンから作成する。
image.png

ファイアウォールの開放

良く使うポートは開放しておく。HTTPSポートの開放は必ず行おう。私の場合は開発で3000ポートと5000ポートは良く使うので空けておいている。ここは人により異なる。最初分からなければ状況に応じて設定すれば良い。
image.png

ブラウザコンソールでユーザ作成

AWSではそこそこ使い勝手の良いブラウザコンソールでSSH接続することができる。これを使って初期ユーザを作成しよう。
image.png

$ sudo su
# useradd yamanaka
# passwd yamanaka
# visudo

visudoでRoot権限を作成したユーザに対して与える。

## Allow root to run any commands anywhere
root    ALL=(ALL)ALL
+ yamanaka ALL=(ALL)      ALL

ブラウザコンソールでは取り敢えずここまでおこなう。全てブラウザコンソールで行ってもよいが、文字がそれほど見やすくない、接続が切れやすいなどの欠点もあるので、Windowsの好きなターミナルでSSH接続を行う。

SSH環境整備

AWSではPrivateKeyをインストールして使うことができるが、接続ユーザがcentosに決まってしまっており、各人がそれぞれのPrivateKeyをもってSSH接続することができない。

そこでPutty Key Generatorを使用してSSHキーペアを作成して、設定を自分で全て行う必要がある。

サーバ側設定

ユーザホームディレクトリまで移動し

$ mkdir .ssh
$ chmod 700 .ssh
$ touch authorized_keys
$ chmod 600 authorized_keys

とする。権限は自分以外の人がkeyを読み込むことができなくするためのセキュリティ設定であり、この設定がない場合はPermission Deniedエラーが発生する。

Putty Key Generatorで作成した公開鍵のテキストをauthorized_keysに張り付けておく。

クライアント側設定

Puttyで接続しないならばopenssh形式でカギをExportする。
ここではaws.ppkとして保存しておく。
image.png

次に~/.sshに移動して、configファイルに下記を記述

Host aws
  HostName xxx.xxx.xxx.xxx
  User yamanaka
  IdentityFile ~/.ssh/aws.ppk

設定をするとあとは

$ ssh aws

とコマンドを打つだけでSSH接続が完了する。

Apache設定

SSHでターミナルに入り、下記コマンドで設定していく

$ sudo yum -y install httpd
$ sudo systemctl enable httpd //再起動時にApacheが起動するようにしておく
$ sudo systemctl start httpd

これで静的IPにアクセスするとApacheにアクセスできる。

AWSではSELinuxがデフォルトで有効になっている。例えばUserDirectoryにアクセスする時には、SELinuxが有効化されているとForbiddenとなりアクセスすることができない。

設定時にハマる可能性が大きいのでSELinuxを無効化するを参照して無効化しておこう。

Timezone設定

グローバルな会社だからか、Timezone設定が標準時となっている。

$ date
Sun Aug  9 16:21:35 UTC 2020

rootユーザになりTimezoneを東京に合わせる

# timedatectl set-timezone Asia/Tokyo
# date
Mon Aug 10 01:23:57 JST 2020

これでLinuxの標準時が日本基準となる。最初気づかなかったが時刻を扱うプログラムを動かしたときに偶然気づいた。
cronを回していたが、こちらもUTCとなっていて、Timezoneを東京に合わせた後も更新されていなかった。よってcrondを再起動

# systemctl restart crond

関連記事

CentOS7環境においてnginxとrails6、PUMAアプリケーションサーバを組み合わせ、RailsアプリケーションをProductionモードで動作させる手順を説明します。
2020年03月15日
さくらVPSでコマンドが何故か重くなった時に、コンソールのCPU使用時間やtopコマンドでのCPU使用率を調査して原因を特定し、不要プロセスを終了させようという話。
2020年04月03日
AWSのVPSであるLightsailを使用したインスタンスのアップグレードが非常に簡単だったため、その方法をまとめた。
2020年08月08日
ApacheでCache-Controlのmax-ageを設定して再訪問時の高速化を図る
2020年08月17日
ホームへ戻る