ハンズオン(簡易版): Cloud9 (AWS CLI環境)入門 CloudFormation版

ハンズオン(簡易版): Cloud9 (AWS CLI環境)入門 CloudFormation版

作成者

波田野 裕一

公開日

2021-10-07

更新日

2021-10-29

目的

ブラウザ上でCLIを実行する環境(Cloud9)を構築します。

注釈

CLIハンズオンの実施方法や効果的に行うためのポイントについては、CLIハンズオンガイドをご参照ください。

警告

以下の旧環境リソースがある場合、事前に削除が必要です。

  • VPC: handson-cloud9-vpc

  • IAMグループ: handson-cloud9-group

  • IAMユーザー: handson-cloud9-user

  • IAMロール: handson-cloud9-environment-role

  • インスタンスプロファイル: handson-cloud9-instance-profile

前提

作業権限条件

作業権限条件: 必要な権限

  • AWS(ルート)アカウント

    注釈

    自力で適宜手順の読み替えできる場合は、以下の権限のあるIAMユーザでも実施可能です。

    • AWSCloudShellFullAccess

    • AWSCloudFormationFullAccess

    • IAMFullAccess

    • AmazonVPCFullAccess

作業環境条件

本手順は、以下の環境で行います。

AWS CLI手順については、以下の環境で行います。

AWS CLI環境条件

  • 本手順は、AWS CloudShellでの実施を前提としています。

    注釈

    マネジメントコンソールの画面上の検索窓の右にあるターミナルアイコンをクリックするとCloudShellが起動します。(プロンプトが表示されるまで数十秒程度かかります。)

    CloudShell画面でCtrl + Dキーを押すと環境がリセットされます。

  • 本手順は、AWS CLIのバージョン"2.1.16"以降での実施を前提としています。

    コマンド:

    aws --version
    

    結果(例):

    aws-cli/2.1.16 Python/3.7.10 Linux/4.14.246-187.474.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2

構成

本手順書で構築するAWSリソースの構成は以下の図のようになります。

_images/handson-overview.png

手順全体の構成は以下の通りです。

事前作業 (料金不要部分)

なるべくハンズオン実施の前日までに実施します。

  • rootユーザ(AWSアカウント)で実施します。

  • 「後始末 (料金不要部分)」を行わない限りは1回だけ実施すればOKです。

Cloud9環境の構築 (課金部分)

ハンズオン実施前に実施します。

  • 「事前作業 (料金不要部分)」で作成したIAMユーザで実施します。

  • 12ヶ月の無料利用枠が有効の場合は、いつ実施しても問題ありません。

  • 「6. 後始末 (料金不要部分)」を行わない限りは1回だけ実施すればOKです。

(参考) CLIハンズオンの実施

対象となるハンズオンを実施します。(本手順では概要のみ示します。)

  • 「事前作業 (料金不要部分)」で作成したIAMユーザで実施します。

後始末 (課金部分)

ハンズオン実施後、EC2インスタンス料金の節約のためにEC2インスタンスを停止します。

  • 「事前作業 (料金不要部分)」で作成したIAMユーザで実施します。

  • 長期に渡ってCloud9環境を使わない場合は、EBSストレージ料金(1GBあたり0.12USD/月)を節約するためにCloud9環境を破棄します。

アンケート

この手順についてのアンケートです。是非ご回答ください。

後始末 (料金不要部分)

Cloud9環境の利用予定がなくなった場合に実施します。

  • rootユーザ(AWSアカウント)で実施します。

事前作業 (料金不要部分)

Cloud9環境構築のうち、料金がかからない部分についてハンズオン前日までに構築を行います。

この手順で構築するAWSリソースと順番は以下の図のようになります。

_images/handson_light-aws_service-cloud9-environment-cfn-root.png

事前作業0. AWS(ルート)アカウントでのログイン

事前作業1. Cloud9用環境の構築 (CloudShell & CloudFormation利用)

警告

以下のリソースが既に存在する場合、"事前作業1. CloudFormationスタックの作成 (CloudShell: CAPABILITY_NAMED_IAM: handson-cloud9)の実行に失敗します。

  • VPC: handson-cloud9-vpc

  • IAMグループ: handson-cloud9-group

  • IAMユーザー: handson-cloud9-user

  • IAMロール: handson-cloud9-environment-role

  • インスタンスプロファイル: handson-cloud9-instance-profile

これらのリソースを事前に、CloudShellもしくはマネジメントコンソールで手動で削除してください。

事前作業2. ハンズオン用権限ポリシーの作成 (CloudShell利用)

警告

ハンズオンをスムーズに進めるために、Cloud9環境のEC2インスタンスにIAMポリシーをアタッチやデタッチする権限をIAMユーザに付与します。

強力な権限を与えることになりますので、ご注意ください。

事前作業3. CloudShell環境のディレクトリ削除 (CloudShell利用)

