LoginSignup
1
1

More than 1 year has passed since last update.

AWSにEC2, RDS, S3のインスタンスを立ててみた

Posted at

昨年、「AWS 認定ソリューションアーキテクト – アソシエイト」に合格したものの、
実際にAWSに環境構築したりする機会がほとんどないなかったため、
AWS上でWebアプリ環境を構築すべく、EC2、S3、RDSのインスタンスを作成してみました。
無料枠を使えるのもは使うようにしています。

S3にフロントを配置し、EC2にバックエンドのAPIサーバを構築、RDSはデータベースとし、
S3に配置したWebページよりAPIを実行し、データの読み書きを行うWebアプリを想定しています。

その前段階として、それぞれのインスタンスを立ててみました。

EC2

コンソールトップより仮想マシンの起動を選択して始めます。

AMIの選択

Amazon Linux 2 AMI(HVM)を選択します。
無料利用枠のみチェックで無料枠を絞れます。

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

t2.microを選択します。
t2.microのみ無料利用枠の対象のようです。(ラベルが表示されている)
ちなみに、t2.microの性能は次のようです。

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

変更なしです。
なお、VPCはEC2作成時に作成されるようです。
サブネットはアベイラビリティゾーンのデフォルトが設定されます。
自動割り当てパブリックIPはサブネット設定を使用(有効)としました。

ストレージの追加

追加なしです。
初期では汎用SSDが作成されます。

タグの追加

設定なしです。

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

新しいセキュリティグループが作成されます。
なお、0.0.0.0/0にすると全てのIPアドレスからインスタンスにアクセスすることができるので、既知のIPアドレスからのみアクセスできるようにしたほうがいいようです。
ここでは以下を追加しました。
* SSH: 22
* HTTP: 8080
* HTTPS: 8443

インスタンス作成の確認

ここで最終確認できます。
起動ボタンで作成&起動されます。
そのまえに…キーペアの作成ダイアログが表示されます。
既存のキーペアを選択するか、新しいキーペアを作成します。
キーペア名を入力して、キーペアのダウンロードで.pemがダウンロードされます。
インスタンスの作成ボタンを押すとインスタンスの作成が開始されます。

SSH接続

起動したEC2インスタンスは以下のコマンドにてSSH接続できます。

ssh -i [ダウンロードしたキーペア] ec2-user@[IPv4パブリックIP]

実行すると以下のエラーがでました。

Permissions 0644 for '~/.ssh/xxxxx.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

要するに権限をつけすぎと言われるのでchmod 600で所有者だけに権限を与えるようにしました。

RDS

AWSのRDSからデータベースの作成を実行を選択します。

データベースの作成

データベースの作成方法

標準作成を選択を選択します。

エンジンのオプション

今回はPostgresSQLを選択しました。

テンプレート

無料利用枠を選択する(バージョンによっては選べないみたい)

設定

インスタンス識別子: 任意のインスタンス識別子を入力します。(一意である必要あり)
認証情報の設定: DBの認証情報を入力します

DBインスタンスクラス

db.ts.microを選択(バースト可能クラス)を選択しました。

ストレージ

以下を選択しました。
 ストレージタイプ: 汎用SSD
 ストレージ割り当て: 20

接続

以下を選択しました。
 VPC: デフォルト
 サブネットグループ: デフォルト
 パブリックアクセス: なし(VPC内部のEC2のみ)
 VPCセキュリティグループ: EC2で作成したグループを選択

データベース認証

パスワード認証を選択しました。

最後に、データベースの作成をクリックで作成されます。

インバウンドルール追加

セキュリティグループでインバウンドルールを追加します。
 タイプ: PostgresSQL

RDSへの接続

PostgresSQLの場合は、以下にて接続できます。

psql --host=[RDSのエンドポイント] --port=[ポート番号(デフォルト:5432)] --username=[記入した認証情報] --password

S3

AWSのS3にてバケットを作成をクリックして始めます。

一般的な設定

バケット名: 任意のバケット名を入力します(一意である必要あり)
AWSリージョン: リージョンを選択します

オブジェクト所有者

ACL無効を選択しました。
有効にすると他のAWSアカウントがバケット内のオブジェクトの所有者になることができます。

このバケットのブロックパブリックアクセス設定

一旦、パブリックアクセスをすべて ブロックのままとしました。

バケットのバージョニング

無効にしました。

デフォルトの暗号化

サーバ側の暗号化: 無効にしました。

上記でEC2、RDS、S3のインスタンスを作成できました。
Webアプリ構築時に、セキュリティ設定など更新していきたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1