diadia

興味があることをやってみる。自分のメモを残しておきます。

AWS学習メモ

知識の整理の方法をよく考えたい。

実現したい実装に対して、概念による実装方法があり、具体的な実装方法がある。

具体的な実装方法はコンソールによる具体的な実装方法とteraformによる実装方法である。これらの棲み分けを意識して分けてメモをしていきたい。

EC2のパブリックIPアドレスがほしいときは、ec2インスタンス生成時に"自動割当パブリックIP"という項を有効化しなければならない。デフォルトだと有効可になってないので注意。そしてネットワーク内部で通信するときにはネットワーク・インターフェースという項で自分の好きなプライベートIPを設定する事ができる。

VPC: Virtual Private Cloud

ネットワークの基盤を作るサービス

awsマネジメントコンソールの場合

VPCを作成するときにはVPCサービスから選択してVPCを作成する。

Terraformの場合

resource"aws_vpc"
"example"{
  cidr_block="10.0.0.0/16"
  enable_dns_support=true
  enable_dns_hostnames=true
  
  tags={
    Name="example"
  }
}

VPC内にサブネットを作成するけれども、これはどのようにするか?サブネットはVPCサービスの項目の一つであるので、VPCダッシュボードから作成することになる。サブネット作成時の留意点は、どのVPCと紐付けるかを確認することと、サブネットのCIDRの値を定めることである。

ルーティングの設定

  1. 大きく分けて2つある。インターネットゲートウェイを作成し、それをVPCにアタッチすること。
  2. ルートテーブルを作成し、パブリックサブネットに紐付ける。

インターネットゲートウェイもルートテーブルもVPCダッシュボードの項目の一つとして存在している。各項目を選んで各々作成する運びとなる。

要素 割り当てる、アタッチ対象
サブネット VPC
インターネットゲートウェイ VPC
ルートテーブル サブネット

|セキュリティグループ|EC2インスタンス|

要素 何を設定スべき
VPC ネットワークの構成
サブネット サブネットの領域
ルートテーブル インターネットに接続したい場合はこちらにインターネットゲートウェイの情報を登録する
セキュリティグループ IPとポートを制限しているが、sshやhttp,DBの接続用にポートを開けること考えなければならない。
fdfs vdvd
要素 どう設定するか
ddd df

EBS

EC2のストレージ扱いっぽい。EC2を停止していてもこの部分に関しては課金され続ける。

セキュリティグループ

セキュリティグループってのはファイアウォールに当たる言葉のようだ。

EC2接続方法

macの場合はssh接続を行う。ダウンロードしたキーを使ってssh接続を行う。 注意点はログインユーザー名をec2-userとしてログインを実行する。

chmod 600 ~/Desktop/aws-keypair.pem

ssh -i ~/Desktop/aws-keypair.pem ec2-user@54.245.191.191 -p 22

アパッチのインストール、セッティング

インストール
sudo yum update -y

sudo yum install httpd -y
起動
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd

RDSについて

これもAWSのサービスの一つ。データベース関連のものでpostgresql, mysql, mariadb, oracle, sql server等を使うことができる。 DBをセッティングする方法としてオンプレミス、onEC2 、RDSの3通りが考えられる。onEC2とは、さくらVPCのサーバー上にDBをインストールさせるのと同じようにEC2インスタンス上にDBを設けることだ。

RDSを始める

まずRDSは可用性を高めるためにサブネットを2つ準備しなくてはならない。したがって、VPCのメニューからサブネットを2つ作成する。 次にRDSに接続するためのセキュリティグループをRDS作成時に求められる。これも作成しなければならない。 あとwebサーバーとDBサーバーを分ける場合にはRDSに接続するためにwebサーバー側にDBのクライアントをインストールする必要がある。

またRDSもEC2と同様従量課金制なので使用しないときはRDSを停止することが望ましい。
[速報] RDSインスタンスの起動/停止 | Developers.IO

MYSQL

インストール

sudo yum -y install mysql

接続

mysql -h (endpoint: RDSに書いてある) -u (username: RDS作成時に定めた値) -p

このあとパスワードを入力して認証されれば、RDSに接続できたことになる。 またssh接続する事はできない。

ユーザー作成

CREATE USER '(ユーザー名)'@'%' IDENTIFIED BY 'password';

作成したユーザーにDBへの権限を付与する

GRANT ALL ON (DB名).*  TO '(ユーザー名)'@'%';

与えた権限を反映させる

FLUSH PRIVILEGES;
SELECT user, host FROM mysql.user;

terraformのリソースタイプ(確認している限り)

  1. resource"aws_instance"
  2. resource"aws_security_group"
  3. resource"aws_vpc"
  4. resource"aws_subnet"
  5. resource"aws_internet_gateway"
  6. resource"aws_route_table"
  7. resource"aws_route"
  8. resource"aws_route_table_association"
  9. resource"aws_eip"

RDSについて

料金の請求はRDSインスタンスを削除していても請求されることがあるから注意。必ず削除したRDSに関連したスナップショットも削除すること。これで請求されなくなる。