ぽれいんのブログ

エンジニアになるために覚えたことを日記に付けます。

zabbixの構築

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

↑↑まだ見ていない方はこちらから↑↑

<参考>

Mr. Park 痕跡: Amazon Linux2 Zabbix 5.0 インストール

Amazon Linux2で、Zabbix5.0を構築してみた - Qiita

 

 

 

 

本日のやりたいこと

今回はオープンソフトウェアであるzabbixをつかってシステムの監視を行う環境の構築を行いたいと思います。

使用する環境

zabbix5.0インストールの手順書

タイムゾーンの修正

timedatectl set-timezone Asia/Tokyo

Zabbix5.0のリポジトリをインストール

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yumのキャッシュクリア

yum clean all

Zabbixをインストールする上で必要なパッケージをインストール

rpm -Uvh http://mirror.centos.org/altarch/7/extras/aarch64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

rpm -Uvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm

Zabbix5.0をインストール

yum install -y zabbix-server-mysql zabbix-agent
yum install -y mariadb mariadb-server

zabbix.repo 手動修正

vi /etc/yum.repos.d/zabbix.repo

#下記を編集
------------------ここから-----------------------
[zabbix-fronted]

enable=1

------------------ここまで----------------------

 MariaDBを起動

mysql -u root -p

mysql_sequre_installationにて設定したパスワードを入力。

 Webインターフェースをインストール

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

 ユーザ・データベース等の作成

・zabbixというDBを作成
MariaDB [(none)]>
create database zabbix character set utf8 collate utf8_bin;
・DB[zabbix]にアクセスするユーザzabbixを作成(by'DBパスワード')
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
ここでのパスワードを後に使用。
MariaDB [(none)]> quit;

データベースにZabbix用のデータを流し込む

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
実行すると以下が表示される
Enter password:
ここでのパスワードは[DBパスワード]
よって、   zabbix と入力しEnter。

 

amazon linux2の時刻を修正

timedatectl set-timezone Asia/Tokyo

Zabbix側のタイムゾーンを変更

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

#下記を末尾に追記
---------------------------------------------
php_value[date.timezone] = Asia/Tokyo
---------------------------------------------

データベースの接続情報を記載

cd /etc/zabbix/
vi zabbix_server.conf

#下記を編集
---------------------------------------------
DBPassword=zabbix
---------------------------------------------

起動、自動起動有効

systemctl start zabbix-server
systemctl start zabbix-agent
systemctl start rh-php72-php-fpm
systemctl start httpd
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl enable mariadb
systemctl enable httpd
systemctl enable rh-php72-php-fpm

 ブラウザよりアクセス

<URL>

http://[パブリックDNS]/zabbix

でアクセスし、以下画面が出れば成功!!

 

f:id:porain:20210816193813p:plain

zabbixインストール完了画面

 

 <補足>

・zabbix完了画面が出なくて 404Not Found と表示される場合。

参考:

ZABBIXのインストールメモ - 何でも屋さんの備忘録

以下を試してみてください。自分は解消されました!!

1.パーミッション変更
chmod 777 /etc/zabbix

2.Apacheの再起動
systemctl restart httpd

 以上

通信の暗号化

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

<参考>

ApacheでSSL(TLS)を有効化する方法 - Qiita

httpsとは?httpとの違いとSSL暗号化通信の仕組み

 

通信の暗号化

今まではhttpプロトコルを使って通信を行っていました。この「http」通信は通常の平文で通信を行っているため、プライバシーも何もない通信となっています。http通信において個人情報を入力するのは流出につながるため絶対に行ってはいけません。そこでhttp通信を暗号化する「https」という通信を基本的にweb上では見かけると思います。「https」通信はSSL/TLSプロトコルを利用した暗号化通信が行われています。

使用環境

暗号化の手順

今回のブログではhttp通信をhttps化する手順を備忘録として残します。

 

 

rootユーザになる

sudo su -

SSLTLS)化を有効にするためのモジュールをインストール

yum install openssl
yum install mod_ssl

作業用フォルダに移動

cd /etc/pki/tls/certs/

秘密鍵の作成

openssl genrsa > server.key

...Generating RSA private key, 2048 bit long modulus....+++
と表示されれば成功

公開鍵の作成

openssl req -new -key server.key > server.csr

