- 1. Amazon ECRからローカル環境にコンテナイメージをPullする方法 メモ
- 2. 【初心者】AWS AutoScalingについて(ハンズオン①:起動テンプレートの作成)
- 3. S3 SELECTでCloudTrail証跡オブジェクトを検索してみる
- 4. CloudFront でオリジンに Authorization ヘッダを送る設定をしようと思うとエラーが出て設定できない
- 5. 【IAMロール】なぜCloud9は他のAWSサービスにアクセスできるのか?
- 6. aws s3 cp –recursiveとsyncだとcpのほうを使ったほうがいいっぽい
- 7. AWS EC2インスタンスとは?
- 8. Route53を使って、色々なルーティングを試してみた。
- 9. AWS CLIでECSタスクを止める
- 10. [Rails] ActiveSupport::MessageEncryptor::InvalidMessageの解決方法
- 11. AWS AmplifyでGraphQLを試してみる
- 12. NuxtとAWS Amplifyを用いてWebアプリを作るPart1
- 13. AWS AmplifyのAPIを修正する
- 14. AWS IoT EduKit通して学ぶ「クライアント証明書入りセキュアエレメント」の使い方
- 15. AWSのEC2利用する際忘れてしまうコマンドメモ
- 16. Lightsail|WordPress – bitnami|.htaccessを有効化する方法
- 17. AWS Lambdaで列車運行情報を定期的にLINEへ通知してみた【Python】
- 18. AWS Amplify を自分のために理解しなおす
- 19. AWS Amplify用のIAM Policyを作成する
- 20. EC2/t4gインスタンス/Amazon Linux 2の動作確認
Amazon ECRからローカル環境にコンテナイメージをPullする方法 メモ
* ステージング環境などにデプロイ中のイメージを使ってローカル環境でアプリの動作確認したいケースがあったため、備忘録として手順をメモする。
## 手順
### 前提条件
* AWS CLI及びdockerはインストール済みであるものとする。
* ECRへアクセス可能なIAMユーザーからアクセスキー/シークレットを払い出し、`aws configure`コマンドで事前に認証情報をセットしておくこと。### 1. ECRログイン用パスワードを取得し、dockerログインする。
“`sh
aws ecr get-login-password –region ${your_region} | docker login –username AWS –password-stdin ${your_aws_account_id}.dkr.ecr.${your_region}.amazonaws.com
“`* `aws ecr get-login-password`でログイン用パスワードを取得する。
* dockerコマンドの`–password-stdin` オプショ
【初心者】AWS AutoScalingについて(ハンズオン①:起動テンプレートの作成)
#はじめに
**AWS AutoScaling**・・EC2を処理負荷に合わせて、増やしたり減らしたりすることができる便利なサービス
[公式サイト](https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html”AWS AutoScaling”)設定するときにはあらかじめ、**起動テンプレート**(何を)**オートスケーリンググループ**(どのようにスケールするか)を設定します。
またオートスケーリンググループを設定にするときには、負荷に応じてどの程度増やすか減らすかといった**スケーリングポリシー**を複数設定することができます。#具体例
スーパーでのレジ待ちを想像してみましょう。
![レジ画像(1人).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079008/9d8b07fa-7e36-1eca-a4d3-e5da15db9273.png)
今は店
S3 SELECTでCloudTrail証跡オブジェクトを検索してみる
S3 SELECTを使ってCloudTrailの証跡オブジェクト(JSONでS3に吐かれる)をクエリーする必要に迫られたが、意外にサンプルがなかったのでまとめておく。
### やりたいこと
– CloudTrailのファイルの中身をサクッと見たい。
– ダウンロードはしたくない。Athenaを準備するほどでもない。### S3 SELECTの入出力設定
|カテゴリー|項目|値
|:—|:—|:—|
|入力設定|フォーマット|JSON|
||JSONコンテンツタイプ|行|
||圧縮|GZIP|
|出力設定|フォーマット|JSON|### サンプルクエリー
“`sql:300行取得
SELECT * FROM s3object s LIMIT 300
“`“`sql:指定したイベント情報を取得
SELECT s.eventTime, s.sourceIPAddress, s.userIdentity.arn, s.awsRegion, s.eventName, s.eventSource, s.eventType,s.eventCategory FROM
CloudFront でオリジンに Authorization ヘッダを送る設定をしようと思うとエラーが出て設定できない
# 経緯
CloudFront のバックにあるオリジンサーバーに対して `Authorization` ヘッダを送信する設定をしたい。 しかし、この設定を実施しようと Origin Request Policy の `Header: whitelist` とした後、Authorization を指定すると “The parameter Headers contains Authorization that is not allowed” というエラーになる。
![SnapCrab_NoName_2021-2-11_2-45-40_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502582/48bbe840-6536-40ed-27c0-df7aa673c855.png)
なお、これを CloudFormation でやると “Invalid Parameter” としか出てこないので原因の特定にものすごい時間がかかった。
# 対処方法
一応、公式でも説明されている。
http
【IAMロール】なぜCloud9は他のAWSサービスにアクセスできるのか?
#疑問に思ったこと
Organizationsの管理アカウントのCloud9から、CLIでメンバーアカウントの作成を試みました。
やりたかったメンバーアカウントの作成は無事完了したのですが、その時こんな疑問がわいてきました。「なぜ、Cloud9はメンバーアカウントを作成できるの?」
コンソールを操作していたIAMユーザーはadmin権限を持つものでした。
が、Cloud9から何らかのリソース作成を試みる場合、肝心なのはIAMユーザーの権限ではなくCloud9の権限だと思います。
理屈を理解したいと思い、ちょっと調べてみました。#確認内容
元々持ってた知識に触れ、そこから実際に確認した内容を見ていきます。
##前提知識
大まかに以下の認識は持っていました。
・IAMユーザーは私達人間がAWSの操作を行うために存在するもの。
→IAMユーザーには、IAMポリシーをアタッチしたIAMグループに所属させることでアクセス権限を与える。
・IAMロールはAWSサービスなどがAWSの操作を行うために存在するもの。
→AWSサービスには、IAMポリシーをアタッチしたIAMロールを付与する
aws s3 cp –recursiveとsyncだとcpのほうを使ったほうがいいっぽい
Dockerコンテナ内でs3からsyncオプションでファイルをダウンロードしていたが、よくわからないけど途中でこける。
s3 cp –recursiveに変えたら通った。
AWS EC2インスタンスとは?
# インスタンスとは?
インスタンスとはオンプレミス環境の上のサーバーに相当する。
インスタンスには様々なOSやタイプの選択が可能。# インスタンスとして利用できるOS種類一覧
・Amazon Linux
・CentOS
・RedHat Enterprise Linux
・Ubuntu Server
・Fedora
・Debian
・Gentoo Linux
・FreeBSD
・Windows Server# EBS-Backedインスタンス
OSを含むルートデバイス情報をEBSに格納したインスタンス。
AWSで**推奨**されている。
EC2インスタンス稼働中の変更はEBSに記録されるため、**インスタンスが停止しても変更内容は保持される。**#インスタンス料金
インスタンスタイプに応じた時間毎料金に起動時間を乗じた従量課金制
例えばt2.microc($0.0152 /1 時間)を20日使用の場合**$0.0152 /1 時間× 24時間 × 20日 = $7.296**
となる。
Route53を使って、色々なルーティングを試してみた。
#はじめに
Route53はAWSのDNS(Domain Name System)サービスです。
DNSとはドメイン(例:google.co.jp)とIPアドレス(例:172.217.161.35)を紐づけてくれるシステムのことです。Route53には様々なルーティングポリシーがあります(以下表参照)。
|ルーティングポリシーの種類|簡単な説明|
|:–|:–|
|シンプルルーティング|単一のリソースに対してルーティングを行う|
|加重ルーティング|複数のリソースに対して、指定した比率でルーティングを行う|
|位置情報ルーティング|ユーザーの位置に基づいて、リージョンを選択してルーティングを行う|
|レイテンシールーティング|一番応答時間が短いリージョンのルーティングを行う。|
|複数値回答ルーティング|複数のリソースに対して、ランダムにルーティングを行う(最大8つのレコードを使用することができる)|
|フェイルオーバールーティング|プライマリとセカンダリにルーティングを分けて、プライマリのヘルスチェックに失敗すると、セカンダリにルーティングを行う。|本記事では、上記の中
AWS CLIでECSタスクを止める
# コマンド
“`
$ aws ecs stop-task –cluster {クラスタ名} –task $(aws ecs list-tasks –cluster {クラスタ名} –query “taskArns[0]” –output text)
“`## 参考
`–output text`を指定することでダブルクォートを排除できるため、` | sed -e ‘s/”//g’`などsedを使う必要がない。
AWS CLI からのコマンド出力の制御 – AWS Command Line Interface
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-usage-output.html
[Rails] ActiveSupport::MessageEncryptor::InvalidMessageの解決方法
## なぜこのエラー?
credentialとmaster.keyの整合性が取れていない。
[[Rails] credentials.yml.enc、master.keyについて。](https://qiita.com/kazumawada/items/fb63806d74d89cbdf70f)>「端的にcredentials.yml.encの文字列とmaster.keyの文字列の組み合わせが不正解であるということです。」
https://hirocorpblog.com/rails-credentials-master/
他にも
> if you delete your project local and clone it again your master.key will be lost.> The only way to fix this is by setting up new credentials.yml.enc and add your AWS credentials to it again.
First you need to remove the ex
AWS AmplifyでGraphQLを試してみる
[前回](https://qiita.com/basio/items/c87a046f1828e23637ee)に引き続き、AWS AmplifyでデプロイしているReactアプリケーションを修正してToDoアプリを作成してみます。
[公式のチュートリアル](https://aws.amazon.com/jp/getting-started/hands-on/build-react-app-amplify-graphql/module-four/)をベースに、ユーザーごとに表示内容を切り替える実装を行います。# バックエンドの実装
Amplifyのバックエンドを設定していきます。
## Admin UIでは設定できない
認証設定と同様にAdmin UIだけでGraphQLの設定が行えるかと思ってたのですが、開いてみるとAmplify CLIを使えとのこと。。。
多分時間が経てば設定できるようになると信じています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556091/496e5
NuxtとAWS Amplifyを用いてWebアプリを作るPart1
## 概要
完成動画がはいる予定です
## はじめに
graphQLを用いた開発がしたいと思い、調べたところAWS Amplifyというものがあり、どうやら良さげな感じがしたので開発してみました。。無料枠なら、個人で大抵のことなら無料でできそうです。(料金がかかるのが嫌な人でも、プロジェクトの削除が簡単なのでやるだけなら損はないです。<-ちなみに、私は絶対無料派です笑) 今回簡易blogを作成していきます。 少し長くなりそうなので、3~4段階に分けて記事書きます??♂️??♂️ ## AWS Amplifyとは ![68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6177732d6d6f62696c652d6875622d696d616765732f6177732d616d706c6966792d6c6f676f2e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/712534/a8f31d19-2988-8587-2869-b6
AWS AmplifyのAPIを修正する
一度`amplify add api`で作成したものの、**Choose the default authorization type for the API**の設定を途中で変えたくなったときの作業メモです
# amplify update apiで対応可能
ちゃんと更新用のコマンドがありました。“`console
amplify update api? Select from the options below Update auth settings
? Choose the default authorization type for the API Amazon Cognito User Pool
Use a Cognito user pool configured as a part of this project.
? Configure additional auth types? No
(node:14112) ExperimentalWarning: The fs.promises API is experimental
“`
AWS IoT EduKit通して学ぶ「クライアント証明書入りセキュアエレメント」の使い方
こんにちは、[AWS IoT Hero](https://aws.amazon.com/developer/community/heroes/kohei-matsushita/)のソラコム松下(ニックネーム:Max)です。
このブログでは、AWS re:Invent 2020 で新たに発表されたAWS製のリファレンスデバイス「[AWS IoT EduKit](https://aws.amazon.com/jp/about-aws/whats-new/2020/12/introducing-aws-iot-edukit/)」について、このキットから何が学べるのかを紹介します。
ちなみに、AWS IoT EduKitの開発環境の作り方は[AWS IoT EduKitのページ](https://edukit.workshop.aws/jp/getting-started.html)、もしくは[Ubuntu 20.04 + VirtualBox 6.1でAWS IoT EduKitの開発環境を作る](https://qiita.com/ma2shita/items/164fdf8f30e4
AWSのEC2利用する際忘れてしまうコマンドメモ
結構 オンプレ と違うのでメモを表記失礼します。
“`
sudo -i
でrootに移動する。
“`ec2-userでviを編集した保存する場合は
[E45: ‘readonly’ option is set (add ! to override) が出た場合に保存する方法] (https://qiita.com/maedatakumi/items/220f747307f773bceb02)“`
入力モードをescで抜けるコマンドモードで下記を実行
:w !sudo tee %
強制脱出
:q!
“`私はファイル検索はlocateを多用していたので使えなくて困っていたのですが
“`
$ sudo updatedb
“`
とすると
locate test
が使える。また何か思い出したらコチラに表記する予定
Lightsail|WordPress – bitnami|.htaccessを有効化する方法
# .htaccessが効かない、動かない、使えない
以前に記載した[Lightsail|WordPress – bitnami|BASIC認証とDigest認証の設定方法](https://qiita.com/tomokei5634/items/95b460a77aded30192f2)では、
> # WordPressのファイル群に .htaccess を入れてもダメ
> 私は普段、wp-adminやwp-login.phpのある階層に.htaccessを置いてBASIC認証をかけていましたが、この方法はAWSのLightsailでは不可のようです。と記載しました。
WordPress – bitnami においては、デフォルトで`.htaccess`が利用不可になっています。
でも、「どうしても`.htaccess`使いたいねん」「`〜.conf`を変更の度に、いちいち再起動するのがメンドイねん」という方もいらっしゃるのではないでしょうか?
そこで、bitnamiで.htaccessを有効化する方法を記載します。難しくありません。一行を変更するだけです。
# まず
AWS Lambdaで列車運行情報を定期的にLINEへ通知してみた【Python】
# 背景
近年、電車の運行情報は各事業者が、メール通知サービスや公式twitterアカウントなどで発信していたり、公式アプリでも情報がリアルタイムに見れたりしますね。
しかし、twitterや公式アプリは利用者側が情報を見に行く手間がかかります。メール通知サービスは、メールが多い人はすぐにメールボックス内に埋もれてしまい、情報が取り出しにくいというデメリットも潜在します。
そこで、LINEで定期的にプッシュ通知できるようにしてみました。電車の運行情報だけでなく、他のことにも応用できると思いましたため、ここにまとめます。
先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが**自分のメモ**として、こちらへまとめておきます。
◆◆◆◆◆◆◆◆◆◆◆今回は、特に以下の記事が大変参考になりました。
また、執筆者の [@nsuhara](https://qiita.com/nsuhara)様 には何度も質問させていただき、都度ご丁寧に回答いただきましたことを、大変感謝しております。この場をお借りして御礼申し上げます。– [
AWS Amplify を自分のために理解しなおす
# はじめに
AWS Amplify を使えば爆速でアプリが作れる! といううたい文句は聞くが、いくつか記事を読んでみても Amplify とはどういうものかが正直ピンとこない。 そのため、ちゃんと Amplify を使ってみて、自分なりに理解することとした。 この記事は、その整理のために記載したものである。
Amplify では Mobile Application なども作れるが、今回実際に試してみた対象は「Web Application」であり、利用している各種ツールのバージョンは以下の通り。 将来的には改善される可能性も十分にあるが、記事執筆 (2021年2月10日現在) の話である。
“`bash
$ npm -v
7.5.2
$ yarn -v
1.22.10
$ amplify version
4.41.2
“`# TL; DR
– AWS Amplify とは、数多くあるAWSサービスのインテグレーション(統合)サービスと考えるのが自分としては最もしっくりくる結論
– 個別の要素を扱ったり、サービスを連携させようとすると、それらの知識に加え、IAMの
AWS Amplify用のIAM Policyを作成する
## はじめに
AWS Amplify用のIAM Policyを作成します。
管理者権限を利用するのではなく、適切なPolicy設定を利用する。## 手順
1. AWS Management Consoleにログインする。
1. IAM Management Consoleに移動する。
1. 左側のツリーからポリシーを選択する。
1. ポリシーの作成を選択する。![IAMPolicy1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553528/ed3cde21-9012-f75b-b5ae-46a9dace7b28.png)
1. ポリシーの作成画面でJSONのタブを選択し、下記JSONを貼り付ける。
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Allow”,
EC2/t4gインスタンス/Amazon Linux 2の動作確認
# 背景
* EC2の[t4gインスタンス](https://aws.amazon.com/jp/blogs/news/new-t4g-instances-burstable-performance-powered-by-aws-graviton2/)はコスパが非常に良いらしい(AWSによればt3との比較でコストは20%減、性能は40%増)
* なので、自社パッケージの新規クライアント用のサーバとして利用したい
* CPUがx86でなく、ARMなので、既存x86ベースインスタンスのAMIは利用できない。またミドルウェアが動作するかが要確認とのことで、やってみました。
# 評価日
2021年2月6日
# 環境
* t4g.micro
* Amazon Linux 2 (ARM)
* 東京リージョン# 動作したもの
うちのパッケージに必要な以下は一通り動作しました。特にはまることもなかったですが、
一番、心配していたのは定期的にエラーに見舞われるCertbot(LetsEncrypt)でしたが何の問題もありませんでした。
本番採用に向けて詳細なテストはこれからですが、