- 1. 【JDK インストール】
- 2. 【apache インストール】
- 3. Postgres インストール
- 4. 【VPCの起動とサブネットを構成】
- 4.0.1. VMware Cloud on AWSでFSx for NetApp ONTAPがNFSデータストアとして利用できるようになった!
- 4.0.2. 【Amazon Lightsail】LAMP環境構築チュートリアル③(アプリケーション編)
- 4.0.3. 多分これをやれば受かる!AWS Certified: SAP on AWS – Specialtyに1発で合格した勉強方法
- 4.0.4. AWS ECSハンズオンやってみた
- 4.0.5. GiteaをAWSでなるたけ手抜き運用
- 4.0.6. API Gateway + LambdaのAPIにIAM認証で署名付きリクエストを送る(javascript, typescript)
- 4.0.7. GitHub ActionsからKubernetes(EKS)のJobを実行する
- 4.0.8. git-secretsでコミットができなくなった場合の対処法
- 4.0.9. AWS IoT SiteWiseとAmazon Managed Grafanaの連携は超簡単
- 4.0.10. AWS初心者は必ず読むべき!必見!AWSの基本②(VPC作成)
- 4.0.11. AWSのCloudFormationのCognitoで発生した「Property validation failure: [Encountered unsupported properties in {/AdminCreateUserConfig}: [TemporaryPasswordValidityDays]]」を解消する
- 4.0.12. 【AWS】AWSのReserved Instance (RI)とは?(ElastiCacheのRI購入方法も紹介)
- 4.0.13. SAM Pipelineで、設定ファイルから別々のパラメータを与える方法
[小ネタ] Amplify Studioが起動しない場合の対処
はじめてAmplify Studioを使ってみます。
デプロイ済みのアプリの[Backend environments]から[Studioを起動する]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/c96cf83c-21e8-7dbb-43c1-eb42f655434b.png)
以下のエラーが出て、起動しませんでした。
“`
An error occurred while fetching the app backend: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
“`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/266453df-c166-6aed-7007-5af01aa184f6.png)
以
AWS認定12冠達成したので振り返りと学習コンテンツをまとめてみた
# はじめに
先日、2022年9月現在取得可能なAWS認定12個を全て取得し無事全冠達成できましたので、振り返りとAWS学習に有用なコンテンツをまとめてみました。現在は全冠達成者も多くこの手の記事も増えてきた印象ですが、これからエンジニアとしてのキャリアを踏み出される方やAWS認定取得を目指されている方の参考になれば幸いです。
# 筆者について
・大学・大学院では、画像処理、無線通信のための機械学習応用について研究
・AWS経験は2年程度
・新卒2年目、AWSを活用しモバイル通信向けバックエンドシステムや社内業務支援システムなどの開発業務に従事# AWS認定
AWS認定は、AWSを活用する技術的な専門知識が一定以上あることを証明するAWS公式の認定資格です。各試験は、それぞれのキャリアに必要な技術スキルとクラウドの専門知識が修得できるように設計されており、資格取得を通して効率的かつ体系的にAWSとその周辺知識を学習することができます。2022年9月現在、AWS認定には基礎コース・アソシエイト・プロフェッショナルの3つのレベルからなるアーキテクト・開発者・運用者の役割別認定とセキ
本番環境でFailed to upgrade to WebSocketエラー
### 状況
ローカルでは投稿に対してのコメントができる(ajax)のに、本番環境ではできていなかった。### 原因
本番環境でactioncableが使えない状況だった### 解決方法
“`ruby:EC2内
$ sudo vim /etc/nginx/conf.d/rails.conf
“`
以下を貼り付ける。
“`ruby:/etc/nginx/conf.d/rails.conf
upstream app_server {
server unix:/var/www/アプリケーション名/shared/tmp/sockets/unicorn.sock;
}server {
#省略
# ——————-ここから——————-
# /cableのパスに対してwebsocketの仕組みを用いるための設定
location /cable {
proxy_pass http://app_server/cable;
proxy_http_version 1.1;
proxy_set_header
Zabbix v5.0 でSNMP Trapとポーリング監視設定
今回は以前にEC2(Amazon Linux2)で構築したZabbixでSNMP Trap受信とクライアントをポーリングで監視する設定をしたいと思います。Zabbixの構築の記事は[こちら](https://qiita.com/u-bayashi/items/b7c6a62d8b8e200a34eb)
# SNMP Trapとポーリングについて
やりたいことはクライアントの監視なのですがやり方が大きく2つあります。
1つはSNMP Trapで監視する方法、もう一つはポーリングして監視する方法です。
イメージとしては以下のような感じです。
![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/52963f0f-c7ff-a9f7-2875-4f637b2e3e2f.png)正確ではないかもですが
・何かあった時にクライアントから通知を出してもらい、障害検知 →SNMP Trap
・常時疎通確認しておき、接続断があった時に障害として検知 →ポーリング
というイメージです。#
【AWS】Javaのアプリをデプロイ part2
jarファイルを使用している為かtomcatをインストールしなくてもデプロイして起動する事が
出来ました。【JDK インストール】
//ルートユーザーに変更
「sudo su」
//Java11をインストール
「sudo yum install java-11-amazon-corretto-headless」
//インストール後に確認
「java –version」
「javac –version」【apache インストール】
//apacheをインストール
「yum install -y httpd」
//インストール後にapacheを確認
まずapacheを起動させます。
「systemctl start httpd」
ブラウザにEC2のIPアドレスを入力してapacheのページが
開ければ確認完了。Postgres インストール
//インストール
「sudo yum install -y postgresql postgresql-server postgresql-devel postgresq
AWS Config ルールを CloudFormation StackSets で展開するために、リージョン毎に実装を変える必要があって大変だけど何とかする
一つの組織の中で、複数アカウント×複数リージョンに AWS Config ルールを一括して適用したくなるケースがあるかと思います。CloudFormations StackSets で一括設定と自動デプロイが実現可能ですが、リージョン毎に設定を変えるのは慣れてないと意外と大変です。StackSets でリージョン毎の設定を柔軟に実装するために、Condition句、 DependsOn 句と WaitCondition 機能を組み合わせて CloudFormation テンプレートを定義する方法を紹介します。
_「AWS Control Tower を使えばよいじゃないか」と考えたくなりますよね。でも、自分ではそれを選択できない苦しい立場で実装を考えなければいけない人もいると信じて記事を作成してみました。_
なお、この記事では CloudFormation StackSets, AWS Config の基本的な知識を前提としています。これらの基本から学びたい方は、BlackBelt 等を参考にしていただけると良いかと思います。
* [BlackBelt: AWS CloudFor
【AWS】Javaのアプリをデプロイ part1
今回はAWSの設定の仕方からJavaのアプリ(jarファイル)をデプロイする方法を記述します。
※メモになるので内容は拙いです。【VPCの起動とサブネットを構成】
VPCダッシュボードで「VPCを作成」をクリックします。
・作成するリソースはVPCのみ。
・名前タグは「aws_test」とします。
・CIDRブロックは「10.0.0.0/16」にしておきます。その他の設定はデフォルトです。
![vpc_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/01884a11-85ef-c504-68a6-833035110163.png)
続いてサブネットの構成を行います。
VPC IDは先程作成したVPCを選択して下さい。
![サブネット1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2665680/e3934058-249b-7bfa-a223-b9681afd0d45
VMware Cloud on AWSでFSx for NetApp ONTAPがNFSデータストアとして利用できるようになった!
# はじめに
VMware Explore 2022 にて、 VMware Cloud on AWS (VMC) で Amazon FSx for NetApp ONTAP (FSx for ONTAP) を NFS データストアとして利用できるようになると[アナウンス](https://blogs.vmware.com/cloud/2022/08/30/vmware-cloud-on-aws-whats-new-at-vmware-explore-2022/)がされ、9/21 の[リリースノート](https://docs.vmware.com/en/VMware-Cloud-on-AWS/services/rn/vmware-cloud-on-aws-release-notes/index.html#whats-new-september-21-2022)にて正式に展開が開始されました!
早速 FSx for ONTAP を NFS データストアとして利用してみたいと思います。# 目次
1. [
【Amazon Lightsail】LAMP環境構築チュートリアル③(アプリケーション編)
# 構築作業
[前回の②](https://qiita.com/LingmuSajun/items/73dc0069db3199ab66ff)では、DBの構築まで完了しました。ここからはアプリケーションをデプロイしていきたいと思います。
## 1. Git Clone
– [Amazon Lightsailのホーム画面](https://lightsail.aws.amazon.com/ls/webapp/home/instances)にアクセスし、「LAMP_TEST」インスタンスにSSH接続します。
![スクリーンショット 2022-09-11 20.05.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304307/6d600bca-9d93-f5f8-db3b-9f4da4c6406b.png)
– SSHクライアントのWindow上で下記コマンドを実行します。
“`
$ cd /opt/bitnami/apache2/htdocs
$ git clone https://gi
多分これをやれば受かる!AWS Certified: SAP on AWS – Specialtyに1発で合格した勉強方法
AWS Certified SAP on AWS – Specialty (PAS-C01)に合格したので、勉強方法を備忘として書いておきます。参考になれば幸いです。
## 前提
AWSメインのクラウド基盤のエンジニア。たまにAzure、GCPも。(一応どちらもPro相当の資格を保持しています。)
一応Top Engineers(Service)、ALL Certificate Engineersに認定されてます。勉強期間:1ヶ月くらい
私の場合、集中して長時間時間を取るということが苦手で、ほぼ毎日30分〜40分程度の時間をとってやっていました。# 試験について
SAPの知識が何一つなかったので、用語がよくわからず苦労しました。
以下ポイントです。
– 一般的なAWSの知識はあったほうがよい。
サンプル問題を見るとなんとなくわかりますが、SAPを知らなくてもなんとなく解けるような問題があります。
– SAPの機能とかは理解しなくもよい。
以下試験ガイドに書いていますが、ワークロードの設計、実装、移行が出題範囲なので、詳細な機能などは理解不要です。
– Udemy等の教材はない
AWS ECSハンズオンやってみた
# 初めに
AWS SAA学習時にAWS ECSについて触れたことがあり、おさらいとはなるが、改めてECSのハンズオンをやってみた。# ハンズオン教材
https://pages.awscloud.com/rs/112-TZM-766/images/AWS_CICD_ECS_Handson.pdfECSの教材を探していたが、Cloud9を使い初心者でも挑戦しやすい内容のため、今回こちらでECR/ECSのコンテナ環境に触れてみたい。(Fargateはここでは扱わないこととする。)
# ハンズオン
## Cloud Formation上でネットワーク構築を実施
テンプレートは事前準備にあるハンズオンコンテンツをダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449478/c5e8038d-2c71-73c8-d7e7-6ff828a0a2d1.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.a
GiteaをAWSでなるたけ手抜き運用
趣味でやってるクローズドな開発用にGitea立ててみました
# 要件
– Gitリモートリポジトリのオープンなやつクローズドなやつ両方持ちたい
– イシューとかWikiとかはクローズドで書きたい
– インフラの面倒なことはなるべく手抜きで# うまくいった構成
[Gitea](https://gitea.io/ja-jp/)をこんな感じで構成してみました
* HTTP/HTTPSは、ALB経由でサービスする
* ALBをロードバランサーとしてはぜんぜん使ってないのですが(ターゲットグループにEC2 1台ずつしかいない)
* リバースプロキシ的に使えて便利なのです
* あと、証明書も良きに計らってくれるのがとても便利
* gitプロトコルは、SSH on SSMで利用する
* プル・プッシュするひとごとにIAMユーザーが必要ですが
* SSHすら開けなくてよいのでとてもセキュア## Route53
giteaのトラフィックをALBへ流すレコードを追加する。
* レコード名 : gitea.my.domain
* レコードタイプ : A
* エイリアス
API Gateway + LambdaのAPIにIAM認証で署名付きリクエストを送る(javascript, typescript)
# 概要
APIGatewayのREST APIを使って構築したweb APIをIAM認証(accesskeyとsecretkeyを使った認証)で署名付きのリクエストを送信するサンプル。
参考にさせていただいた記事
* [API GatewayでAPIにIAM認証をかけて、Node.jsでSigV4署名ヘッダを作成してリクエストしてみる](https://dev.classmethod.jp/articles/api-gateway-iam-authentication-sigv4/)
* [AWS – Lambda function URLs を IAM 署名付きでリクエストしてみる](https://zenn.dev/umatoma/articles/d04d8417fa2e70)IAMは対象のLamda関数のARNを指定した、 `lambda:InvokeFunctionUrl` のアクションのみを許可したユーザを作成しています。
javascriptとtypescriptのケース両方使うことがあるので、自分用のメモとして参考にさせていただいた記事のコードを少し書き直し
GitHub ActionsからKubernetes(EKS)のJobを実行する
## はじめに
GitHub ActionsからKubernetes(EKS)のJobを実行したいというケースがあったので、それについてまとめます。jobの実行には`kube-job`を用います。
https://github.com/h3poteto/kube-job
## 外部からEKSにアクセスする仕組み
クラスターを操作する権限をAWSユーザーやロールに付与するには、EKSの `aws-auth` というConfigMapを編集する必要があります。 仕組みは以下のようになっており、Kubernetesの認証Webhookという機能が用いられているみたいです。つまり、認証は`AWSのIAM`で行い、認可は`KubernetesのRole Based Access Control(RBAC)`によって決まります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/58fcfa96-ff3f-c5d4-c316-3cc4a0046c9c.png)
Ref: ht
git-secretsでコミットができなくなった場合の対処法
### 環境
ソースツリー### 概要
git-secretsによって、コミットできなくなった場合の対処法の記事はたくさんあるが、
それでは対処できなかったので、備忘録として残しておく。今回は、一旦git-secretsを完全に取り除いてコミットさせるようにする。### エラー内容
“`
git: ‘secrets’ is not a git command. See ‘git –help’.
“`## 解決手順
### ①git-secretsをアンインストールする。
“`
$ brew uninstall git-secrets
“`
これでコミットできるようになったかと思いきや、またしても以下のエラーが出る。
“`
git: ‘secrets’ is not a git command. See ‘git –help’.
“`
調べていくうちに、各リポジトリの「.git/hooks」にある「commit-msg, pre-commit, prepare-commit-msg」の3つを消さなければいけないらしい。## ② 削除する
該当のリポジトリに
AWS IoT SiteWiseとAmazon Managed Grafanaの連携は超簡単
AWS IoT SiteWiseとAmazon Managed Grafanaを連携させてみます。
本手順の前提条件
– AWS SSOのユーザが既に作成されていること
– Managed Grafanaのバージョン:8.4
## IoT Sitewiseまず、デモデータを用意します。
AWSマネジメントコンソールのIoT SiteWiseを開きます。
ランディングページでボタン1発で数日間利用可能なデモデータを生成することができます。
作成すると以下のように風力発電のアセットが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/dccd5dbd-4cbb-6615-d6cb-3ac4eacbb439.png)## Managed Grafana
### 初期設定
Amazon Managed Grafanaを開き、ランディングページにて「ワークスペースを作成」をクリックします。
![image.png](https://qiita-imag
AWS初心者は必ず読むべき!必見!AWSの基本②(VPC作成)
# この記事を読む前に
初期設定がわからない方はこの記事を読んでみてください。https://qiita.com/Hashimoto-Noriaki/items/0057242a90e36e6fb73f
# 資料
https://www.udemy.com/course/aws-and-infra/?aEightID=s00000016735001&AID=190908007224&a8=PlQKLlknX1zBDBaq.wzJncu_p1fqzQucJwA5k1yg05hnX1QlC1QHRJzHrD0GZGuAv56JgVQTvlQKjs00000016735001
# システムの全体像
最初にWord Pressでシステムを作成します。
これは簡単にブログやホームページを作成できるシステムです。1. wordpressはインターネットからアクセスできる“`パブリックサブネット“`にあります。
ex) Word Press Apache OS2. データベースサーバーはインターネットから接族できない“`プライベートサブネット“`にあります。
ex) My
AWSのCloudFormationのCognitoで発生した「Property validation failure: [Encountered unsupported properties in {/AdminCreateUserConfig}: [TemporaryPasswordValidityDays]]」を解消する
# はじめに
AWSのCognitoのCFnがよく理解できておらず、少し修正するとエラーが発生するのでメモ。
元々作成していたCFnをアップデートしたら壊れました。なんでや!# エラー
“`
Property validation failure: [Encountered unsupported properties in {/AdminCreateUserConfig}: [TemporaryPasswordValidityDays]]
“`“`元々動いてたCFn.yaml
CognitoUserPool:
Type: “AWS::Cognito::UserPool”
Properties:
UserPoolName: ”user-pool”
AliasAttributes:
AutoVerifiedAttributes:
Policies:
PasswordPolicy:
MinimumLengt
【AWS】AWSのReserved Instance (RI)とは?(ElastiCacheのRI購入方法も紹介)
## はじめに
業務で AWS の ElastiCache の Reserved Node を購入する機会があったということもあり、Reserved Instance (RI) の知識定着のために記事をまとめたいと思います。## Reserved Instance(RI)とは?
事前にインスタンスサイズと数を 1年 or 3年 で予約しておくことにより、1ヶ月毎にかかる料金を削減できるものになります。例えば、EC2 Instance の場合、 `Linux/UNIX` の サイズ(`t3.small`) を 2つ「1年間使います!」という形で事前予約しておくことによって、`Linux/UNIX` の サイズ(`t3.small`)を2つ使用した場合の料金が自動的に割引になるという仕組みです。
### RIが購入できるマネージドサービス
RIが購入できるマネージドサービスは以下のようなものがあります。| RIの種類 | サービス |
| —- | —- |
| Reserved Instance | Amazon EC2
Amazon RDS
SAM Pipelineで、設定ファイルから別々のパラメータを与える方法
# はじめに
SAM Pipelineで、リソース作成時のデプロイに対して、ファイルから設定値を渡す方法がわかりましたので、環境及び実行コマンドごとに設定ファイルを分けてみました。# 概要
– デプロイ時に実行されるコマンドに、直接ファイルと環境名を引数で与えるよう修正
– mainブランチの際は、artifactsにて使う設定ファイルを指定する必要あり# 経緯
## 生じた問題
– 今までの記事でサンプルとして用いていたものは、パラメータを与えて、それに応じた名前を持つLambda関数やIAMロールなどを作成
– パラメータの指定なしの場合は、デフォルト文字列を使用
– SAM Pipelineでは、bootstrapやinit、パイプライン作成のいずれの段階でも、上記サンプルへの`sam deploy`の引数の指定を行わない
– 同じアカウント上に2つ目を生成しようとする場合、同じ名前があるため必ず失敗する
– featureブランチ用パイプラインが、複数ある場合
– 本番の2ステージモデル(TestDeploy、Pr