#author("2022-08-24T00:47:17+00:00","default:sysosa","sysosa") #author("2022-08-24T00:48:24+00:00","default:sysosa","sysosa") Amazon Web Services 運用想定としては -いつもは研究室の計算機を利用するが、混んでいるときにawsを使う オンプレミスで8割、残りをawsで賄う とかなと。その場合構成として単純にawsにマシンを配置する. 複数台なら単純に増やせばいい. &size(10){1台を複数人で利用数rか、一人1台にするかはあるかも}; &ref(2022y08m23d_080620814.png,nolink,noborder); &ref(2022y08m23d_081308207.png,nolink,noborder); 研究室の延長線であってほしいのでアプリとデータは同期してほしいとかある. 単純にawsのec2向けのnfsサーバ(Elastic File System,EFS)を用意すれば足りるかな. &ref(2022y08m23d_082352728.png,nolink,noborder); アプリの構築はどこかのec2で作ればいいし、研究室からのデータコピーもどこかのec2に任せてEFSを充実させればいいのかと. 上図では4台のec2が働く、そのアクセスはそれぞれ4つのグローバルIPが付与される. Elastic IPを使えばそれぞれ不変の固定IPが振れる. 運用としては -awsコンソールにアクセスして、利用者が使いたいec2を起動させて、sshアクセス、利用する &size(10){コンソールへのアクセスは権限毎に用意して、起動、停止のみの権限でアクセスさせる}; -終わったらコンソールからec2を停止させる なのかと. ログインノードを作ってnis/ldap、job管理システムを作るのもありえる. &ref(2022y08m23d_085413911.png,nolink,noborder); ~ お金のお話 一応外向けec2を立てるとグローバルIPを渡してくれるけど、そのec2を再起動したらそのグローバルIPは変更される可能性がある なら固定IPが貰える Elastic IP (EIP) を使えばいい. #code(nonumber){{ 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の構成は事前に調整が必要かも。 #code(nonumber){{ 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アカウント [#a403a719] awsサービスにアカウントを作成すると貰える. &size(10){クレジットカード番号も同時登録だけど}; このアカウントの配下に VPC(Virtual Private Cloud)、EC2(Elastic Compute Cloud)、S3(Simple Storage Service)らが置かれる. それぞれの使用料金の支払い単位でもある. &color(red){*};&size(10){「AWSアカウント」と「ルートユーザ」は同義? ここでいう「ルートユーザ」は作成するEC2ノードのrootという意味ではない}; このawsアカウントはmailアドレスとパスワードでログイン可能なのだが、これは「&color(magenta){ルートユーザ};」ともいいawsの全部の操作を行える mailとパスワードだけでは不安なので流行のMFA(Multi-Factor Authentication)を設けて安全を図ることが初めの仕事っぽい(二段階認証とか言われるあれ). 定義方法はAWSコンソールの右上AWSアカウント名をクリックして、そのプルダウンメニューから「セキュリティー認証情報」を選択する &ref(2022y08m12d_075507787.png,nolink); 表示された項目から下記の「MFAの有効化」ボタンを押下します &ref(2022y08m12d_075708602.png,nolink); 次に使用するデバイスを選びます。ここでは「仮想MFAデバイス」を選択しました。 &ref(2022y08m12d_080950039.png,nolink); その後は、、、モバイルデバイスにMFAアプリ(&size(10){ここでは「[[DuoMobile>+https://play.google.com/store/apps/details?id=com.duosecurity.duomobile&hl=ja&gl=US]]」};)を入れて、ブラウザに表示された 二次元バーコードをそのFMAアプリに読み込ませて表示されるIDをブラウザに打ち込みとかで一応完成。 &size(10){スクリーンショットはなし}; ***IAMグループ作成 [#xb89d982] 権限はユーザ毎に設けるか、グループに権限を付与して、ユーザを追加する方法 ここでは「&color(magenta){ルートユーザ};」と同じ権限を持つグループ「chaperone_Administrators」とそれ以外を作る &ref(2022y08m17d_132534904.png,nolink); ユーザ欄には何も登録背させず、権限としてポリシー名「AdministratorAccess」を与える &ref(2022y08m17d_132607944.png,nolink); っで完成すると下図のように一覧になる &ref(2022y08m17d_132704152.png,nolink); ***IAMアカウント作成 [#f08531d7] AWS Identity and Access Management (IAM)アカウント awsには2種類のアカウントがある。「AWSアカウント(ルートユーザ)」と「IAMアカウント」。 前段の 「AWSアカウント」は最上位アカウント、なので常にAWSの各種サービスを設定るのではなく、子飼いのアカウントを作ってそれに作業をさせる。 各種操作は最上位権限でさせるのではなく、必要な分の権限を分けて作業させる. &size(10){オラクルで言う所のGRANT文、windowsでのグループ権限とかでしょうか}; 作成するIAMアカウント毎に権限を付与してもいいし、IAMロールを作ってそこに権限を設け、該当するIAMアカウントを入れて権限を持たせてもいい. ただ、、権限の数が多い。EC2を作れるロール、VPCを設定・調整できるロールらを作る? 構築・利用目的に合わせた各種のロールを想定する必要があるみたい IAMアカウントにも「MFAの有効化」を施せる ***監査証跡 [#fa08d92f] 他ユーザでaws側を操作するなら誰がいつ何を施したか?の記録はあった方がいいようでまずはそれを作成する