見出し画像

初心者のためのAWSの使い方(3.EC2構築編)

0. 記事一覧

初心者のためのAWSの使い方(1.初期設定編)
初心者のためのAWSの使い方(2.S3構築編)【前の記事】
初心者のためのAWSの使い方(3.EC2構築編)
初心者のためのAWSの使い方(4.Cloud9導入編)

1. はじめに

無料で始められるAWSですが、いざ始めようとすると、「まず何をすれば良いの?」となったりします。
そこで、初期設定・S3・EC2・Cloud9の設定について、まとめた記事を作りました。
1.初期設定編2.S3構築編3.EC2構築編と長編記事ですが、上から下へと手順通り進めていけば、AWS環境が出来るかと思います。
また、4.Cloud9導入編は、お好みでどうぞ。
なお、本記事は「とりあえず、AWS環境を構築したい!」を目的としているため、各設定項目の説明は割愛させてもらってます。

では、3.EC2構築編の開始です!

2. 前提

本記事は、AWS 無料利用枠を利用しています。
本記事の手順を実施するには、以下の記事で設定した環境が必要です。

初心者のためのAWSの使い方(1.初期設定編)
初心者のためのAWSの使い方(2.S3構築編)

本記事の手順を実施するにあたり、以下の知識が必要です。

・ターミナル・SSHクライアントの操作
・linuxコマンド(ls,cd,viなど)

3. 環境

本記事は、以下の環境でAWSを構築しています。

・PC:macOS Mojave 10.14
・ブラウザ:Google Chrome

4. EC2の構築

EC2は、AWSの仮想サーバーです。
本記事の手順に従いEC2の構築を行ってください。

ログインしたら「サービス」をクリックし、「EC2」を選択する。

画像1


EC2インスタンスの作成

・インスタンスの作成

「インスタンスの作成」をクリックする。

画像3


・AMIの選択

「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択する。

画像5


・インスタンスタイプの選択

「t2.micro」を選択し、「次の手順: インスタンスの詳細の設定」をクリックする。

画像7


・インスタンスの詳細の設定

S3を使用する時にEC2から接続できないと不便なので、IAMロールを作成する。
「新しい IAM ロールの作成」をクリックする。

画像9


・ロールの作成

「ロールの作成」をクリックする。

画像11


・信頼されたエンティティの種類を選択

以下の通り設定する。

画像13

・「AWS サービス」を選択する。
・「EC2」を選択する。

「次のステップ: アクセス権限」をクリックする。

・アタッチするアクセス権限ポリシー

以下の通り設定する。

画像15

・ポリシーのフィルタに、「s3」を入力する。
・ポリシーに、「AmazonS3FullAccess」を選択する。

「次のステップ: タグ」をクリックする。

・タグの追加

何も設定せずに、「次のステップ: 確認」をクリックする。

画像17


・確認

「ロール名」を入力し、「ロールの作成」をクリックする。

画像19

「インスタンスの詳細の設定」に戻る。

・インスタンスの詳細の設定(続き)

「IAM ロール」に、先ほど作成した「ロール」を選択し、「次の手順: ストレージの追加」をクリックする。

画像21


・ストレージの追加

「サイズ (GiB)」を入力し、「次の手順: タグの追加」をクリックする。

画像23

※無料枠で使用したい場合は、ボリュームタイプに「汎用SSD(gp2)」を選択し、サイズを「30」GiBにする。

・タグの追加

何も設定せずに、「次の手順: セキュリティグループの設定」をクリックする。

画像25


・セキュリティグループの設定

セキュリティグループを以下の通りに設定する。

画像27

・「セキュリティグループ名」を入力する。
・「説明」を入力する。
・SSHのルールの「ポート範囲」を入力する。
・SSHのルールの「ソース」は、「任意」を選択する。

「確認と作成」をクリックする。

・インスタンス作成の確認

設定内容を確認し、「起動」をクリックする。

画像29


・キーペアの選択

以下の通りに設定する。

画像31

・「新しいキーペアの作成」を選択する。
・「キーペア名」を入力する。

「キーペアのダウンロード」をクリックし、pemを保存する。
※SSH接続で使用するので消さないこと

「インスタンスの作成」をクリックする。

・作成ステータス

「インスタンスの表示」をクリックする。

画像33


SSH接続

EC2への接続方法は、以下となる。

・接続先の確認

EC2へ接続するための接続方法を確認する。

接続先の確認
「サービス」を選択し、「EC2」をクリックする。

画像35


実行中のインスタンス
「実行中のインスタンス」をクリックする。

画像37


接続の確認
「接続」をクリックする。

画像39


接続方法の確認
接続方法の確認は以下となる。

