- 1. Amazon Elasticsearch Serviceでスナップショットを復元する方法
- 2. SnowflakeでAWS PrivateLinkを利用する
- 3. TerraformでAmazon Auroraクラスタを構築する
- 4. Lambda非同期呼び出し:エラー時のリトライ
- 5. EC2にRailsアプリをデプロイ① ~EC2インスタンス作成~
- 6. AWS JavaScript SDKで発生する例外とエラーコード
- 7. Databricksワークスペース(E2)作成時のトラブルシューティング
- 8. 【2日目】AWS認定ソリューションアーキテクト合格までの道
- 9. Amazon Location Serviceのマップスタイルを日本対応にする
- 10. 【AWS】自動デプロイで502 Bad Gateway
- 11. CloudFormationのリソースごとの!Ref/!GetAtt戻り値メモ
- 12. ECS(FARGATE) と ECR
- 13. AWSでCloudWatchエージェントを入れてみた
- 14. ServerlessFrameworkでcron実行する(Node.js)
- 15. AWS ElastiCache for Redis オンラインアプリケーション用の高速セッションストアを構築するチュートリアルをやってみた
- 16. Redmine のバックアップをとろう!
- 17. AWS Amplify サーバーレスウェブアプリケーションを構築するチュートリアルをやってみた
- 18. AWS Lambda Ruby2.7でヘッドレスChromeを動かす
- 19. AWSグループの作り方
- 20. AWSユーザの作り方
Amazon Elasticsearch Serviceでスナップショットを復元する方法
## はじめに
Amazon Elasticsearch Service 5.3以降では、基本的に1時間ごとに自動でスナップショットを作成し、最大で2週間分(336個)のスナップショットが作成されます。今回は、インデックスをスナップショットから復元する手順を記述します。
## 手順
### 復元するスナップショットを特定する
最初に、復元するスナップショットを特定します。
以下のコマンドを実行することで、スナップショットの情報を取得出来ます。`curl -XGET ‘https://{ESエンドポイント}/_snapshot/cs-automated/_all?pretty’`
“`shell:terminal
$ curl -XGET ‘https://{ESエンドポイント}/_snapshot/cs-automated/_all?pretty’
{
“snapshot” : “2021-06-15t02-19-46.**********-*******-********”,
“uuid” : “***************”,
SnowflakeでAWS PrivateLinkを利用する
# Snowflake における AWS PrivateLinkの役割
AWS上のSnowflakeサービス(VPC)に、AWSの閉域からアクセスするための機能です。
自分専用のシングルテナントのSnowflake環境が作成されるものではなく、マルチテナントの環境に閉域でアクセスするための専用の入り口が用意されます。
PrivateLinkを使う場合であっても、インターネットからSnowflakeにアクセスすることができます。
つまりセキュリティ的な観点でいえばPrivateLinkを使ったからといって完全に閉域でSnowflakeを利用できるわけではありません。インターネットからのアクセスを制限したい場合はIPアドレス制限ができるSnowflakeの[ネットワークポリシー]機能を使う必要があります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/72184251-3c4d-3c0d-b2e4-363cb6486e3b.png)
– AWS PrivateL
TerraformでAmazon Auroraクラスタを構築する
# はじめに
Amazon AuroraはRDSよりもさらにマネージドな範囲の広いDBのサービスで、さまざまな耐障害性、可用性オプションを選択して構築することがで着て便利。しかし、慣れないとTerraformでの構築はハマりポイントがあるので、整理してみた。今回の前提知識は以下。
それほど難易度は高くないだろう。– [Amazon AuroraのBlack Beltの資料](https://d1.awsstatic.com/webinars/jp/pdf/services/20200929_BlackBelt_HowToScale_Aurora_MySQL_pub.pdf)はざっと目を通して概要を理解している
– TerraformでのAWSサービスの構築経験がある# 構成
今回は、シンプルにシングルプライマリインスタンスと、マルチAZでリードレプリカを配置する構成にする。
Auroraはもともとデータは複数AZに分散配置されるため耐障害性は高く、上記のようにすることで、プライマリインスタンスに障害が発生することで、リードレプリカがプライマリに昇格してダウンタイムを減らすこ
Lambda非同期呼び出し:エラー時のリトライ
– Lambda
– 同期呼び出し(`RequestResponse`)(本記事の対象外)
– **非同期呼び出し**(`Event`)(本記事の対象)
– **呼び出しエラー**(同時実行数制限、権限不足など)
– **関数エラー**(関数コードにおける例外発生、メモリ不足、タイムアウトなど)非同期呼び出しの場合、デフォルトでは、呼び出しエラーは最大6時間再試行、関数エラーは2回リトライされる。
これらの値はLambda関数ごとに設定ができる。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/79394/0385a659-8609-fd9a-a40a-54e148a54df7.png)
下図は関数コードにおいて例外発生させ、2回リトライさせたときのログ。
![スクリーンショット 2021-07-23 22.19.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws
EC2にRailsアプリをデプロイ① ~EC2インスタンス作成~
##はじめに
EC2のデプロイが成功したので私が行った手順を数回にわたり残しておきたいと思います。
初めてのデプロイですので必要なツールなどの導入などもしていく予定です。
今回は無料範囲でデプロイするように行います。よろしくお願いします。
## EC2インスタンスの作成
今回は下準備のEC2インスタンスの作成〜設定を完了するところまでが、目標です。
AWSのアカウントは作成しているものとします。###EC2インスタンス
EC2インスタンスとはAWSにおける仮装マシンと呼ばれるものです。
AWSは全てのサーバーを物理的に用意してくれているわけではなくて、仮想マシンと呼ばれるソフトウェアを利用して仮装的に一つのLinuxサーバーを利用できる仕組みを利用します。まずは AWSの公式サイトからルートユーザーでログインします。
ログインした際、ユーザーのリージョンが「アジアパシフィック(東京) ap-northeast-1」となっているか確認しておきます。もし違ったら、設定しなおしといてください。確認し終わったら、EC2のコンソールへ移動します。
検索フォームでEc2と打てば
AWS JavaScript SDKで発生する例外とエラーコード
[SDKのドキュメント](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#put-property)にはどんな場合にどんな例外が発生するのか明記されていないが、対応する[AWS API Reference](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html#API_PutItem_Errors)にはエラーコード一覧が明記されている。
例えば、`AWS.DynamoDB.DocumentClient.put()` ではどんな例外が発生しうるのか?
[対応するAWS API Reference](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html#API_PutItem_Errors)を見ると>ConditionalCheckFailedExcept
Databricksワークスペース(E2)作成時のトラブルシューティング
[Troubleshooting creating workspaces \(E2\) \| Databricks on AWS](https://docs.databricks.com/administration-guide/account-settings-e2/troubleshooting.html) [2021/7/20時点]の翻訳です。
> [Databricksクイックスタートガイド](https://qiita.com/taka_yayoi/items/125231c126a602693610)のコンテンツです。
# 概要
以下のセクションでは、ワークスペース作成時の設定エラーおよび、どのようにエラーに対処するのかを説明します。多くの問題は、[Account Console](https://docs.databricks.com/administration-guide/account-settings-e2/workspaces.html)あるいは[Account API](https://docs.databricks.com/administration
【2日目】AWS認定ソリューションアーキテクト合格までの道
# AWSインフラストラクチャ
## AWSインフラストラクチャの概要
###リージョンとアベイラビリティゾーン(AZ)
– **リージョン**
物理的に離れた領域(世界24ヶ所にある)
– **アベイラビリティゾーン(AZ)**
リージョン内の複数データセンターの集合体(世界77ヶ所にある)
*災害対策(DR)サイトを構築するときは、複数のリージョン/AZを使用した*
*マルチリージョン/マルチAZ構成が推奨される*:::note info
DR(Disaster Recovery)
災害発生時に、ひとつのリージョン/AZが正常に作動しなくても他のリージョン/AZでシステムを継続させること
:::参考画像
![]
(https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/aws-az.png)
***### エッジロケーション
– AZよりも多く存在し、Route 53/CloudFront/AWS WAFなどのDNSやコンテンツ配信サービスを提供するためのデータセンター
Amazon Location Serviceのマップスタイルを日本対応にする
#はじめに
この6月からAWSが提供する[Amazon Location Service](https://aws.amazon.com/jp/location/)が正式版になってグローバル規模でリリースされています。
これによって、Googleマップ以外の地図サービスの選択肢が増え、期待が高まっています。特に、AWSの環境下で(外部へのアクセスを行わずに)地図サービスを実装できるため、開発効率が改善し、認証やセキュリティ対策など伴って発生するディベロッパーへの負担が軽減される期待があります。ところが、残念なことに、**日本の地図が冴えません**。
例えばこんな感じです(HEREが提供するスタイルの場合)。
![スクリーンショット 2021-07-10 11.11.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531580/0302d552-73ca-17ee-d1b6-6f50d87f3984.png)
「え、これ何?」というくらい、日本離れしています。これでは使えません。
HEREの地図の
【AWS】自動デプロイで502 Bad Gateway
# はじめに
AWSの手動デプロイ時点ではうまくいっていたものの自動デプロイ後に502 Bad Gatewayのエラーに遭遇しました。
解決に至った手順を紹介したいと思います。# 原因究明
## エラーログの確認①
“`:ターミナル(EC2内)
[ec2-user@ip-〇〇 nicecosme]$ sudo less /var/log/nginx/error.log
unix:/var/www/nicecosme/shared/tmp/sockets/unicorn.sock failed (2: No such file or directory)
“`unicorn.sockがない…?
## エラーログの確認②
“`:ターミナル(EC2内)
[ec2-user@ip-〇〇 nicecosme]$ cd current
-bash: cd: current: No such file or directory
“`移動できない。currentディレクトリが作成されてないのか。
sharedディレクトリはどうなっているのかも確認してみました。“`:
CloudFormationのリソースごとの!Ref/!GetAtt戻り値メモ
CloudFormationでリソースのARNやリソースを取得する際、!Refと!GetAttどちらを使うべきか等迷うことがあるので、関連する戻り値のメモです。
| Service | Resource | !Refの戻り値 | !GetAttの戻り値 |
|:-:|:-:|:-:|:-:|
| AWS IAM | [Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) | ロール名 | .Arn : ARN
.RoleId : ロールID |
| AWS IAM | [Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) | ポリシー名 | 無し |
|Amazon VPC| [VPC](https://docs.aws.amazon.com/AWSCloudFormation/lat
ECS(FARGATE) と ECR
教材
–https://kleinblog.net/ecs-ecr-hello-world.html
前提
–
https://qiita.com/sanajima/items/cfbac6635b48890a1ba9
の通りローカルでDockerコンテナ作成しておきHelloWorldできるようにしておく完成形
–作業(ローカル)
–
①Windows10のターミナルを開きUbuntuのウィンドウを開きます
②作業ディレクトリを作成してDockerFileを作成しますmkdir ecs_test
cd ecs_test
code Dockerfile(VSCodeを使用している場合)
FROM nginx:latest
COPY ./src /usr/share/nginx/html③htmlファイルを作成します
mkdir src
code src/index.html
Hello world from ECS nginx!!!
④Dockerファイルのある
AWSでCloudWatchエージェントを入れてみた
# はじめに
AWSでCloudWatchエージェントをEC2に入れてメトリクスをとってみました。# CloudWatchエージェントとは?
公式ドキュメントには以下の内容が記述されています。“`
・オペレーティングシステム全体で Amazon EC2 インスタンスから内部システムレベルのメトリクスを収集します。このメトリクスには、EC2 インスタンスのメトリクスに加えて、ゲスト内メトリクスを含めることができます。収集することができる追加のメトリクスについては、「CloudWatch エージェントにより収集されるメトリクス」を参照してください。・オンプレミスサーバーからシステムレベルのメトリクスを収集します。これには、ハイブリッド環境のサーバーや AWS によって管理されていないサーバーも含まれる可能性があります。
・カスタムメトリクスは、StatsD および collectd プロトコルを使用して、アプリケーションまたはサービスから取得します。StatsD は、Linux サーバーと、Windows Server を実行するサーバーの両方でサポートされています。col
ServerlessFrameworkでcron実行する(Node.js)
Serverless Frameworkでcron実行するサンプルコードです。
AWS LambdaではJST未対応のようで、-9時間する必要有ります。
時間設定の際にご留意ください。“`shell:ディレクトリ構成
~/develop/study/serverless/cron $ tree -I node_modules
.
└── aws-node-scheduled-cron
├── handler.js
├── package.json
├── serverless.yml
└── yarn.lock
“`
“`yaml:serverless.yml
service: aws-node-scheduled-cron2frameworkVersion: ‘2’
provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: 20201221functions:
cronHandler:
handler: handler.run
even
AWS ElastiCache for Redis オンラインアプリケーション用の高速セッションストアを構築するチュートリアルをやってみた
# 初めに
以下のチュートリアルをやってみました。ElastiCache はセッションデータの保持や、DB 処理の高速化など資格勉強でよく見かけますので、実際に使ってみたいとずっと思っていました。ElastiCache の起動、キャッシュの追加・削除、TTL の設定を学ぶことができました。
https://aws.amazon.com/jp/getting-started/hands-on/building-fast-session-caching-with-amazon-elasticache-for-redis/
# 1. Redis クラスターを作成する
クラスターエンジンには「Redis」を選択し、ロケーションには「Amazon クラウド」を選択します。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621414/5f413090-2adc-fda7-bb29-6376688ec5ea.png)
以下のように設定します。
![2.png](https://qiita-ima
Redmine のバックアップをとろう!
# やったこと
Amazon Lightsail(仮想プライベートサーバー)で立てた Bitnami Redmine のバックアップを、ローカル(自分のパソコン)でとった。### 動機
データ保管料金を取られない環境に、バックアップを取りたいから!です。
Lightsail で立てた Redmine の ‘スナップショット’ をAWS (EC2, S3など) で保存しておけば、バックアップにはなるだろう。しかし、ケチな僕にとって、スナップショットを溜めておくだけでお金が発生するのは嫌じゃ。
そこで、Redmine のデータをローカルに落とせば、無料でバックアップを取れるだろうと目論んだ。
### 環境
[ローカル]
(例1)– Ubuntu 20.04.2 LTS
(例2)
– Windows10
– WSL1 Ubuntu-20.04データを落としてくる時に、scpコマンドを使いたかったから Ubuntu を使用。Windows10 にて WSL でファイルをで落としたら、ダウンロード先が **\\\wsl$**になることに注意。
[外部サーバ]
– Am
AWS Amplify サーバーレスウェブアプリケーションを構築するチュートリアルをやってみた
# 初めに
以下のチュートリアルをやってみました。Amplify と CodeCommit の連携、CodeCommit を使用した開発、Cognito を使ったオーソライザー、Lambda プロキシ統合など、普段使わないサービスばかりで勉強になりました。
https://aws.amazon.com/jp/getting-started/hands-on/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/
## 1. CodeCommit にリポジトリを作成する
CodeCommit を使用してローカルで開発を進める場合、GitHub などと同様に認証情報を作成する必要があります。GitHub では 「SSH」 や GitHub アカウントの「ユーザー名・パスワード」を用いますが、CodeCommit では IAM を使用した認証を利用することができます。
> AWS CodeCommit リポジトリへの接続を設定する最も簡単な方法は、IAM コンソールで CodeCommit の Git 認証情報
AWS Lambda Ruby2.7でヘッドレスChromeを動かす
ネットで調べてもあまり正解に辿り着けなかったので。
書き殴りなので、すみませんが動作保証はしないです。## やりたいこと
タイトル通りですが、AWS LambdaでWebスクレイピングをしたい。
諸事情あって言語はRuby2.7になります。
RubyでのスクレイピングにはCapybara + selenium-webdriver を利用します。Lambdaのデプロイには[Serverless Framework](https://www.serverless.com/)を使うので、この記事はServerlessについての知識を事前条件としています。
Capybaraやselenium-webdriverの説明はしないので、ググってくだしあ。
## 注意
Ruby2.5はサポート終了が宣告されているので今からやるにはRuby2.7一択です。
実は今現在(この記事が公開された日)ネット上に溢れている「Lambda(Ruby)でスクレイピングする」系の記事はほとんどがRuby2.5だったりするので、注意しましょう。
後述しますが、Ruby2.5とRuby2.7ではランタ
AWSグループの作り方
# はじめに
AWSのグループを作る方法もメモしておく。
あと、権限の付け方によってどんな画面表示になるのかも併せて検証してみようと思う# 手順
1. ユーザ(権限なし)を作成する
1. グループを作成する
1. グループに権限を付与する
1. メンバーをグループに割り当てる## 1. ユーザ(権限なし)を作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d1b64c97-caf8-cf7a-df9b-3ec7aa4769e7.png)グループの権限によってアクセス許可がどう変わるのかが見たいので
あえて何も選択せずにユーザを作る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/e588d357-188c-a27b-49d9-300e47e47561.png)アクセス権限無いよ、の警告が来る。
想定の範囲内。よしよし。
![image.p
AWSユーザの作り方
# はじめに
AWSのアカウントを作る機会があったこともあって
簡単な手順を残す# やり方
TOP画面からIAMをクリックして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/2cc1158a-61bb-ad8d-a126-0e03d9c85f13.png)左ペインの「ユーザ」クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/796eae08-717c-e866-7e0c-c31422b72479.png)[ユーザーを追加]クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416263/d1c15b68-ec98-58e8-132e-d3091ffcdf78.png)ユーザ登録画面で必要事項を入力。。。
ユーザ名:watyanabe164