- 1. CloudFormationをゼロから勉強する。(番外編:Former2)
- 2. AWS Railsの再起動手順
- 3. AWS RDSにローカルから接続できない
- 4. AWS cliでECRにpushするときに再認証を求められる&loginが400 bad requestで弾かれる
- 5. 【画像付き】AWSでSSL化させる【丁寧に解説】
- 6. AWSのACM(Certificate Manager)でSSL証明書を取得してみた
- 7. AWS Storage GatewayとOCI Storage Gatewayを利用してS3のデータをOCI Object Storageにファイルコピーで移行してみた
- 8. アップデートで「AWS Network Firewall」という新しいサービスが登場
- 9. CodeBuild実行時に$(aws ecr get-login –region $AWS_DEFAULT_REGION –no-include-email)で発生したエラーの解決方法
- 10. AWS lambda layer で仮想環境を構築したった
- 11. [AWS] グローバルインフラストラクチャとネットワーク①「リージョンとアベイラビリティゾーン」
- 12. AWSの主要なサーバレスサービス 4選!
- 13. King Gnuの曲の歌詞でAmazon Comprehendの感情分析機能を試してみる
- 14. AWS Athenaでのタイムスタンプの扱い方 まとめ
- 15. AWS認定ソリューションアーキテクト-プロフェッショナル受験を終えて(2020.11)
- 16. 【初心者向け】Rails6で作られたWebアプリをCircleCIを使いAWS ECR・ECSへ自動デプロイする方法②-2 インフラ構築編【コンテナデプロイ】
- 17. AWS〜EC2にRailsアプリのデータベースを作成・セットアップする〜
- 18. kusanagiのAMI ID を AWS CLI で調べて、一撃で起動したい
- 19. 別のAWSアカウントのorganizations,CostExplorerの情報をLambda(python)で取得する方法
- 20. DynamoDBで前方一致検索を実施する
CloudFormationをゼロから勉強する。(番外編:Former2)
# はじめに
仕事でAWSに`WordPress`のサイトを立ち上げる作業を行ったのですが、手作業で作ったということもあり、コード化されていなかったので、せっかくなので「[AWS Black Belt Online Seminar AWS CloudFormation deep dive](https://www.slideshare.net/AmazonWebServicesJapan/20201006-aws-black-belt-online-seminar-aws-cloudformation-deep-dive)」でも紹介されていた`Former2`を使ってコード化してみました。-【前】[CloudFormationをゼロから勉強する。(その8:スタックのネスト)](https://qiita.com/sakai00kou/items/553aba6cc924aff3c9b8)
# Former2とは
AWSの自アカウントにあるリソースを検索し、選択したリソースを`CloudFormation`や`Terraform`などの形式でコード化してくれる**ブラウザベース**
AWS Railsの再起動手順
この度Railsで開発中のアプリをAWSへ開発中アプリをデプロイしましたが、
今後本番環境のサーバー再起動を行う頻度は高いだろうと思い
備忘録としてUnicornの再起動手順をまとめていきたいと思います。EC2インスタンスにログインしている前提で進めていきます。
まずは ps aux | grep unicorn コマンドでプロセスIDを確認します。
“`ruby:ターミナル
[ec2-user@ip-172-31-33-238 <対象リポジトリ>]$ ps aux | grep unicorn
ec2-user 26995 17.4 10.7 475732 108272 ? Sl 13:55 0:01 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 26999 0.0 10.0 476748 101508 ? Sl 13:55 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E produc
AWS RDSにローカルから接続できない
#エラー内容
データの検証のため、RDSにローカルのwindowsから接続しようと試みました。“`
mysql -u root -p -P 3306 -h
“`
すると・・・“`
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘‘ (10060)
“`ncも試してみる。
“`
nc
nc: can’t connect to remote host ()
“`
ncもダメ・・・# 解決方法
RDSインスタンスの「パブリックアクセス可能」を「あり」にする
![e124141.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480987/0ea7aec1-57e0-d483-e9cb-fc59abd07a11.png)参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-connectivity
AWS cliでECRにpushするときに再認証を求められる&loginが400 bad requestで弾かれる
# エラー内容
“`
docker push ********.dkr.ecr.region.amazonaws.com/****:TAG
“`
ECRにpushしようとすると“`
denied: Your authorization token has expired. Reauthenticate and try again.
“`
トークンが期限切れと言われた。再度ログインします。## ログインする
“`
aws ecr get-login-password –region| docker login –username AWS –password-stdin https:// .dkr.ecr. .amazonaws.com
“`
ちょっとハマってしまったポイントがあります。– get-login-passwordには明示的にregionが必要
– get-login-passwordとdocker loginのregionが一致していなければいけないさもないと400 bad requestが返ってき
【画像付き】AWSでSSL化させる【丁寧に解説】
#前提
* EC2にデプロイ済みであること
* ドメインを取得しElastic IPと紐付けていること。つまり`http://ドメイン名`でサイトにアクセスできるようになっていること。ドメインの取得方法は下記記事を参考にました!
> [【ドメイン取得】お名前.comとawsでドメイン取得](https://qiita.com/nakanishi03/items/25278fb4dfad60ebfac4)#そもそもSSL化ってなに?
簡単にいうと**「セキュリティが強い、安全なサイトにすること」**です。
詳しい説明は下記記事を参考にしてください。
> [SSLって何?意味や仕組みをわかりやすく解説!](https://ssl.sakura.ad.jp/column/ssl/)#方法
1. Certificate ManagerでSSLサーバー証明書を発行
2. ロードバランサーにてSSLサーバー証明書とEC2インスタンスを紐付ける
3. EC2インスタンスのポート開放
4. 動作確認この順番で行きたいと思います。
まずはゴールを御覧ください。###最終
AWSのACM(Certificate Manager)でSSL証明書を取得してみた
# はじめに
個人サイトのSSL化のためACMで証明書を取得してみた。######AWSコンソールのCertificate Managerから[証明書リクエスト]を選択
![AWS_Certificate_Manager1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/f7a7e4f3-a42b-c976-389c-72ca9ddfbf5c.png)
![AWS_Certificate_Manager2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/bc2bbb3d-f96a-ffd7-a4d6-fcd0a4382765.png)
######ドメイン名を追加します。
![AWS_Certificate_Manager3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/c1285688-911a
AWS Storage GatewayとOCI Storage Gatewayを利用してS3のデータをOCI Object Storageにファイルコピーで移行してみた
#はじめに
AWS S3内のデータをOCIのObject Storageにファイルコピーで移行する方法として、[こちらの記事](https://qiita.com/500InternalServerError/items/2428e353398844766b43)ではgoofysを利用する方法を紹介しました。
goofysはオープンソースなのでサポートが心配、という方向けに、今回はOracleから提供されているOCI Storage Gateway(Object StorageバケットをNFSで共有できるゲートウェイ)、AWSから提供されているAWS Storage Gateway(S3バケットをNFSで共有できるゲートウェイ)を利用してAWS S3からOCI Object Storageにファイルコピーでデータを移行する方法を試してみました。
#事前準備
<OCI側>
・Object Storageへのアクセスに使用するユーザのAPIキーの登録を済ませておきます。
- フィンガープリント
- 秘密鍵
- パスフレーズ(キーペアの作成時に設定した場合)<AWS側>
・S
アップデートで「AWS Network Firewall」という新しいサービスが登場
#はじめに
2020/11/17のアップデートで「AWS Network Firewall」という新しいサービスが登場しました。本記事ではこのサービスの特徴について調べ、使い所を検討してみます。
CodeBuild実行時に$(aws ecr get-login –region $AWS_DEFAULT_REGION –no-include-email)で発生したエラーの解決方法
## 問題点
AWS CodeBuild実行時に“`
Running command $(aws ecr get-login –region $AWS_DEFAULT_REGION –no-include-email)
“`
時に、“`An error occurred (AccessDeniedException) when calling the GetAuthorizationToken“`と言われてこけてしまった。実行結果
![スクリーンショット 2020-11-20 14.49.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/785079/8616997c-16f2-87ac-9733-1fc0da03032f.png)## なぜ起こったのか?
CodeBuild実行時にECRを操作する権限がアタッチされていなかったから。## 解決方法
### 手順_01
“CodeBuild > ビルドプロジェクト > 該当プロジェクトの詳細を表示“から“ビルドの詳細
AWS lambda layer で仮想環境を構築したった
# Background
Python3.6 以降で`venv`を使ってpipしたパッケージを保存していたのですが、AWS上で出来ないかと調べているとlayerという手頃な機能があったので使ってみた。# venv
作業PC上ではこれでOK
“`shell
python -m venv [仮想環境名]./[仮想環境名]/bin/activate
([仮想環境名]) pip install [パッケージ名]
“`# パッケージ用のzip作成
[AWS lambda を使ってWebスクレイピングしたった-Development (Webスクレイピング)](https://qiita.com/satsukiya/items/b9d02abd7fa96cd59355#development-web%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0)と同様にAWS上にuploadするためにzipファイルを作ります。“`shell
mkdir packages
cd packages
pip i
[AWS] グローバルインフラストラクチャとネットワーク①「リージョンとアベイラビリティゾーン」
###リージョンとアベイラビリティゾーン
—####リージョン
AWSがサービスを提供している拠点。
日本では東京リージョン、2021年には大阪リージョンをを立ち上げる予定。—
####アベイラビリティゾーン(AZ)
物理的、ソフトウェア的に自律しているデータセンター[^1]の集合体。####AZの地理的・電源的独立による信頼性の向上
#####地理的独立
・落雷や洪水、大雨などの災害によるAZへの局所的な障害に対して別のAZが影響されないように配置されていること。その為AZ間は数十キロ程度離れて配置されている。
・各AZ間は高速なネットワーク回線で接続されているためAZ間のネットワーク遅延(レイテンシー)は2ミリ秒以下で安定している。
#####電源的的独立
・1か所の停電によりAZ内のすべてのデータセンターが一斉にダウンすることがないように設計されている。
AZの地理的・電源的独立により、リージョン全体でみたときにAWSは障害への耐久性が高くなり信頼性が高いといえる。
####マルチAZによる可用性の向上
複数のAZを利用してシステムを構築すること。耐障
AWSの主要なサーバレスサービス 4選!
# はじめに
今回はAWSのサーバレスサービスを紹介します!ここでいうサーバレスは、AWSがサーバーを管理し、利用者側はサーバ管理不要なコンピューティングサービスを指すことにします。
利用者はサーバー管理不要なので、毎週のように来る脆弱性対応やミドルウェアの設定・管理、スケーリングを考えた構成をしなくて済みます。
また、利用者はビジネスロジックに集中でき、使用した分だけ課金されるので、コスパの良いサービスを作ることができます。# YouTube動画
動画で確認したい方はこちらをどうぞ
[【YouTube動画】 AWSの主要なサーバレスサービス4選](https://youtu.be/YXxwzl0hf7Y)
[![AWSの主要なサーバレスサービス4選](https://img.youtube.com/vi/YXxwzl0hf7Y/0.jpg)](https://youtu.be/YXxwzl0hf7Y)# AWS Lambda
LambdaはAPI呼び出し時やイベント発生時にLambda関数を実行できるサービスです。
Lambda関数はNode.jsやRu
King Gnuの曲の歌詞でAmazon Comprehendの感情分析機能を試してみる
[King Gnu](https://kinggnu.jp/)の曲の歌詞でAmazon Comprehendの感情分析機能を試してみました。曲ごとにpositive順に並べています。ちなみに、ポジティブNo.1の三文小説とNo.2のThe holeは曲を聴く限りポジティブなものには聞こえません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615716/c60f7671-2f55-1e20-0891-4de999bfefeb.png)
AWS Athenaでのタイムスタンプの扱い方 まとめ
# はじめに
AWS AthenaはPresto SQLに準拠しているため数々の時刻関数を使用することができます。
今回は私がよく使うものを紹介していきたいと思います。
[参照元](https://prestodb.io/docs/current/functions/datetime.html)
# タイムゾーンの設定
““sql
SELECT timestamp ‘2020-11-20 01:00 UTC’ AT TIME ZONE ‘Asia/Tokyo’
“““`
> 2020-11-20 10:00:00.000 Asia/Tokyo
“`# 現在時刻を取得
2020/11/20 6:40 (JST)に実行した結果になります。
“`sql
SELECT current_timestamp
“`“`
> 2020-11-19 21:40:27.184 UTC
“`タイムゾーンを指定して現在時刻を取得する
““sql
SELECT current_timestamp AT TIME ZONE ‘Asia/Tokyo’
AWS認定ソリューションアーキテクト-プロフェッショナル受験を終えて(2020.11)
# はじめに
2020/11/14に念願のAWS認定ソリューションアーキテクト-プロフェッショナル(以下SAP)に合格しました。
受験体験記や勉強法に関する記事も多いですが、私自身、今回の受験を通していくつかの気づきを得ましたので、これから受験する方の参考になればと思い、まとめることにしました。# 筆者について
前提として、受験時の筆者について書いておきます。SAP試験は出題範囲が広く、AWS以外のインフラ知識も必要となるため、その人のバックグラウンドによって当然勉強すべきポイントも違ってくると思うからです。## キャリア
– Web系事業会社のインフラエンジニア
– AWS歴は5年程度
– AWS認定ソリューションアーキテクト-アソシエイト(以下SAA)は取得済み
– 自社Webサービス基盤としてAWSを毎日業務利用
– 利用サービス: EC2,RDS,S3,Route53,Lambda,ElastiCache,API Gateway,ECS,CodeDeploy,IAMなど、Webサービスで利用する一般的なもの
– オンプレ経験あり
– サーバはLinux中心だがW
【初心者向け】Rails6で作られたWebアプリをCircleCIを使いAWS ECR・ECSへ自動デプロイする方法②-2 インフラ構築編【コンテナデプロイ】
さて、前回RDSまで作成できたので、今回はALBの作成をしていこうと思います!
この記事ではALBを作成するだけなので、今までの記事を比べるとこの記事は短めです!| タイトル|
|:———–|
| [① 下準備編](https://qiita.com/Kiyo_Karl2/items/5f77d6f59bcddf05c614) |
| [②-1 インフラ構築編](https://qiita.com/Kiyo_Karl2/items/ddf03ac97ab649b63c1d) |
| [②-2 インフラ構築編](https://qiita.com/Kiyo_Karl2/items/dadd70c9dbe83dddcde2) **←今ここ!** |
| 自動デプロイ編(執筆中) |# ALBとは?
ここで、ALBについて説明させていただきます。
ALBとは「Application Load Balancer」の略称で、Webからのアクセスを分散してくれるものです。
一つのWebサイトにアクセスが集中してしまう
AWS〜EC2にRailsアプリのデータベースを作成・セットアップする〜
# この記事を読んでできるようになること
EC2にSSHログインし、**Railsアプリのデータベースを作成・セットアップする**ことができる。今回は、**MariaDBをインストール**していきます(**Amazon Linux 2には、デフォルトでMariaDBがインストール**されているため)。ローカル環境のデータベースがMySQLの場合でも、問題なく動作します。
また、AWS上にデータベースを設置する方法は、EC2に設置する方法と、RDSを利用する方法がありますが、この記事では、前者の**EC2にデータベースを設置**する手順となります。
# 記事を読むにあたってのお願い
私は**AWSの初学者**で、アウトプットをすることで知識を定着させるためにこの記事を書いています。内容に誤りがある場合は、コメントをいただけますと幸いです。
# MariaDBとは
**MySQLから派生したRDBMS**(リレーショナルデータベースマネジメントシステム)です。**MySQLと高い互換性**があり、MySQLと比べて、**パフォーマンスや堅牢性が高い**という特徴があります。
# データ
kusanagiのAMI ID を AWS CLI で調べて、一撃で起動したい
Kusanagiの最新のAMI IDをCLIで確認してCLIからEC2を起動したい( 2020/11 時点 )
※ AWSマーケットプレイスの ProductCodeId の運用については、オフィシャルがアナウンスしている訳ではないので注意が必要だと思います。将来的に変わる可能性もあるかと。
# AWSマーケットプレイス内を『KUSANAGI』で検索
“`
aws ec2 describe-images –region ap-northeast-1 –owners ‘aws-marketplace’ –filters –filters ‘Name=name,Values=*KUSANAGI*’ | jq .
“`出力内容をみると…
ProductCodeId は
* 239igp26xilrqtgegz3yqea8h
* f18wc0igqjhsxwoxouogwqb8m
の2つあり…
`f18wc0igqjhsxwoxouogwqb8m` の方が起動したい `KUSANAGI for AWS (WordPress)` を含んでいました。![スクリ
別のAWSアカウントのorganizations,CostExplorerの情報をLambda(python)で取得する方法
#結論
下記ドキュメントを参照。。。。。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/lambda-function-assume-iam-role/読んでも全然わからん状態なので、
取得したい情報があるアカウント(アカウントA)と
それを渡したいアカウント(アカウントB)がある状態でやってみた##アカウントA側の処理
####1.アカウントAでlambda用のロールを作成する
####2.ロールに情報を取得するための必要なポリシーをアタッチ
CostExplorerFullAccess、AWSOrganizationsFullAccessなど####3.ロールの概要の信頼関係タブの信頼関係の編集を押す。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/878032/cb42f127-4b43-b700-f06d-ac9c7186d1c1.png)####4.下記ポリシーを張り付け、更新する。
DynamoDBで前方一致検索を実施する
#はじめに
便利で何より安いけど何かと検索についてはあんまり使い勝手の良くないDynamoDBちゃん。今日はそれで前方一致検索をする方法を考えたのでまとめておきたいと思います。事前に言っておきますがScanを使うので使いすぎにはご注意。#最初に実際にLambdaにぶち込んだソースコードを
“`python:lambda_function.py
import json
import boto3
from boto3.dynamodb.conditions import Attrdef lambda_handler(event, context):
dynamoDB = boto3.resource(“dynamodb”)
table = dynamoDB.Table(event[“type”])
title = event[“title”]
fin = title[0]+chr(ord(title[1])+2)queryData = table.scan(
FilterExpression = Attr(“Title”).