0. 記事一覧

初心者のためのAWSの使い方① - 初期設定編 -
初心者のためのAWSの使い方② - S3構築編 -
初心者のためのAWSの使い方③ - EC2構築編 -
初心者のためのAWSの使い方④ - Cloud9導入編 -

1. はじめに

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

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

2. 前提

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

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

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


3. 環境

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

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


4. EC2の構築

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

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



EC2インスタンスの作成

インスタンスの作成

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



AMIの選択

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



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

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



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

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



ロールの作成

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



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

以下の通り設定する。

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

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

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

以下の通り設定する。

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

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

タグの追加

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



確認

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

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

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

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



ストレージの追加

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

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

タグの追加

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



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

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

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

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

インスタンス作成の確認

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



キーペアの選択

以下の通りに設定する。

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

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

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

作成ステータス

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



SSH接続

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

接続先の確認

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

接続先の確認

「サービス」を選択し、「EC2」をクリックする。



実行中のインスタンス

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



接続の確認

「接続」をクリックする。



接続方法の確認

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

  • 接続先に「スタンドアロン 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もしくはメールを頂ければ、皆様の気になる月額収入(お給料)の査定をいたします。


筆者について