今回はnode.jsの実行環境をOpsWorksを使用して作ってみたいと思います。
AWS OpsWorks stackを作成する
・OpsWorksを選択し、Add your first stack を押下
今回は以下のような構成にします。
-
”Sample Stack” を選択
-
Operating System typeは “Linux”
Create stackを押下すると、下記画像のように「stack を作成するにはIAMロールが必要だよ」と警告文が出てきます。
というわけで、IAMポリシーを作成した後に、IAMロールを作ってしまいましょう。
IAMポリシーとロールを作成する
先ほどの画像に見て頂くと、警告文の右側に “Learn more“というリンクがあります。(https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-servicerole.html )
そのリンクを踏むと、ポリシーのテンプレートが何種類か出てきますので、それをIAMポリシーの作成の際にコピペして使用します。
今回使用するポリシーは以下の通りです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricStatistics",
"ec2:*",
"ecs:*",
"elasticloadbalancing:*",
"iam:GetRolePolicy",
"iam:ListInstanceProfiles",
"iam:ListRoles",
"iam:ListUsers",
"rds:*"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:PassedToService": "ec2.amazonaws.com"
}
}
}
]
}
IAMのページに遷移し、ポリシーを作成を押下後、JSONタブを選択し、上記のポリシーをコピペします。
タグは任意で付け、確認画面で、ポリシーの名前を記入してください。
その後、ポリシーの作成を押下します。
ポリシーの作成が完了したら、続いてOpsworksのロールを作成します
信頼されたエンティティタイプは “AWSのサービス“ を選択し
ユースケースは “他のAWSのサービスのユースケース” の “OpsWorks“ を選択してください
続いて許可ポリシーは、先ほど作成したポリシーを許可してください
最後にロール名を付けたらロールを作成してください。
再度OpsWorksにてスタックの作成を試みる
以下の画像のように、Sample stackの設定が進みます。
全てにチェックマークが入ると、青いボタンが出現するので押下。
My Sample Stackが出来上がりました。
インスタンスを起動させてみます
赤枠内をクリックし、遷移したページでインスタンスを起動させます。
数分経過すると下記の画像のようにオンラインとなります
記載されてある通り、実行環境がnodejsとあります。
下記記事にも記載されているように、Node.jsは “スケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境”です。
(https://nodejs.org/ja/about/)
アプリケーション開発にすぐ取り掛かることができることが分かりました。
ちなみにデフォルトだと、以下のようなサンプルページが表示されました。
もひとつちなみに、EC2にログイン時は、OpsWorksのSummaryについて冒頭に出力されるようになっているようです。
アプリケーションを開発する実行環境は整ったので、この後は、関心のある方は色々やってみてください。
※なお、今回調べてみて分かりましたが、OpsWorksの記事は少なく、触りながら覚えるウェイトが大きいと感じました。