###### tags:`AWS`,`VPC`,`EC2` # カスタムVPC〜EC2インスタンスの作成 --- ### ◆ VPCの新規作成 1. VPCの作成をクリック 2. 以下を入力 名前タグ: 任意の名前 ==IPV4 CIDRブロック==: 最小「24」〜最大「16」 。==**10.0.0.0/16**で設定== IPV6 CIDRブロック: AWSが提供するIPV6。CIDR「/56」固定。==未使用== ==テナンシー==: ==デフォルト== 3. ネットワークを作成したら以下を設定 DHCPオプション:==AWS標準== DNS解決:==はい== DNSホスト名:==はい== パブリックDNSを使用する為。 ### ◆ サブネットの作成 1. ==VPC==→==サブネット==→==サブネットの作成== 2. 以下を設定   名前タグ: 任意   VPC: サブネットを割り当てるVPC   AZ: サブネットを作成するアベイラビリティゾーン   ==IPV4 CIDRブロック==: サブネットを割り当てるネットワーク範囲。**10.0.0.0/24**で設定。==ELBを設定する場合は「/28」の16アドレスで作成すると必要なIPアドレスが足らなくなります(20IPアドレスの空きが必要)== ### ◆ ルートテーブルの作成 1. ==VPC==→==ルートテーブル==→==ルートテーブルの作成== 2. 以下を設定し作成をクリック   名前タグ: 任意   VPC: ルートテーブルを割り当てるVPC 3. サブネットとルートテーブルを関連付ける   作成したルートテーブルで==サブネットの関連付け==タブを選択し==編集==。チェックをつけて==保存== **※関連付けを明示的に行わないと新しく作成したルートテーブルに自動的に関連付けられてしまう為、「メインルートテーブルの変更により通信ができなくなる」等の原因になります。** ### ◆ インターネットゲートウェイの作成 1. ==VPC==→==インターネットゲートウェイ==→==インターネットゲートウェイの作成== 2. ==名前タグ== を設定し作成 3. 作成したIGWを右クリックし==attached==に変更する 4. ルートテーブルにIGWを関連づける ==ルートテーブル==の==ルート==を編集し==追加==をクリック。デフォルトルートを追加、ターゲットを作成したIGWにし保存 ### ◆ EC2インスタンスの作成 #### 1. キーペアの作成 ==EC2ダッシュボード==→==キーペア==→==作成==→==保存(重要:盗まれたり無くしてしまう事がないように)== 既存の鍵を使用する場合はインポートすればOK #### 2. セキュリティグループを作成 ==EC2ダッシュボード==→==セキュリティグループ==→==作成==を選択 * Webサーバ用の設定 Nameタグは任意の名前:例)Web-DMZなど タイプ: SSH(22)、プロトコル:TCP、ソース(自身のグローバルIP) タイプ: HTTP(80)、プロトコル:TCP、ソース(0.0.0.0/0) * DB用の設定 Nameタグは任意の名前:例)Web-DBなど タイプ:mysql(3306)、プロトコル:TCP、ソース(webサーバ用DMZのグループID)   #### 3. EC2起動       Ⅰ) カスタムVPC、サブネット、セキュリティグループを紐付け Ⅱ) ==パブリックIP==は「自動割り当て」 → EC2で利用できるグローバルIPは2種類あり上記の==パブリックIP==ともう1つが==ElasticIP==。 「パブリックIP」・・・ EC2の起動/停止の度に変更 「ElasticIP」・・・ 常に固定のグローバルIP(==有料==,個人的に使っているだけです) 詳細は [ElasticIPの利用](https://hackmd.io/V0GkxVpzQoqfoQlk_Q9Itg)を参照。 Ⅲ) キーペアは先ほど作成した物を割り当てる #### 4. sshでEC2へ接続 【MACの場合】 ターミナルを起動し.sshディレクトリ配下にconfigファイル作成で簡単接続可能 #### 5. 基本初期設定 * **yum update** ==sudo yum update -y== * **rootユーザパスワード設定** ==sudo passwd root== → 【パスワード入力】 * **locale** ==sudo localectl set-locale LANG=ja_JP.UTF8== * **システム日付/Local Time** ==sudo timedatectl set-timezone Asia/Tokyo== * **開発ツールインストール** ==sudo yum groupinstall -y "Development tools"== #### 6. EC2の初期設定 【webサーバ関連】 ##### 6−1. **epel/remiリポジトリのインストール&yum update** * パッケージダウンロード sudo wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm * パッケージインストール ==sudo rpm -ivh epel-release-latest-7.noarch.rpm== ==yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm== * リポジトリ(php7.2)有効化 ==sudo yum-config-manager --enable remi-php72== ##### 6-2. Apacheのインストール   ==sudo yum install -y httpd24==   → [httpd.confの詳細設定](https://hackmd.io/5dTdt4t3RfKdCe-ElVFohQ) ##### 6−3. phpのインストール   ==sudo yum install -y httpd24 php72 php72-mysqlnd== 【インストール対象パッケージ例例】 ※自身の環境に合わせてください php72.x86_64 php72-php.x86_64 php72-php-cli.x86_64 php72-php-common.x86_64 php72-php-fpm.x86_64 php72-php-gd.x86_64 php72-php-json.x86_64 php72-php-mbstring.x86_64 php72-php-mysqlnd.x86_64 php72-php-pdo.x86_64 php72-runtime.x86_64 ##### 6−4. php -vの有効化(Link) sudo ln -s /usr/bin/php72 /usr/bin/php ##### 6-5. php.iniの設定 ① /etc/php.iniのバックアップを取る。 ② PHPの設定ファイルをカスタマイズする Wordpressバージョンやphpんpバージョンによって以下の内容を適宜変更する。 ==【お作法】upload_max_filesize < post_max_size < memory_limit のサイズ順位を守りましょう。== ```php memory_limit = 128M (メモリ使用量) post_max_size = 40M (送信全体のファイルサイズ) upload_max_filesize = 30M (アップロードファイル1つあたりのMAXサイズ) expose_php = Off (レスポンスヘッダからのPHPバージョン表示を無効化) ``` ##### 6-6. mysqlのインストール mysqlはcommunityからリポジトリをインストール。mysql8はdisableしmysql-5.7パッケージをインストール。 [RDSの設定](https://hackmd.io/2SggeZbrSlG5ALdPMBlZ1A) へ続く