画像41

・接続先に「スタンドアロン SSH クライアント」を選択する。

「例:」のコマンド

ssh -i "{キーペア名}.pem" ec2-user@{パブリックDNS}

が、SSHの接続コマンドとなる。

「閉じる」をクリックする。

・SSHクライントの作業

ターミナルにて、「キーペアの選択」で作成したキーペア(pemファイル)を「.sshフォルダ」に配置する。

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ mv {キーペア名のパス}/{キーペア名}.pem ~/.ssh/{キーペア名}.pem
$ chmod 400 ~/.ssh/{キーペア名}.pem

EC2に接続する。

$ ssh -i "~/.ssh/{キーペア名}.pem" ec2-user@{パブリックDNS}

S3のマウント

EBSだけでは、データの保管容量に不安が残るので、S3を使用する。 goofysを使用し、S3をマウントする。

・SSHでEC2に接続

$ ssh -i "~/.ssh/{キーペア名}.pem" ec2-user@{パブリックDNS}

・Go と FUSE のインストール

$ sudo yum install -y golang fuse

・goofysのバイナリーを取得

$ cd /usr/local/bin
$ sudo wget https://github.com/kahing/goofys/releases/latest/download/goofys
$ sudo chmod 755 goofys

・S3を手動マウント

$ mkdir ~/s3
$ goofys {s3バケット名} ~/s3

・S3を自動マウント

idコマンドで、uid と gid を確認する。

$ id
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user),4(adm),10(wheel),190(systemd-journal)

viコマンドで、fstabを更新する。
uid と gid は、先ほど確認した値に変更すること。

$ sudo vi /etc/fstab
goofys#{バケット名} /home/ec2-user/s3 fuse _netdev,allow_other,--file-mode=0666,--uid=1000,--gid=1000 0 0

df コマンドで、S3がマウントされているか確認する。

$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
devtmpfs         475M     0  475M    0% /dev
tmpfs            492M     0  492M    0% /dev/shm
tmpfs            492M  400K  492M    1% /run
tmpfs            492M     0  492M    0% /sys/fs/cgroup
/dev/xvda1        14G  2.7G   12G   20% /
{バケット名}        1.0P     0  1.0P    0% /home/ec2-user/s3
tmpfs             99M     0   99M    0% /run/user/1000

スワップの確保

無料枠のインスタンスでは、sparkなどのメモリを必要とするアプリケーションの起動が難しい。
スワップを追加し、メモリ不足を回避する。

・SSHでEC2に接続

$ ssh -i "~/.ssh/{キーペア名}.pem" ec2-user@{パブリックDNS}

・スワップの作成

2GBのスワップファイルを作成する。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

viコマンドで、fstabを更新する。

$ sudo vi /etc/fstab
/swapfile none swap sw 0 0

・スワップ頻度の変更

頻繁にスワップされると、動作が重くなるので頻度を変更する。

$ sudo su
# echo 10 | tee /proc/sys/vm/swappiness
# echo vm.swappiness = 10 | tee -a /etc/sysctl.conf

インスタンスの再起動をかけて、スワップが確保されたか確認する。
また、スワップの頻度が、「10」になっているか確認する。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           983M         58M        748M        404K        177M        778M
Swap:          2.0G          0B        2.0G

$ cat /proc/sys/vm/swappiness
10

Docker

必須ではないが、あると便利なので、Dockerのインストールをする。

・SSHでEC2に接続

$ ssh -i "~/.ssh/{キーペア名}.pem" ec2-user@{パブリックDNS}

・Dockerのインストール

$ sudo yum install -y docker

Dockerサービスを起動する。

$ sudo service docker start

5. 終わりに

EC2の構築は、以上です。
これで、仮想サーバーの環境が整いました。
1.初期設定編2.S3構築編3.EC2構築編が完了し、仮想サーバーに大容量外付けディスクが付いた環境が手に入ったかと思います。
次に紹介する「4.Cloud9の導入」は、やらなくても構いませんが、開発を行う人には便利かと思うので紹介します。

6. 引用・参考元

https://aws.amazon.com/jp/

...

筆者は、ITフリーランサーとして開発業務をするかたわら、ハラスメント・薄給・長時間労働に悩むエンジニアのために転職支援をしています。
私と同じフリーランサーになって、給与UP・労働条件の改善・スキルアップを目指してみませんか?
高齢である・転職回数が多い・技術力に自信がない方でも、IT業界の経験が1年半以上あれば、フリーランサーになれますので、心配せずにご連絡ください。
まずは、LINEもしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。

LINE公式でともだち登録

画像43

メールで査定

画像44

筆者について


この記事が気に入ったらサポートをしてみませんか?