事前作業4. IAMユーザー用ログインURLの確認

  • IAMダッシュボード( https://console.aws.amazon.com/iam/home )にアクセスします。

  • "このアカウントの IAM ユーザーのサインイン URL "のURLを確認します。

    形式:

    https://<AWS ID>もしくは<ユニーク文字列>.signin.aws.amazon.com/console

警告

IAMユーザでログインする場合、このURLで認証する必要があります。

ブックマークもしくはメモしておきましょう。

事前作業5. AWS(ルート)アカウントからのログアウト

  • AWSマネジメントコンソールのメニューバーにある"アカウント名"をクリックします。

  • プルダウンメニューの"サインアウト"をクリックします。

Cloud9環境の構築 (課金部分)

Cloud9環境構築のうち、料金がかかる部分についてハンズオン当日までに構築を行います。

注釈

12ヶ月の無料利用枠が有効の場合は、Linuxインスタンス1ヶ月750時間、EBSストレージ30GB、I/O 200万回の範囲内で料金がかかりません。

この手順で構築するAWSリソースと順番は以下の図のようになります。

_images/handson_light-aws_service-cloud9-environment-cfn-iam.png

0. Cloud9作業ユーザーでのログイン

注釈

ログイン後、パスワードの変更が要求されます。

1. MFAの設定 (CloudShell利用)

注釈

ログイン直後にMFAの設定をする必要があります。 (今回は、MFAの設定後に権限が解放されるようになっています。)

警告

CloudShellはリスタートしてください。("Actions" > "Restart AWS CloudShell") (再ログイン前の環境情報が残っていた場合、権限エラーが出るため。)

Cloud9作業ユーザーのログアウト

  • AWSマネジメントコンソールのメニューバーにある"アカウント名"をクリックします。

  • プルダウンメニューの"サインアウト"をクリックします。

Cloud9作業ユーザーのログイン

2. Cloud9環境の構築 (マネジメントコンソール)

4. Cloud9環境の更新 (Amazon Linux 2環境)

(オプション) yamllintの導入 (Amazon Linux 2環境)

注釈

CloudFormationのハンズオンにおいてのみ必要になります。

(参考) CLIハンズオンの実施

ハンズオンの実施は以下の流れになります。

注釈

実際に必要なポリシーは、各ハンズオンの指示に従ってください。

ハンズオン開始前

ハンズオンに必要なIAMポリシーをインスタンスプロファイル(IAMロール)にアタッチします。

注釈

今回は以下のAWS管理IAMポリシーをアタッチします。

  • ReadOnlyAccess

ハンズオンの実施

注釈

  • ハンズオンを実施します。

    コマンド(例):

    export AWS_DEFAULT_REGION=ap-northeast-1
    

    コマンド(例):

    aws ec2 describe-instances
    

    結果(例):

    {
      "Reservations": [
          {
              "Groups": [],
              "Instances": [
                  {
    
    (以下略)
    

ハンズオン終了後

"ハンズオン開始前"にアタッチしたIAMポリシーをインスタンスプロファイル(IAMロール)からデタッチします。

注釈

Cloud9画面を閉じると、"Cost-saving setting"の設定時間(デフォルト30分)後に、自動的にEC2インスタンスが停止します。

EC2インスタンスの停止によりインスタンス部分の課金が停止します。

EBSストレージについては、EC2インスタンスの起動・停止と関係なく課金が継続します。

後始末 (課金部分)

Cloud9環境構築のうち、料金がかかる部分についてハンズオン終了後に停止もしくは破棄を行います。

1. Cloud9環境の停止・破棄 (課金部分)

Cloud9環境を継続利用する場合

注釈

Cloud9の画面を閉じていない場合、インスタンスが再度起動してきます。

停止前にCloud9の画面が開いていないか、必ず確認してください。

Cloud9環境を破棄する場合

2. Cloud9作業ユーザーからのログアウト

  • AWSマネジメントコンソールのメニューバーにある"アカウント名"をクリックします。

  • プルダウンメニューの"サインアウト"をクリックします。

アンケート

今後の参考にするため、本手順についてご意見・コメントをお願いします。

注釈

  • 必須項目はありません。お気軽にご回答ください。

  • 内容が違えばお一人何回回答していただいても問題ありません。

  • はまりどころや誤字・脱字などの修正のご指摘もお待ちしています。

注釈

このアンケートシステムはS3 + Cognitoで構築しています。

後始末 (料金不要部分)

Cloud9環境構築のうち、料金がかからない部分について利用予定が無い場合は破棄を行います。

事後作業0. AWS(ルート)アカウントでのログイン

事後作業3. Cloud9用環境の破棄 (CloudShell & CloudFormation利用)

事後作業4. AWS(ルート)アカウントからのログアウト

  • AWSマネジメントコンソールのメニューバーにある"アカウント名"をクリックします。

  • プルダウンメニューの"サインアウト"をクリックします。

備考