- 1. EC2でプロキシサーバーを利用する場合のプロキシ設定
- 2. 【Rails×Vue】エラー記録アプリ作ってみた
- 3. AWS EC2を使ったインスタンスログインまでの流れ(.cer)
- 4. EC2-Classic とは
- 5. 本番環境でよく使うコマンドまとめ
- 6. 【15日目】AWS認定ソリューションアーキテクト合格までの道
- 7. API Gatewayに独自ドメインを適用
- 8. AWS ESC Fargate & ECR で Golang の Webアプリをデプロイする
- 9. AWS環境のEC-CUBE4にてgmailでメール送受信を行う方法
- 10. Cloudformationを用いて、Crawler完了時にJobを実行させるAWS::Glue::Triggerを作成する際の注意点
- 11. AWS認定 SAAの無料勉強Webサイト一覧
- 12. なにをやってAWS認定ソリューションアーキテクト-アソシエイト-に合格したか
- 13. Amazon Comprehend と考える「カラオケ選曲の重要性」
- 14. S3 アクセスポイントのバケットスタイルエイリアスが超絶便利
- 15. 【AWS】S3をCloudFormationで作成してみました
- 16. AWSを0から学ぶ(AWSの全体像をざっくり把握しよう)
- 17. RDS for MySQLでマルチスレッドレプリケーションを有効にする
- 18. AWS・APIのド素人がLexとSlackを連携させる
- 19. メモ: CodePipelineでキックしたCodeBuildでgit submoduleを使う
- 20. CloudFormaitonを使ってRDSでMySQLをマルチAZで構築する。
EC2でプロキシサーバーを利用する場合のプロキシ設定
# 目的
AWS EC2から特定のプロキシサーバーをを経由してインターネット接続する場合のproxy設定を行う# 背景
可用性が求められる環境においては、NATゲートウェイやVPCエンドポイントにインターネット接続を行うのが一般的であるが、開発環境等の可用性が求められない環境においては、コスト最適化のために低スペックのEC2によるプロキシサーバを立てて、インターネット接続させる場合がある。その際に、設定が必要となった箇所と設定方法についてメモする。
# EC2のproxy設定対象箇所
・OS(Linux)のシステム設定
・アプリのサービス
・CloudWatchAgent
・SSMAgent
・CodeDeployAgent## OSのシステム設定
“`
sudo vi /etc/environment
http_proxy=”http://{ProxyServerHost}:{Port}/”
HTTP_PROXY=”http://{ProxyServerHost}:{Port}/”
https_proxy=”http://{ProxyServerHost}:{Port
【Rails×Vue】エラー記録アプリ作ってみた
## はじめに
エンジニアになって半年が経ちました。
膨大なエラーと向き合う中で、**「あれ?前もこのエラー見たよな…」**という機会が多くなり、
**「いちいちググるのめんどくさい」**と感じた刹那、私は`rails new`していたのでした。## 目次
1. [アプリケーションの概要](#アプリケーションの概要)
1. [ざっくり機能紹介](#ざっくり機能紹介)
1. [苦労したポイント](#苦労したポイント)
1. [まとめ](#まとめ)## アプリケーションの概要
![logo (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/751808/575b805f-fbef-2843-a6ea-67098d88d96b.png)
https://www.error-note.com
エラー記録用アプリケーション「**Error Note(エラーノート)**」
エラーを記録しておくだけの超シンプルなアプリケーションです。### システム要件
| item
AWS EC2を使ったインスタンスログインまでの流れ(.cer)
##AWS EC2の初期設定までの流れを備忘録として残しておく。
その中で躓いた部分として、キーペアの保存形式が**.pemではなく.cerで保存される**、ということがあった。
###結論から言うと.pemでも.cerでも関係なくインスタンスログインできる。左上のアカウントのプルダウンからから「AWSマネジメントコンソール」をクリックしてログイン画面へ遷移。
###ルートユーザーとしてログイン
![スクリーンショット 2021-08-06 5.15.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1218992/57b9e2e8-5dba-d7c5-9081-a2957f28eb9b.png)###ログイン後の画面でEC2を選択
![スクリーンショット 2021-08-06 5.17.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1218992/880b71ab-964a-3902-dc56-de57
EC2-Classic とは
## 勉強前イメージ
終了するって言ってたけど・・・・
そもそもEC2のoldバージョン?
インスタンスタイプ的な話?## 調査
### EC2-Classic とは
1つのIPのみでアサインされた単一のネットワーク内で稼働するインスタンス環境で、
EC2が出来た2006年から存在する環境です。
2013年12月4日以降はリクエストしない限り利用できない様になっており、廃止予定になっております。### 廃止について
2021年10月30日にアクティブなEC2-Classic環境がないAWSアカウントに関しては
EC2-Classicを無効化、リザーブドインスタンスの販売の停止。
2022年8月15日には、全移行措置を完了予定になっております。## 勉強後イメージ
今のEC2はVPCの中にあるって感じだけど
EC2-Classicは一つIPを持って一つの空間って感じする。。。
もう廃止らしいし、みたことないけど。。## 参考
– [AWS、「EC2-Classic」を終了へ](https://japan.zdnet.com/article/35174657/)
本番環境でよく使うコマンドまとめ
RailsアプリケーションをAWSでデプロイした際、コマンドを何度も調べていたのでまとめました。(自分用メモです)
随時更新していく予定です!## 前提条件
– OS:Linux(CentOS)
– 言語:HTML,CSS,JavaScript,Ruby,SQL
– フレームワーク:Ruby on Rails
– IDE:Cloud9
– Webサーバー:Nginx
– アプリケーションサーバー:Puma
– データベース:MySQL## コマンドまとめ
#### cloud9のターミナルからEC2へSSHでログイン“`
$ ssh -i ~/.ssh/キー名.pem ec2-user@IPアドレス
“`
#### Pumaの起動“`
# EC2のアプリケーション上で実行
$ rails s -e production
“`#### Pumaの停止
“`
# EC2のアプリケーション上で実行
$ kill $(cat tmp/pids/puma.pid)# 自動起動設定をしている場合はsudoをつける
$ sudo kill $(cat tmp/pi
【15日目】AWS認定ソリューションアーキテクト合格までの道
# AWSにおける高可用性の定義
## AWSにおける可用性向上策
– **Design for Failure**(障害発生を前提としたシステム構築)
– 障害を回避する設計を行うのではなく、**障害が発生してもシステムが継続できるように設計すること**### ◉可用性向上のポイント
#### ◎リソースを冗長化する
– **単一障害点(SPOF:Single Point of Failure)**をなくすことが重要
– **内部的に冗長化**しているAWSサービスと**ユーザー側で冗長構成を設計**しなければいけないAWSサービスがある:::note info
単一障害点
障害が発生するとシステム全体が使用不能になる/システムの動作結果の正しさを保証できなくなる箇所のこと
:::[![Image from Gyazo](https://i.gyazo.com/dfe62f05d281322014e4e80f70d58507.png)](https://gyazo.com/dfe62f05d281322014e4e80f70d58507)
#### ◎地理的に冗長化
API Gatewayに独自ドメインを適用
## はじめに
備忘録的なメモです。大まかな手順のみ記載します。
作成済みのAPI Gatewayに独自ドメインを適応する方法です。## 手順
#### サブドメインの登録
Route53でサブドメインのホストゾーンを追加します。現在所有しているドメインが、example.comであればapi.example.comみたいな。
ホストゾーンを追加するとNSレコードが作成されるのでこれをコピーします。
次に親となるホストゾーンを開きNSレコードを追加し、先ほどコピーしたネームサーバーたちを追加します。
稼働中のサーバーなどがあればAレコードを追加するなどして動作確認。#### 証明書の取得
Certificate Managerを開き証明書のリクエストを行います。
ドメイン名を入力する欄に先ほど設定したサブドメインを入力します。api.example.comみたいな。検証保留中の表示とともにRoute53でのレコード作成ボタンが表示されるので押します。まもなくステータスが発行済みに変わります。ホストゾーンの設定がおかしいと検証保留中のまま変わらないので設定を見直します
AWS ESC Fargate & ECR で Golang の Webアプリをデプロイする
# はじめに
現職の現場ではプライベートクラウドを使用していて、本番環境の運用をAWSのようなパブリッククラウドを使用して、さらにECSのようなコンテナ基盤での運用ができていない。
docker imageを使用してコンテナ基盤で運用をすると本番環境の運用及び、本番環境へのデプロイ作業がものすごく楽になりそうなので、学習してみた。
この記事では、ローカル環境でdocker imageをビルドして、AWSのECRにプッシュ、その後ECSでデプロイを完了させるところまでを解説してみる。# ローカルにて
ビルドしたいDockerfileがおいてあるディレクトリと同じ階層でビルドする“`
docker build -t image_name .
“`ビルドしたimageにタグ付けをする。
この辺りのコマンドは、ECRにてリポジトリを作成したのち、AWSのコンソール上でもわかりやすくpushコマンドが説明されているので迷うことがあんまりなさそう。“`
docker tag image_name aws_account_id.dkr.ecr.region.amazonaws
AWS環境のEC-CUBE4にてgmailでメール送受信を行う方法
ECサイト必須機能のメール送受信を**gmail**で設定する方法です。
gmailの場合、**AWS側の設定が不要**なため容易に利用することができます。###1.安全性の低いアプリの許可
①google→画面右上のgoogleアプリ→アカウント
②左ペイン→セキュリティ→**安全性の低いアプリのアクセス**→アクセスを有効にする###2.2段階認証→Appパスワード作成
①安全性の低いアプリの許可と同様のセキュリティ画面へ
②Googleへのログイン→**2段階認証プロセス**→オン
※ここで**Appパスワードが**発行されるのでコピーしておく###3..envファイルの編集
EC-CUBEインストールディレクトリ直下にある.envファイルを以下の内容で編集する
MAILER_URL=gmail://**メールアドレスを入力**:**Appパスワードを入力**@localhost?encryption=tls&auth_mode=oauth
Cloudformationを用いて、Crawler完了時にJobを実行させるAWS::Glue::Triggerを作成する際の注意点
##環境
2021/08/05時点での情報です。##問題
[公式マニュアル](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-glue-trigger.html#cfn-glue-trigger-startoncreation)に則り以下のようにTriggerを記述したが、
スタック生成時に”state cannot be null or empty, choose from one of the following crawler state: [succeeded, failed, cancelled]”とエラーが生じる。“`yaml
AWSTemplateFormatVersion: 2010-09-09
Resources:
GlueJobTrigger:
Type: AWS::Glue::Trigger
Properties:
Type: CONDITIONAL
Actions:
– JobN
AWS認定 SAAの無料勉強Webサイト一覧
# AWS 認定 SAAとは?
AWS 認定ソリューションアーキテクト アソシエイト試験は、AWSにおける分散システムの可用性、コスト効率、高耐障害性およびスケーラビリティの設計に関する 1 年以上の実務経験を持つソリューションアーキテクト担当者を対象としています。https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/
#### 試験範囲
https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS-Certified-Solutions-Architect-Associate_Exam-Guide.pdf#### サンプル問題
https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS-Certified-Solutions-Architect-Associate_Sample-Questi
なにをやってAWS認定ソリューションアーキテクト-アソシエイト-に合格したか
# まず結論
### 学習教材は、以下の3つのみ!
#### udemy
* [これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)](https://www.udemy.com/course/aws-associate/)
* [【SAA-C02版】AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集(6回分390問)](https://www.udemy.com/course/aws-knan/)#### くろかわこうへいさんのCloud Tech
* [AWS SAA 問題(200問無料、自分は有料会員登録した)](https://aws-cloud-tech.com/)# はじめに
こんにちは!@yuki5664と申します!この度、AWS 認定ソリューションアーキテクト – アソシエイトに合格することができました!
なにで学習したのか?
それをどのように勉強したのか?
どのくらい時間をかけたのか?
学習前の自分のレベルは?
等を書いた、合格体験記になっています。
これから、AWS
Amazon Comprehend と考える「カラオケ選曲の重要性」
(この記事は、私の強い主観が含まれる可能性がありますので、慎重にお読みください。)
## 概要
AWS の自然言語処理サービス [Amazon Comprehend](https://aws.amazon.com/jp/comprehend/) を使って、あんな曲こんな曲の歌詞を解析してみようのコーナーです。
## まえがき
みなさんは、カラオケに行ったとき、どのような曲を選曲しますか?
アップテンポな曲、演歌、アイドルの曲、ボーカロイドなどなど・・・様々あると思いますが、> とりあえず流行りの曲を歌ったら、なんか盛り下がった気がする
こんな経験はありませんか?
私アラサー真っただ中ですが、高校生を過ぎたあたりから、カラオケで画面に出てくる歌詞の意味をなぜか気にするようになってしまいました。
そんな中で気づいたことが一つあります。> ヒットしている曲の中には、歌詞を聞いて多くの人が「う~、これすごくわかる?」と感じた結果流行っているものがある
ということです。例えば以下のような・・・?
– 失恋系バラード
– 歌手の方が、亡くなった身内の方?へ向けて書いた曲
–
S3 アクセスポイントのバケットスタイルエイリアスが超絶便利
## はじめに
2021/7/26 のアップデートで S3 アクセスポイントに対してバケットスタイルのエイリアスが自動生成されるようになりました。S3 バケット名のかわりにエイリアスを使用してアクセスポイント経由のデータ操作を行うことができます。https://aws.amazon.com/jp/about-aws/whats-new/2021/07/amazon-s3-access-points-aliases-allow-application-requires-s3-bucket-name-easily-use-access-point/
新規のアクセスポイントだけではなく既存のアクセスポイントに対しても払い出されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/535c3b5f-ce70-9611-c118-8de0db3a7771.png)
## AWS CLI の例
通常の S3 バケットのように高レベルコマンドを使用してアクセスポイントを使用
【AWS】S3をCloudFormationで作成してみました
#はじめに
S3をCloudFormationで簡単に作成してみました。
ざっくりでは下記が設定項目となっております。
S3のバケットポリシーなどは、今回は入れておりません。|項目 | 設定 |
|:——————|:——————|
|デフォルトの暗号化(SSE-S3)|有効|
|バージョニング機能|有効|
|ブロックパブリックアクセス(バケット設定)|有効|#テンプレート
CloudFormation のテンプレートは下記となります。
“`BucketName“`欄に、ご希望のS3バケット名を入れ替えて入力してください。“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Description: CloudFormation template for S3 Bucket
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: <バケット名>
AWSを0から学ぶ(AWSの全体像をざっくり把握しよう)
#AWSの背景・メリット
・クラウドの一種がAWS・AWSは、既にある程度の設定がされたものの上で作れる
・昔は、どのくらいのデータを使用するかなどの予測が不可欠だった。クラウドは予測が不要な点で、大きなメリットがある。
・200を超えるAWSサービスがある。欲しいサービスを自分たちで選んで使うことができる(アーキテクチャ)
・使った分だけのお支払いになる。従量課金制
#用語の説明
##基本
###EC2
サーバー###リージョン
大学で例えると大学。
EC2が集まる地域。
日本には、東京リージョンと大阪リージョンがある。###Availability Zone(AZ)
大学で例えるとキャンパス。##運用・管理
###CloudWatch
AWSをモニタリングするサービス。作り終わった後も、正しく動くか監視する。
➀情報を集めて表示。:メトリクスで行う。
②アラーム(通知)も行う:定義したルールに基づいて自動で変更。###Elastic File System EFS
共有のファイルシステム。###AWS Support
AWSの
RDS for MySQLでマルチスレッドレプリケーションを有効にする
## はじめに
MySQL 5.7 からマルチスレッドレプリケーションを有効にすることで、レプリケーションの処理を並列に実行することができるようになります。この機能を使えば、更新処理が多いシステムでもレプリケーション遅延が発生しにくくなります。
マルチスレッドレプリケーションはデフォルトでは無効になっていて、有効にする場合も、いくつかのパラメーターも含めて変更しないとプライマリとレプリカで実行順序が異なることによるデータの不整合が起こる可能性があったり、特定のパラメーターを変更する場合、パラメーターグループから変更できないものもあるのでRDSで使用する場合はちょっとした工夫が必要だったります。
## MySQLのレプリケーションについて
下記の図はMySQLのレプリケーションを簡易的に示した図です。
![mysql-replication.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/46847/d8aeb6a7-4b1d-1cf6-a404-a27f1ea0f9c9.png)アプリケーション
AWS・APIのド素人がLexとSlackを連携させる
#記事を作成した目的
Lexでのチャットボット作成の一環で、SlackとLexを連携させる動作を確認するため
簡単に手順だけ掲載する#準備段階
**前提:AWSマネジメントコンソールにログインしかしたことない状態からはじめる。**
AWSクラウドプラクティショナーの勉強の一環でアカウント作成していた
しかし、実際はテキスト&公式動画主体の勉強になっていて、コンソールで特に作業は行っていない。
AWSのしくみを理解するためにちらっと各項目を確認したぐらい。######●用意したもの
・プライベートのSlackのワークスペース作成(Slack API利用のため)
・AWSマネジメントコンソール利用のためのアカウント
・公式ホームページの手順サイト Amazon Lex ボットをSlackと統合する
https://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/deploy-slack.html
・Amazon開発者向けガイド Amazon Lex
https://docs.aws.amazon.com/ja_jp/lex/?id=do
メモ: CodePipelineでキックしたCodeBuildでgit submoduleを使う
タイトル通りのメモです。元ネタは[ここ](https://stackoverflow.com/questions/42712542/how-to-auto-deploying-git-repositories-with-submodules-on-aws#answer-64163023)です。
CodePipelineでCI/CDを組んでいて、CodeStar Connectionsを使ってCloneしたリポジトリの中のsubmoduleを後続のCodeBuildで使いたかったのですが、なかなか解決策にたどり着けませんでした。
結論から言うと、`env.git-credential-helper`を使ってごくシンプルに実現可能です。
https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper
buildspecの例は以下です。
“`yml
version: 0.2env:
git-credential-h
CloudFormaitonを使ってRDSでMySQLをマルチAZで構築する。
今回はCloudFormaitonを使ってRDSでMySQLをマルチAZで構築する手順を説明します。
#前提条件
– Windows10を使用。
– PCはDELLを使用。
– ファイルの拡張子は.ymlを使用。
– 東京リージョンを使用。
– アベイラビリティゾーンは1aと1cを使用。
– DBはMySQLを選択。#料金
テンプレート自体に料金は発生しないが、作成後のAWSリソースに関しては料金が発生しますのでご注意下さい。
RDSは**非常に高額**なのでハンズオンのみの使用であれば即時に削除をお願い致します。#事前準備
– AWSアカウントを所持していること。
– Amazon VPCへのアクセス権限(書き込み・読み取り)を許可していること。
– AWS Cloudformationへのアクセス権限(書き込み・読み取り)を許可していること。
– AWS RDSへのアクセス権限(書き込み・読み取り)を許可していること。
– VPCとpublic subnetとprivate subnetが作成済みであること。
– EC2イ