Country Name (2 letter code) [XX]: JP
国名を入力
State or Province Name (full name) []:Tokyo
都道府県名を入力
Locality Name (eg, city) [Default City]:Tama
↑市区町村名を入力
Organization Name (eg, company) [Default Company Ltd]:XXX
↑組織名(会社名)を入力
Organizational Unit Name (eg, section) []:Sales
↑部署名を入力
Common Name (eg, your name or your server's hostname) []:11.1.1.1
IPアドレスを入力
Email Address []:popopo@email.com
↑メールアドレスを入力
A challenge password []:
An optional company name []:
↑今回はオレオレ証明書なので何も入力せずEnter

サーバ証明書の作成

openssl x509 -req -signkey server.key < server.csr > server.crt

↑を実行して先ほど入力した情報が出てくればOK!

秘密鍵のコピー

cp -a server.key ../private/

ssl.confの修正

cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org

vi /etc/httpd/conf.d/ssl.conf

-----------------------------------------------
1.サーバ名の変更

2.証明書のパス
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
           ↓↓
SSLCertificateFile /etc/pki/tls/certs/server.crt
3.秘密鍵のパス
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓↓
SSLCertificateKeyFile /etc/pki/tls/private/server.key

Apache再起動

systemctl restart httpd

以上の作業でhttpsプロトコルが使用できるようになっております。

 

<URL>

https://[パブリックDNS]

 

上記のURLでアクセスすると、接続がプライベートではありません。⚠セキュリティ保護なしという画面が出てくると思います。これは、証明書が自分で発行したオレオレ証明書だからです。しっかりとした機関が発行したものでしたら他のwebサイト同様にアクセスできます。証明書の発行機関は簡単に確認することができます。

URLの鍵マークをクリックし、証明書をクリックすることで

・発行先

・発行者

・有効期間 等

が確認できるので是非確認してみてください~~!!

 

以上 

ブログサイトの構築

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

↑↑まだ見ていない方はこちらから↑↑

 

 

 

 

本日のやりたいこと

今回はAmazonEC2のインスタンス上にブログサイトを構築します。

ブログサイトには「wordpress」というブログ用のソフトウェアを使用します。

使用する環境

qiita.com

 

 

構築の流れ

以下の手順で構築を行います。

----------------------------------------------------------

Apache をインストールする

PHPをインストールする

MariaDBをインストールする

④phpMyAdominをインストールする

WordPressをインストールする

⑥データベースのセットアップ

WordPressの設定

-----------------------------------------------------------

いざ構築!!

Apache をインストールする

rootユーザになる

sudo su -

httpdをインストール

yum install httpd

(yを押下)

Apache自動起動をオンにしてApacheを起動

systemctl enable httpd
systemctl start httpd

 

PHPをインストールする

PHPをインストール

amazon-linux-extras enable php7.3
yum install php php-gd php-mysqlnd php-xmlrpc -y

→Conplete! でインストール完了!

※バージョンは最新のものに適宜置き換えてください。

MariaDBをインストールする

MariaDBをインストール

 yum install mariadb mariadb-server -y

MariaDB自動起動をオンにしMariaDBを起動

 systemctl enable mariadb
systemctl start mariadb

mysql_sequre_installationを実行

 mysql_secure_installation
⑴ Enter current password for root (enter for none):
  データベースのrootユーザのパスワードはまだ設定されてないので
  何も入力せずにenterを押す。
⑵ enter current password for root (enter for none):
  データベースの root ユーザーのパスワードをこれから設定したいので
'Y' と入力して Enter を押す。
⑶ Set root password? [Y/n]
  安全なパスワードを 2回入力
  New password:
  Re-enter new password:
  Password updated successfully!
⑷ 以下全部 Y を入力

 

④phpMyAdominをインストールする

※このphpMyAdminをダウンロードする工程は飛ばしても構築は可能です。

急ぎの方は⑤にお進みください。。。

 

phpMyAdminの関連パッケージをインストール

 yum install php-mbstring php-fpm -y

Apacheを再起動

 systemctl restart httpd

カレントディレクトリを/var/www/htmlに移動

 cd /var/www/html

phpMyAdminをダウンロード

 wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

phpMyAdminディレクトリを作成してphpMyAdmin パッケージを展開(解凍)し元のファイルを削除

 mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

rm phpMyAdmin-latest-all-languages.tar.gz
:yを入力

ブラウザよりアクセス 

 <URL>

 http://[パブリックDNS]/phpMyAdmin

 

f:id:porain:20210810174300p:plainユーザ名 : root

パスワード: mysql_secure_installation で設定したパスワード

 

を入力して "実行" ボタンをクリック

これで、普通SQL文を書いて行うデータの登録や更新といった管理をGUIで感覚的に行うことができるようになります。今回はCUISQL文を書いてデータ登録等を行いますので使いません。

WordPressをインストールする

ホームディレクトリに戻る

cd
pwd

WordPress関連パッケージをダウンロードして展開(解凍)

 wget https://wordpress.org/latest.tar.gz

tar -xzvf latest.tar.gz

⑥データベースのセットアップ

mysqlにログイン

 mysql -u root -p

mysql_sequre_installationにて設定したパスワードを入力

データベースのユーザーとパスワードを作成
CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';

※your_strong_passwordはご自身で考えたパスワードをご使用ください。

データベースを作成
CREATE DATABASE `wordpress-db`;

データベースに対して、さきほど作成した wordpress-user ユーザーの権限を追加

GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";

すべての変更を有効にするため、データベース権限をフラッシュ

FLUSH PRIVILEGES;

mysql クライアントを終了

Ctrl+DでExit

WordPressの設定

ホームディレクトリに戻る

 cd
pwd

WordPressの設定ファイルを変更する前にバックアップを作成

 cp wordpress/wp-config-sample.php wordpress/wp-config.php

設定ファイルを編集

 vi wordpress/wp-config.php
以下を変更
-----------------------------------------
define( 'DB_NAME', 'database_name_here' );

define( 'DB_NAME', 'wordpress-db' );
に変更
define( 'DB_USER', 'username_here' );

define( 'DB_USER', 'wordpress-user');
に変更
define( 'DB_PASSWORD', 'password_here' );

define( 'DB_PASSWORD', 'your_strong_password');
に変更
--------------------------------------------

 ※your_strong_passwordはご自身で設定したパスワード。

Wordpressファイルの配置

Wordpressディレクトリを/var/ww/html/blog/ディレクトリにコピー

 mkdir /var/www/html/blog
cp -r wordpress/* /var/www/html/blog/

httpd.confのバックアップを作成し、#を排除

cd /etc/httpd/conf
mv httpd.conf httpd.conf.org
grep -v -e '^#' -e ' #' httpd.conf.org > httpd.conf

ホームディレクトリに戻る

cd
pwd

httpd.confを修正

vi /etc/httpd/conf/httpd.conf
以下を変更
-----------------------------------------
<Directory "/var/www/html">
 Options Indexes FollowSymLinks

 AllowOverride None AllowOverride All

 Require all granted
</Directory>
-----------------------------------------

Apacheによるファイル書き込みの許可

 sudo chown -R apache /var/www
sudo chgrp -R apache /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;

Apacheの再起動

 sudo systemctl restart httpd
ブラウザよりWordPressをインストール

<URL>
http://[パブリックDNS]/blog/wp-admin/install.php

 

<補足>

#エラーが発生する場合

<URL>

http://[パブリックDNS]/blog/wp-admin/install.php

を表示しようとしてもエラーが出る場合は、⑦の設定ファイルに誤りがある可能性があるので確認してみてください。

もし、誤りがみつかった場合は変更を保存した後に以下コマンドより、⑦で行ったコピー元にも反映させてください。

cp wordpress/wp-config.php /var/www/html/blog/wp-config.php

yを押下でコピーを承諾

 

以上

EC2でknowledgeアプリを構築する ②

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

前回の記事:

porain.hatenablog.com

javaアプリの配備

配備場所のディレクトリ作成

cd /usr/local/tomcat/webapps
mkdir knowledge
cd knowledge/

アプリケーションのダウンロード

wget https://github.com/support-project/knowledge/releases/download/v1.13.1/knowledge.war

ダウンロードしたファイルの解凍

jar xf knowledge.war

不要ファイルの削除

rm knowledge.war

アプリケーションの権限変更

cd ../
chown -R tomcat:tomcat knowledge

Tomcatの再起動

systemctl restart tomcat

http://グローバルIP/knowledge/open.knowledge/list

 

PostgreSQLの構築

yumでインストール

yum install postgresql-server postgresql-devel postgresql-contrib

postgresql-setup initdb

接続許可設定

vi /var/lib/pgsql/data/pg_hba.conf
下記のident部分をtrustに書き換える
--------------------------------------
local all all ident
host all all 127.0.0.1/32 ident
↓↓
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
--------------------------------------

自動有効化と起動

systemctl enable postgresql.service
systemctl start postgresql.service

ユーザー、DB、作成

su - postgres
psql


ユーザ作成

CREATE ROLE knowledge_user LOGIN PASSWORD 'knowledge_user';

権限付与

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO knowledge_user;

データベース作成

CREATE DATABASE knowledge_db OWNER knowledge_user;

psqlから抜ける

\q

\は¥に置き換えてください。

動作確認

アクセス

http://グローバルIP:8080/knowledge

EC2でknowledgeアプリを構築する ①

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

<前回の記事>

porain.hatenablog.com

↑↑まだ見ていない方はこちらから↑↑

 

 

 

 

本日のゴール

本日する作業のイメージ図です。

f:id:porain:20210729175645p:plain

イメージ

サーバにログイン/rootにスイッチ

rootユーザになる。

sudo su -

/optに移動。

cd /opt

JDKインストール

JDKをダウンロードする

wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz

※バージョンは最新のものに置き換えてください。

解凍する

tar zxf amazon-corretto-8-x64-linux-jdk.tar.gz

javaへのパスが通るようにする

vi /root/.bash_profile
以下のように変更
--------------------ここから------------------------------
変更前
PATH=$PATH:$HOME/bin
変更後
PATH=$PATH:$HOME/bin:/opt/amazon-corretto-8.302.08.1-linux-x64/bin
--------------------ここまで------------------------------

バージョンは最新のものに置き換えてください。(ls で確認)

修正したbash_profileをソースコマンドで再読み込みする

. /root/.bash_profile

Tomcatインストール

javaバージョン

java -version

-bash: java: command not foundと表示される場合、Javaが入っていないのでダウンロードする

yum install -y java-1.8.0-openjdk-devel.x86_64

バージョンは最新のものに置き換えてください。

tomcatユーザを追加する

useradd -s /sbin/nologin tomcat

Tomcatをダウンロードする

wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz

解凍する

tar zxf apache-tomcat-9.0.50.tar.gz
cd /usr/local
mv /opt/apache-tomcat-9.0.50 ./

所有者とグループをtomcatにする

chown -R tomcat:tomcat apache-tomcat-9.0.50

シンボリックリンクを張る

ln -s apache-tomcat-9.0.50 tomcat

この時点でllコマンドで以下のようになっていればOK!

total 0
drwxr-xr-x 9 tomcat tomcat 220 Jul 29 09:42 apache-tomcat-9.0.50
drwxr-xr-x 2 root root 6 Apr 9 2019 bin
drwxr-xr-x 2 root root 6 Apr 9 2019 etc
drwxr-xr-x 2 root root 6 Apr 9 2019 games
drwxr-xr-x 2 root root 6 Apr 9 2019 include
drwxr-xr-x 2 root root 6 Apr 9 2019 lib
drwxr-xr-x 2 root root 6 Apr 9 2019 lib64
drwxr-xr-x 2 root root 6 Apr 9 2019 libexec
drwxr-xr-x 2 root root 6 Apr 9 2019 sbin
drwxr-xr-x 5 root root 49 Jul 6 17:24 share
drwxr-xr-x 2 root root 6 Apr 9 2019 src
lrwxrwxrwx 1 root root 20 Jul 29 09:42 tomcat -> apache-tomcat-9.0.50

setenvを新規作成する

vi /usr/local/tomcat/bin/setenv.sh
---ここから--------------------------------------
#!/bin/sh
CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/opt/amazon-corretto-8.302.08.1-linux-x64
JAVA_OPTS="-Xms128m -Xmx512m"
---ここまで--------------------------------------

バージョンは最新のものに置き換えてください。

server.xmlを設定する

vi /usr/local/tomcat/conf/server.xml
以下のように変更。(コマンドモードで/unpackで検索できます。)
--------------------------------------------
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
          ↓↓
<Host name="localhost" appBase="webapps"
unpackWARs="false" autoDeploy="false">
--------------------------------------------

tomcat.serviceのパーミッションを変更する

vi /etc/systemd/system/tomcat.service
-----ここから-----------------------------
[Unit]
Description=Apache Tomcat 9
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/usr/local/tomcat/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReStart=/usr/local/tomcat/bin/shutdown.sh;/usr/local/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target
------ここまで----------------------------

パーミッションを変更

chmod 755 /etc/systemd/system/tomcat.service

自動起動を有効化して、tomcatを起動する。

systemctl enable tomcat
systemctl start tomcat

Apacheのインストール

yumhttpdをインストール

yum install  -y httpd

デフォルト設定をorgで保存し、コメントアウト行を削除する

cd /etc/httpd/conf
mv httpd.conf httpd.conf.org
grep -v -e '^#' -e ' #' httpd.conf.org > httpd.conf

※「'     #'」の間にあるのは、半角スペース4つ

proxy設定を追記

vi httpd.conf
一番下に下記を追記
---ここから--------------------------------------
ProxyRequests Off
ProxyPass /knowledge http://127.0.0.1:8080/knowledge
---ここまで--------------------------------------

自動起動を有効化して、httpdを起動する。

systemctl enable httpd
systemctl start httpd

アクセス

http://グローバルIP

以上で、アプリケーションサーバの起動が完了致しました。

長くなりましたので次回の記事で

Javaアプリケーションの配置、SQLの配置を行います!!

 

以下、次回記事のリンク

porain.hatenablog.com

 

 

Apache

はじめに

インフラエンジニア初学者のぽれいんと申します。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

 ↓↓前回の記事↓↓

porain.hatenablog.com

 

 

 

Apache

Apacheとは

Apache HTTP Serverは、Apache Software Foundationで開発された強力な商用オープンソースWebサーバです。

現在のネットワーク環境の確認

 

想定環境

想定環境

Apacheのセットアップ

 パッケージの入手とインストール

LinuxhttpdRPMパッケージがインストールされているかどうかを確認し、インストールされていない場合、”httpd”をインストールします。

yum list installed httpd
yum install httpd

Apacheの起動

Apacheの起動
systemctl start httpd
動作確認

Apacheのサーバプロセスが動作しているか確認します。

ps -efH | grep httpd

以下のコマンドでTCPポート80番Apacheが受付しているかどうか確認します。

netstat -anp | grep httpd
Apacheテストページの表示確認

Windowsのブラウザ(chrome,safari等)を起動して、以下URLを入力します。

http://グローバルIPアドレス//
ログの確認

tailコマンドを実行しログの内容を確認します。

tail /var/log/httpd/access_log
tail /var/log/httpd/error_log

自動起動設定

linux起動時に自動的にApacheが起動するようになっているか以下コマンドで確認します。

chkconfig --list httpd

以下コマンドで自動起動をオンにします。

systemctl enable httpd

Apacheの基本設定

メイン設定ファイルの書式

Apacheのメイン設定ファイルは、/etc/httod/conf/httpd.confとなります。このファイルを編集することで、Apacheの動作を様々に変更することができます。

Apacheの基本ディレクティブ

wwwサーバ管理者のメールアドレス設定(ServerAdmin)

Apacheの設定ファイル/etc/httpd/conf/httod.confをviで開き、以下のServerAdminディレクティブの設定行に移動します。

vi /etc/httpd/conf/httpd.conf
ServerAdminディレクティブの書式
ServerAdmin 管理者のメールアドレス
DocumentRootディレクティブの書式
DocumentRoot ディレクトリパス

デフォルトの設定では、ドキュメントルートは、”var/www/htmlディレクトリになっています。ブラウザから以下のような」要求を送信した場合、wwwサーバは ”/var/www/html/index.html"ファイルをブラウザが要求してきたものとして処理します。

テストファイルによる確認

ドキュメントルート直下にtest.htmlファイルを作成して、ブラウザから以下URLで作成したページの内容が表示されるかどうか確認します。

まず、"vi"コマンドを用いて、test.htmlファイルの新規作成を行います。

vi /var/www/html/test.html
-----------------------------------------------------------------
This is test page.
-----------------------------------------------------------------

テスト用のURLが完了したら、ブラウザのアドレス欄に以下のURLを入力し、テストページが表示されるかどうか確認します。

http://グローバルIPアドレス/test.html

 

AWS ~仮想サーバー/インスタンス編~

はじめに

4月からプログラミングを学んでおります。ポレインと申します。

私事ではございますが、7月からインフラエンジニアとして働くことになりました。

転職する前はプログラミングスクールにて主にHTML、CSSRubyMySQL等について学びました。

※このブログでは自分が後々、見返すことができるようにまとめることを目的としていますが、もし需要があるようでしたら是非ともご覧ください。

7月からインフラエンジニアとしての人生をスタートさせた私ですが、自己学習環境が欲しい!!となりましたので、Amazon EC2を使用することにしました。

インフラの学習環境を整えるには、サーバ本体を買って......ネットワークを構築して.......その他もろもろ設定してうわあああ大変だあ.......ってイメージだったんですが、インターネットで手順を覚えれば簡単にしかも無料でできる(AWSアカウント登録から1年間)と知って驚きました。

そんなAWSを利用したインフラの学習環境の整え方について紹介していきたいと思います。

 

<前回の記事>

porain.hatenablog.com

<参考>

AmazonのAWS EC2とは?はじめての人向けに解説|TECH PLAY Magazine [テックプレイマガジン]

Amazon EC2とは何か?「インスタンス」など関連用語もまとめて解説【保存版】 連載:やさしく学ぶAWS入門|ビジネス+IT

 

 

 

Amazon EC2とは

Amazon EC2Amazon Elastic Cloud)はLinuxWindows等の仮想サーバを作成できるサービスです。利用者は数分でサーバを作成でき、作成後のマシンスペック変更や削除も簡単に実行できます。サービスの利用方法は課金制であり、サーバ上で稼働しているアプリケーションが高負荷となりCPUやメモリが不足した場合は、インスタンスタイプを変更することでスペックの増強が可能です。またデータ量が多くなってディスク容量が不足になった場合もすぐに拡張が可能です。

個人的には手軽にすぐ使えることが一番のメリットかなと思います。(使い始めて3日目で何言うてるねん)orz

使用方法

前提条件:AWSのユーザ登録をしている

AWSのホームページにログインする

【公式】クラウドならアマゾン ウェブ サービス (AWS)

※上のリンクからログインできます。

仮想マシンの起動

左上のサービスを選択

f:id:porain:20210727183407j:plain

aws1

すべてのサービス→コンピューティング→EC2をクリック

(☆をクリックするとお気に入りにすることができて便利です。)

f:id:porain:20210727183522j:plain

aws2

 インスタンス起動 → インスタンス起動

ステップ1:Amazonマシンイメージ(AMI)

無料利用枠はWindowsRedHat,SUSE Linux,Ubuntuなど様々ありますが今回はAmazon Linux 2 AMI (HVM), SSD Volume Type を選択します。

 

f:id:porain:20210727200704j:plain

ステップ2:インスタンスタイプを選択

ここでは使用するアプリケーションに合わせて適切なリソースの組み合わせを選ぶことができます。インスタンスタイプによってさまざまなCPU、メモリ、ストレージ、ネットワークパフォーマンスの組み合わせがあります。

今回は無料で利用できるインスタンスタイプ:t2.microを選択します。

 

f:id:porain:20210727200722j:plain

ステップ3:インスタンスの詳細設定

要件に合わせてインスタンスを設定します。

今回は学習環境を整えるのみなので何も変更せずに次のステップへ進みます。

 

f:id:porain:20210727200731j:plain

ステップ4:ストレージの追加

インスタンスに追加の EBS ボリュームやインスタンスストアボリュームをアタッチするか、ルートボリュームの設定を編集することができます。

こちらも何も変更せずに次のステップへ進みます。

 

f:id:porain:20210727200746j:plain

ステップ5:タグの追加

タグを定義することでルールを追加することができます。

今回はキー:Name と 値:test というタグを追加します。

f:id:porain:20210727200805j:plain

タグについてはこちらのサイトで詳しく書かれていたので是非ご覧ください。

(丸投げ)

dev.classmethod.jp

ステップ6:セキュリティグループの設定

AWSにおけるファイアウォール環境の設定です。学習環境のため、SSH、HTTP、HTTPSの通信のみ許可します。

f:id:porain:20210727200854j:plain

以下のように設定

タイプ プロトコル ポート範囲 ソース
SSH TCP 22 マイIP
HTTP TCP 80 任意の場所
HTTPS TCP 443 任意の場所

 

セキュリティグループについてはこちらのサイトで詳しく書かれていたので是非ご覧ください。(丸投げ)

avinton.com

※ちなみに説明に日本語が入っている場合、以下のエラーが発生。

Invalid rule description. Valid descriptions are strings less than 256 characters from the following set: a-zA-Z0-9. _-:/()#,@[]+=&;{}!$*

 

ステップ7:インスタンス作成の確認

内容に間違いがないことを確認し、起動をクリック。

 

f:id:porain:20210727200816j:plain

すると以下の画面が出てきます。

f:id:porain:20210727200828j:plain

これはSSH接続をするためのキー(鍵)です。こちらを使ってTera Termにて接続を行うため、ダウンロードした場所が分からないってことがないように気を付けてください。

キーペア名の下に好きな名前を入力し、キーペアのダウンロードをクリック。

そして、インスタンスの作成をクリック。

f:id:porain:20210727200839j:plain

                                   以上