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