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の値を定めることである。
ルーティングの設定
インターネットゲートウェイもルートテーブルも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のリソースタイプ(確認している限り)
- resource"aws_instance"
- resource"aws_security_group"
- resource"aws_vpc"
- resource"aws_subnet"
- resource"aws_internet_gateway"
- resource"aws_route_table"
- resource"aws_route"
- resource"aws_route_table_association"
- resource"aws_eip"
RDSについて
料金の請求はRDSインスタンスを削除していても請求されることがあるから注意。必ず削除したRDSに関連したスナップショットも削除すること。これで請求されなくなる。