Amazon Web Services
運用想定としては
とかなと。その場合構成として単純にawsにマシンを配置する. 複数台なら単純に増やせばいい. 1台を複数人で利用数rか、一人1台にするかはあるかも
研究室の延長線であってほしいのでアプリとデータは同期してほしいとかある. 単純にawsのec2向けのnfsサーバ(Elastic File System,EFS)を用意すれば足りるかな.
アプリの構築はどこかのec2で作ればいいし、研究室からのデータコピーもどこかのec2に任せてEFSを充実させればいいのかと.
上図では4台のec2が働く、そのアクセスはそれぞれ4つのグローバルIPが付与される. Elastic IPを使えばそれぞれ不変の固定IPが振れる.
運用としては
なのかと.
ログインノードを作ってnis/ldap、job管理システムを作るのもありえる.
お金のお話
一応外向けec2を立てるとグローバルIPを渡してくれるけど、そのec2を再起動したらそのグローバルIPは変更される可能性がある
なら固定IPが貰える Elastic IP (EIP) を使えばいい.
0.005 USD/1hour, 0.12 USD/day, 3.6USD/month, 43.8 USD/year
140Yen/1USDなら 年間 6,132 ほど. 1IP アドレス
次に計算ノードとか.
構成によってピンキリの世界. あと「完全従量制」「リザーブドインスタンス」「スポットインスタンス」「Savings Plans」とか料金プランが存在する.
研究室に計算リソースがある程度存在していて、awsの間借りが長くないのなら「完全従量制」かな。
ある程度(この「ある程度」が難しい)長時間、間借りするなら「リザーブドインスタンス」を利用して安く抑えることが可能.
計算の内容が途中で途切れてもいいようなジョブならいっそ「スポットインスタンス」の利用もあり得るかな.
「リザーブドインスタンス」は途中でec2の乗り換えができない. GPU1個を含むec2の「リザーブドインスタンス」を購入したら、その権利はGPU2個のec2には使えない
ec2の構成も留意点で、ログインノードなら SSD じゃなくてHDDで構わないかなとか、スクラッチ領域向けにIOPSが高いSSDを設けたりとか
計算にくべるec2の構成は事前に調整が必要かも。
g4dn.2xlarge (4c/8t, 32G, 225GB, T4(16GB)) *T4(tesla T4)は... GTX 1080位かな... 搭載メモリに違いがあるので何ともだけど
1.015 USD/1hour
24.36 USB/day
730.8 USD/30day
8,891.4 USD/year
リザーブドインスタンスで賄うなら(g4dn.2xlarge)
$5,665.00 (1year)
$11,787.00 (3year)
awsサービスにアカウントを作成すると貰える. クレジットカード番号も同時登録だけど
このアカウントの配下に VPC(Virtual Private Cloud)、EC2(Elastic Compute Cloud)、S3(Simple Storage Service)らが置かれる.
それぞれの使用料金の支払い単位でもある.
*「AWSアカウント」と「ルートユーザ」は同義? ここでいう「ルートユーザ」は作成するEC2ノードのrootという意味ではない
このawsアカウントはmailアドレスとパスワードでログイン可能なのだが、これは「ルートユーザ」ともいいawsの全部の操作を行える
mailとパスワードだけでは不安なので流行のMFA(Multi-Factor Authentication)を設けて安全を図ることが初めの仕事っぽい(二段階認証とか言われるあれ).
定義方法はAWSコンソールの右上AWSアカウント名をクリックして、そのプルダウンメニューから「セキュリティー認証情報」を選択する
表示された項目から下記の「MFAの有効化」ボタンを押下します
次に使用するデバイスを選びます。ここでは「仮想MFAデバイス」を選択しました。
その後は、、、モバイルデバイスにMFAアプリ(ここでは「DuoMobile」)を入れて、ブラウザに表示された
二次元バーコードをそのFMAアプリに読み込ませて表示されるIDをブラウザに打ち込みとかで一応完成。
スクリーンショットはなし
権限はユーザ毎に設けるか、グループに権限を付与して、ユーザを追加する方法
ここでは「ルートユーザ」と同じ権限を持つグループ「chaperone_Administrators」とそれ以外を作る
ユーザ欄には何も登録背させず、権限としてポリシー名「AdministratorAccess」を与える
っで完成すると下図のように一覧になる
AWS Identity and Access Management (IAM)アカウント
awsには2種類のアカウントがある。「AWSアカウント(ルートユーザ)」と「IAMアカウント」。
前段の 「AWSアカウント」は最上位アカウント、なので常にAWSの各種サービスを設定るのではなく、子飼いのアカウントを作ってそれに作業をさせる。
各種操作は最上位権限でさせるのではなく、必要な分の権限を分けて作業させる. オラクルで言う所のGRANT文、windowsでのグループ権限とかでしょうか
作成するIAMアカウント毎に権限を付与してもいいし、IAMロールを作ってそこに権限を設け、該当するIAMアカウントを入れて権限を持たせてもいい.
ただ、、権限の数が多い。EC2を作れるロール、VPCを設定・調整できるロールらを作る? 構築・利用目的に合わせた各種のロールを想定する必要があるみたい
IAMアカウントにも「MFAの有効化」を施せる
他ユーザでaws側を操作するなら誰がいつ何を施したか?の記録はあった方がいいようでまずはそれを作成する