#author("2021-06-10T09:30:35+00:00","","")
#author("2021-06-10T09:30:53+00:00","","")
[[第1回]]

* 2020年度の内容(古い) [#s150d384]

** AWSハンズオン [#dfdc73e1]
*** 目的 [#kd8c588b]
- AWSのEC2の基本的な操作が出来るようになる
- 今後アプリケーション開発を行う際にデプロイ先となるサーバを構築できるようになる

*** 内容 [#ac893f6a]
- EC2にWebアプリをデプロイできる環境を構築する

*** 手順 [#u0256e75]
- AWSにログイン
-- https://kspiral.signin.aws.amazon.com/console
--- ユーザ名:ks01~ks06
--- パスワード:wikiと同じ
- EC2でt2.microインスタンスを立ち上げる
-- すべてのサービスからEC2を選択
-- 【重要】 リージョンをアジアパシフィック (東京) ap-northeast-1 に変更
-- インスタンス→インスタンスの生成
--  ステップ 1: Amazon マシンイメージ (AMI)
--- Amazon Linux 2 AMI (HVM), SSD Volume Type (x86)
-- ステップ 2: インスタンスタイプの選択
--- t2.micro
-- ステップ 3: インスタンスの詳細の設定
--- 基本的には全てそのままで問題無い
-- ステップ 4: ストレージの追加
--- 標準(8Gib)でとりあえず
-- ステップ 5: タグの追加
--- タブを追加で キー: Name 値:TAROU(自分の名前)
-- ステップ 6: セキュリティグループの設定
--- 新しいセキュリティグループを作成する
--- セキュリティグループ名に名前を含んだ適当なものを 例:SecurityGroup_taro
-- ステップ 7: インスタンス作成の確認
--- 確認したら起動
-- キーペアの作成
--- 新しいキーペの作成→適当な名前
--- 【重要】キーペアは一度作成しダウンロードすると,二度と手に入らないので大事に保管する必要がある
-- インスタンスの作成

- リモート管理
-- SSHによる操作
--- 先ほどダウンロードした鍵を使用 or Webコンソールから利用可能
--- とりあえずログイン画面にも出るように,最新状態にアップデートしよう(管理者の基本)
 $ sudo yum update
-- Amazon Linuxについて
--- CentOS7をベースにAWSを利用する上で必要な様々なコマンド群などを導入済み
--- 標準ユーザとして ec2-user が割り当てられている.(パスワードは未設定.鍵のみでログイン可能)
--- ※NICはVPCのアドレスを持っているのみで,グローバルIPは直接は持っていない.VPNのインターネットゲートウェイを通じグローバルIPで接続可能(標準動作)
--- / 以下に全ての容量を割り当てられている

- Webサーバ構築
-- [[Apache httpd:http://www.apache.org/]]をインストールする.
--- パッケージマネージャ yum を利用する
 $ sudo yum install httpd
-- 起動
--- systemctlを利用し,登録済みサービス(httpd)を起動.登録は上記インストーラの中で自動で行われている
 $ sudo systemctl start httpd
-- 接続確認(つながらない)
--- ブラウザで http://IPアドレス
-- セキュリティグループで80番ポートを開放する
-- 再度接続
--- Test Pageが見えたら成功
-- 公開HTMLの編集
--- /var/www/html 以下にファイルを置く.標準はindex.html
 $ sudo vi /var/www/html/index.html
 viが大変だったら,もちろんnanoとかでも問題ありません

- Webアプリケーションサーバ構築
-- tomcat(と動かすためのJava)のインストール
--- Amazon Linuxのための便利ツールで導入
 $ sudo amazon-linux-extras install tomcat8.5
-- 起動
--- httpdと同様にsystemctlで
 $ sudo systemctl start tomcat
-- セキュリティグループで8080番ポートを開放する
-- 接続確認
--- 標準では何もページが無いので404(page not found)が返ってくる
 http://IPアドレス:8080
-- ※静的ページの配置
--- /usr/share/tomcat/webapps/ 以下に ROOTというディレクトリを作成し,その中にhtmlファイルを置けば公開可能
 $ sudo mkdir /usr/share/tomcat/webapps/ROOT
 $ sudo vi /usr/share/tomcat/webapps/ROOT/index.html
-- ※JDKについて
--- AmazonはJDK11相当OpenJDKディストリビューションとして,[[Amazon Corretto:https://aws.amazon.com/jp/corretto/]]を公開している

- DBサーバ構築
-- LAMP環境のインストール (MariaDB, PHP7)
--- amazon-linux-extrasを利用
 $sudo amazon-linux-extras install lamp-mariadb10.2-php7.2
--- なぜか クライアント機能だけインストールされるのでサーバもインストール.ただし上記をインストールした後で無いと古いものが入る.
 $sudo yum install mariadb-server
-- 起動
--- systemctlを利用
 $ sudo systemctl start mariadb
-- 初期設定
--- 初期設定用スクリプトを実行
 $ sudo mysql_secure_installation
 Enter current password for root (enter for none):  (現在のパスワードは無し)
 Set root password? [Y/n] Y (rootのパスワードを設定する)
 New password: spiral (パスワード)
 Re-enter new password: spiral (パスワード再確認)
 Remove anonymous users? [Y/n] Y (匿名ユーザを削除するか)
 Disallow root login remotely? [Y/n] Y (rootのリモートログインを拒否するか)
 Remove test database and access to it? [Y/n] Y (テスト用データベースを消すか)
 Reload privilege tables now? [Y/n] Y (設定を今有効にするか)
--- デフォルト文字コード指定
 $ sudo vi /etc/my.cnf.d/mariadb-server.cnf
 [mysqld]セクション内に
 character-set-server = utf8
-- 設定を有効化
--- 再起動
 $ sudo systemctl restart mariadb

-- phpMyAdminの導入
--- WebブラウザからDBを操作することが出来るようになるPHPで書かれたWebアプリケーション
--- httpd上に配備することで利用できる
--- 事前準備:必要なライブラリのインストール
 $ sudo yum install php-mbstring
--- httpd再起動
 $ sudo systemctl restart httpd
--- php-fpm再起動
 $ sudo systemctl restart php-fpm
--- phpmyadminのダウンロード
 $ wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
--- 展開
 $ sudo tar xvf phpMyAdmin-latest-all-languages.tar.gz -C /var/www/html/
--- リネーム
 $ sudo mv /var/www/html/phpMyAdmin-5.0.2-all-languages /var/www/html/phpMyAdmin
--- テンポラリディレクトリの作成
 $ sudo mkdir /var/www/html/phpMyAdmin/tmp
 $ sudo chown apache:apache /var/www/html/phpMyAdmin/tmp
--- 動作確認
 http://IPアドレス/phpMyAdmin/



- Webアプリケーション公開
-- とりあえず試しにサンプルのWebアプリケーションをデプロイしてみる
--- warファイルを/usr/share/tomcat/webapps/ に置くだけ
--- 中村先生作,なんちゃって5ch:Gohchan
--- https://github.com/KobeSpiral2020/AWS_HandsOn/blob/master/cs27ch.war をブラウザからダウンロード
-- サーバへ転送
--- scp系ツールを利用 とりあえずホームディレクトリなどに(webapps以下においてもエラーで動かない)
-- データベース準備
--- Database作成 cs27ch
 新規作成 → データベース名:cs27ch
--- Userの作成 spiral/spiral
 特権 → ユーザアカウントを追加する
 ユーザ名:spiral
 パスワード:spiral
--- アクセス権限の設定
-- デプロイ
--- warファイルをwebapps以下に移動
 $ sudo mv cs27ch.war /usr/share/tomcat/webapps/
--- 動作確認
 http://IPアドレス:8080/cs27ch/

- EC2インスタンスの停止
-- AWSマネジメントコンソール
--- インスタンス→インスタンスの状態→停止(もしくは終了)
--- ※ec2インスタンスは終了すると消えてしまう(再利用不可)

- ※自動起動
 systemctl enable サービス名

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS