AWSをいじり倒す(2.EC2)

qiita.com

引き続きこれを参考にしながら作っていく

早速インスタンスの作成

f:id:Messerarche:20200424155953p:plain

 

AMIはAmazon Linux(2行目のやつ)を選択。

1行目のとの違いはサポートの有無?いらんがな。

f:id:Messerarche:20200424160054p:plain

 

今回マシンスペックはどうでもいいのでt2.microをば。

ざっくり、マシンスペックが欲しければコンピューティングの最適化、

解析とか並列処理が必要ならGPUインスタンスを選べば良いみたい。

f:id:Messerarche:20200424160232p:plain

名前のポリシーはこんな感じ(black beltより)

f:id:Messerarche:20200424160455p:plain

「EBS最適化利用」は対策本でキーワードとしてよく聞くけど、どうやらそこそこスペック以上のマシンには全部有効になってるので実運用上はさして気にしなくてもよさげ

 

詳細設定をしていく。

f:id:Messerarche:20200424160943p:plain

 

よくばって3個つくったれ!と思ったらAutoScailingしろよって言われた。

f:id:Messerarche:20200424161224p:plain

これやりだしたら何だか設定が大変そうだったのでいったんスルーして1台構成に

(AutoScalingは後でやる)

 

スポットインスタンスも、無料枠使うので今回はいらないのだが、チェック入れたら色々出てきたのでみてみる

f:id:Messerarche:20200424161417p:plain

最高価格=俺が払うぜって値段を入れるところ

永続的リクエスト=期限切れたら通知が来る

作成グループと有効期限開始は2020/3末にここから設定できなくしますだと(もう4月だけど)

 

ネットワーク設定。VPC(test)でサブネット(test-A)を指定。

パブリックIPを有効に。これで前回のIGW経由で通信できるのね。

f:id:Messerarche:20200424180355p:plain



 

プレイスメントグループなるものの設定。これは対策本にはなかった気がする

f:id:Messerarche:20200424172004p:plain

プレイスメントグループ - Amazon Elastic Compute Cloud

これによると、物理的な場所を指定することで

インスタンス間の通信効率をアップさせたり

逆にあえて厳密に分散させることができるらしい

今回インスタンス1個なので意味はないけどとりあえず分散にしておく。

 

キャパシティーの予約

f:id:Messerarche:20200424172643p:plain

EC2 Capacity Reservation 「Open」と「None」の違い - Qiita

実際にEC2自体は各AZ毎に在庫を持っていますが、東京リージョンでは結構在庫切れに遭遇する事がありました。
特にM4→M5過渡期とか、ap-northeast-1d追加時の別AZとかで顕著だった記憶があります。

だと。へぇ〜・・・要らんな。

 

IAMロールはまだ何もつくってないのでなし。必要になったら付与する

f:id:Messerarche:20200424172952p:plain

 

次、シャットダウン動作とか細かそうなところ

f:id:Messerarche:20200424174645p:plain
CloudWatchってここで有効化できるのか。

後々やろうと思ってはいるけど、取り掛かるのはまだ先なのでいったんなし

テナンシーで共有ハードか専用ハードか選べる。

共有選んだとして、他人の使い方で自分が被害被ることなんてあるのかな。

Elastic Interface アクセラレータは、お安くハード処理を増強してくれるようだ。

よくある質問 - Amazon Elastic Inference | AWS

Amazon Elastic Inference で有効になっている TensorFlow Serving や Apache MXNet、PyTorch のようなディープラーニングツールやフレームワークでは、モデル計算を自動的に検出し、アタッチされたアクセラレーターにオフロードできます。

これは地味に優秀な気が。対応してたらGPUインスタンスは選ばなくてもいいのかも

 

T2/T3無制限はCPUのバースト回数を無制限にできる項目

f:id:Messerarche:20200424174709p:plain

[新機能] Amazon EC2の「T2」ファミリーでT2 無制限(Unlimited)がリリースされました #reinvent | Developers.IO

大変な処理にそもそもt2使うなよって感じだが、一時的だけどその一時が長いみたいな特殊な状況だと安くなることもあるということなんだろう

 

ファイルシステム

f:id:Messerarche:20200424174746p:plain

EFSここで設定するのか!!

しかしセキュリティグループもいじらなきゃならず大変そうなのでこれも後でやる

f:id:Messerarche:20200424175041p:plain

 

ネットワークインターフェイス

f:id:Messerarche:20200424175149p:plain

2個目を軽い気持ちで作ろうとするとめっちゃ怒られる。

f:id:Messerarche:20200424175130p:plain

パブリックIPはNICが1つじゃないとダメらしい・・・。貴重なパブリックIPを2個も3個も無料で使うんじゃないという意味か?

ElasticIPを使えばNIC2枚でもいけたはず。

 

高度な設定

f:id:Messerarche:20200424180127p:plain

まだ私が低度なのでここはスルー

 

ストレージの追加へ

f:id:Messerarche:20200424180502p:plain

 

基本いじるところはない、が

f:id:Messerarche:20200424180557p:plain

これは本に書いてあった。読み書きが激しい時はio1を選べと。

f:id:Messerarche:20200424180850p:plain

2台目からはHDDも選択肢に出てきた。

st1は大容量のデータを読み書きしたいとき。sc1は安い。

マグネティックは誰も使うことを推奨していない(メニューから消していいのでは)

というわけで無駄に2台目を増やした。無駄なので終了時に削除にチェックもいれた。

f:id:Messerarche:20200424181223p:plain

 

タグの追加

f:id:Messerarche:20200424181257p:plain

わかりやすくするためだけの印。

f:id:Messerarche:20200424181357p:plain

キーと値の違いがわからんので適当につけた(後でわかる)

 

セキュリティグループ

f:id:Messerarche:20200424181429p:plain



インバウンド方向の設定のようだ

自宅のIP調べるのめんどいなぁと思ったら、マイIPにすると自動で調べてくれた。便利!

参考にしているサイトでは、後々の構成でELB経由でアクセスすることになるらしいので、HTTP/HTTPSVPCでつくったローカルネットワークも指定(4行目、5行目)

f:id:Messerarche:20200424184527p:plain

 

最後の確認

f:id:Messerarche:20200424181819p:plain

無料ちゃうぞ、とかIPおっぴろげすぎやろ、とか怒られている

うるせー起動じゃ起動!

 

キーペアを指定しろ、とポップアップが出てくる。

f:id:Messerarche:20200424182133p:plain

インスタンスへはこのキーペアを使って認証し、アクセスすることになる。

testでつくってダウンロードしておく。

 

f:id:Messerarche:20200424182255p:plain

 

できた。

f:id:Messerarche:20200424182346p:plain

個人的に、Nameには速攻で何か入れといた方がいいと思う

f:id:Messerarche:20200424182422p:plain

って、いれたらタグのところがこうなった。あー!キーとはそういうことか。

次回からはちゃんとキーにNameを指定しよう。

f:id:Messerarche:20200424182526p:plain

 

 

接続確認

今回割り当てられた パブリックIPはこれ。

f:id:Messerarche:20200424203527p:plain

さっそく手元のPCからpingをうってみる

f:id:Messerarche:20200424203607p:plain

届かない・・・。

たぶんセキュリティグループの追加設定が必要。

f:id:Messerarche:20200424203714p:plain

セキュリティグループの管理から

f:id:Messerarche:20200424204119p:plain

カスタムICMP-IPv4のエコー要求を、マイIPで許可

 

f:id:Messerarche:20200424204200p:plain

通った。

 

しかし、リージョンをオハイオでテストしてるせいか、めちゃくちゃRTTに時間かかるなぁ

 

次はSSHで接続。

ssh ec2-user@{確認したPublic IP} -i {秘密鍵保存ディレクト}/test.pem

f:id:Messerarche:20200424204633p:plain

どちゃくそ怒られた。

お前の鍵openすぎるだろ、と。

前繋いだ時はこんなの言われなかった気がするんだけどなぁ

 

インスタンスへの接続に関するトラブルシューティング - Amazon Elastic Compute Cloud

のUnprotected Private Key Fileの項目が該当だろう。

chmodで権限を変更してリトライ。

f:id:Messerarche:20200424205015p:plain

うまくいった。

 

ELBを使うときにHTTPがいるらしいので、nginxをインストール

sudo yum install -y nginx

sudo /etc/init.d/nginx start

sudo chkconfig nginx on

 

ブラウザにさっきのパブリックIPをいれてみると・・・

f:id:Messerarche:20200424205456p:plain

 

うまく動いている。よしよし

 

進捗

f:id:Messerarche:20200424205910p:plain